From 373d76fa46e787d72c78f903ef320fa3ba9745d7 Mon Sep 17 00:00:00 2001 From: Vadim73i <55870906+Vadim73i@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:49:57 +0300 Subject: [PATCH] EPMRPP-89704 || Disable ability to change password for default user on demo instance (#3777) --- app/localization/translated/be.json | 9 +++----- app/localization/translated/ru.json | 9 +++----- app/localization/translated/uk.json | 9 +++----- app/localization/translated/zh.json | 11 ++++------ app/src/common/constants/accountRoles.js | 1 + .../personalInfoBlock/personalInfoBlock.jsx | 22 +++++++++++++++++-- 6 files changed, 34 insertions(+), 27 deletions(-) diff --git a/app/localization/translated/be.json b/app/localization/translated/be.json index 6513ef9148..208f7c51cb 100644 --- a/app/localization/translated/be.json +++ b/app/localization/translated/be.json @@ -84,8 +84,8 @@ "AddFilter.placeholderFilterName": "Увядзіце назву фільтра", "AddIntegrationModal.createGlobalTitle": "Стварыць глабальную інтэграцыю", "AddIntegrationModal.createProjectTitle": "Стварыць праектную інтэграцыю", - "AddIntegrationModal.editProjectIntegrationTitle": "Рэдагаваць інтэграцыю праекта", "AddIntegrationModal.editGlobalIntegrationTitle": "Рэдагаваць глабальную інтэграцыю", + "AddIntegrationModal.editProjectIntegrationTitle": "Рэдагаваць інтэграцыю праекта", "AddNewCaseButton.addNewRuleButton": "Дадаць новае правіла", "AddUserForm.addUserTitle": "Дадаць карыстальніка", "AddUserForm.generatePassword": "Згенераваць пароль", @@ -262,8 +262,6 @@ "Charts.testCasesCaption": "Тэставыя выпадкі", "Charts.total": "Усяго {type}", "ClusterItemsGridRow.loadLabel": "Загрузіць яшчэ", - "ColorPicker.pickSwatch": "Выберыце ўзор", - "ColorPicker.selectColor": "Выберыце свой колер", "CommandItem.commandTitle": "Каманда", "CommandItem.parametersTitle": "Параметры", "CommandItem.responseTitle": "Адказ", @@ -725,6 +723,7 @@ "EventsGrid.userSearchPlaceholder": "Калі ласка, увядзіце імя карыстальніка", "ExpandToggler.hideCriteria": "Схаваць Крытэрыі", "ExpandToggler.showCriteria": "Паказаць Крытэрыі", + "ExtensionError.message": "У плагіне адбыўся збой.
Дачакайцеся ўзнаўлення злучэння
або звярніцеся за дапамогай да адміністратара.", "ExternalSystems.createIntegration": "сканфігураваў", "ExternalSystems.deleteIntegration": "выдаліў", "ExternalSystems.emailDefaultName": "Email Server", @@ -736,7 +735,6 @@ "ExternalUserInvitationModal.email": "Запрашэнне было адпраўлена на", "ExternalUserInvitationModal.header": "Запрасіць карыстальніка", "ExternalUserInvitationModal.link": "Спасылка на запрашэнне", - "ExtensionError.message": "У плагіне адбыўся збой.
Дачакайцеся ўзнаўлення злучэння
або звярніцеся за дапамогай да адміністратара.", "FailedCasesTrendChart.failedCases": "няўдалыя сцэнарыі", "FailedCasesTrendControls.ItemsFieldLabel": "Элементы", "FailedCasesTrendControls.ItemsValidationError": "Колькасць элементаў павінна быць памерам ад '1' да '600'", @@ -1029,7 +1027,6 @@ "IntegrationsList.bts": "Сістэма адсочвання памылак", "IntegrationsList.notification": "Апавяшчэнні", "IntegrationsList.other": "Іншыя", - "IntegrationsTab.integrationsBreadcrumbTitle": "Інтэграцыі", "InvestigatedPercentageOfLaunchesControls.ItemsFieldLabel": "Элементы", "InvestigatedPercentageOfLaunchesControls.ItemsValidationError": "Колькасць элементаў павінна быць памерам ад '1' да '600'", "InviteUserModal.description": "Запрасіць карыстальніка на праект", @@ -1543,6 +1540,7 @@ "PersonalInfo.memberAdmin": "Адміністратар", "PersonalInfo.memberYou": "Вы", "PersonalInfoBlock.changePassword": "Змяніць Пароль", + "PersonalInfoBlock.disabledChangePassword": "Забараняецца мяняць пароль для карыстальніка па змаўчанні ў дэма-версіі", "PersonalInfoBlock.errorChangePassword": "Памылка! Не ўдаецца змяніць пароль", "PersonalInfoBlock.forceUpdate": "Абнавіць Прымусова", "PersonalInfoBlock.inProgress": "У працэсе", @@ -1639,7 +1637,6 @@ "ProjectActivityControls.UsersPlaceholder": "Увядзiце iмя карыстальніка", "ProjectDetailsPageEvents.headerButton": "Маніторынг праекта", "ProjectDetailsPageMembers.headerButton": "Удзельнікі праекта", - "ProjectDetailsPageSettings.headerButton": "Налады праекта", "ProjectPanel.assign": "Прызначыць", "ProjectPanel.delete": "Выдаліць", "ProjectPanel.internal": "Унутраны", diff --git a/app/localization/translated/ru.json b/app/localization/translated/ru.json index 007acdfff6..d97a6083f2 100644 --- a/app/localization/translated/ru.json +++ b/app/localization/translated/ru.json @@ -84,8 +84,8 @@ "AddFilter.placeholderFilterName": "Ввести имя фильтра", "AddIntegrationModal.createGlobalTitle": "Создать глобальную интеграцию", "AddIntegrationModal.createProjectTitle": "Создать проектную интеграцию", - "AddIntegrationModal.editProjectIntegrationTitle": "Редактировать интеграцию проекта", "AddIntegrationModal.editGlobalIntegrationTitle": "Редактировать глобальную интеграцию", + "AddIntegrationModal.editProjectIntegrationTitle": "Редактировать интеграцию проекта", "AddNewCaseButton.addNewRuleButton": "Добавить новое правило", "AddUserForm.addUserTitle": "Добавить пользователя", "AddUserForm.generatePassword": "Сгенерировать пароль", @@ -262,8 +262,6 @@ "Charts.testCasesCaption": "Тествовые случаи", "Charts.total": "Всего {type}", "ClusterItemsGridRow.loadLabel": "Загрузить еще", - "ColorPicker.pickSwatch": "Выберите образец", - "ColorPicker.selectColor": "Выберите свой цвет", "CommandItem.commandTitle": "Команда", "CommandItem.parametersTitle": "Параметры", "CommandItem.responseTitle": "Ответ", @@ -725,6 +723,7 @@ "EventsGrid.userSearchPlaceholder": "Введите имя пользователя", "ExpandToggler.hideCriteria": "Спрятать Критерии", "ExpandToggler.showCriteria": "Показать Критерии", + "ExtensionError.message": "В плагине произошел сбой.
Дождитесь восстановления соединения
или обратитесь за помощью к администратору.", "ExternalSystems.createIntegration": "сконфигурировал", "ExternalSystems.deleteIntegration": "удалил", "ExternalSystems.emailDefaultName": "Email Server", @@ -736,7 +735,6 @@ "ExternalUserInvitationModal.email": "Приглашение было отправлено на", "ExternalUserInvitationModal.header": "Пригласить пользователя", "ExternalUserInvitationModal.link": "Ссылка на приглашение", - "ExtensionError.message": "В плагине произошел сбой.
Дождитесь восстановления соединения
или обратитесь за помощью к администратору.", "FailedCasesTrendChart.failedCases": "неудавшиеся сценарии", "FailedCasesTrendControls.ItemsFieldLabel": "Элементы", "FailedCasesTrendControls.ItemsValidationError": "Количество элементов принимает значения от '1' до '600'", @@ -1029,7 +1027,6 @@ "IntegrationsList.bts": "Системы отслеживания ошибок", "IntegrationsList.notification": "Уведомления", "IntegrationsList.other": "Другие", - "IntegrationsTab.integrationsBreadcrumbTitle": "Интеграции", "InvestigatedPercentageOfLaunchesControls.ItemsFieldLabel": "Элементы", "InvestigatedPercentageOfLaunchesControls.ItemsValidationError": "Количество элементов принимает значения от '1' до '600'", "InviteUserModal.description": "Пригласить пользователя на проект", @@ -1543,6 +1540,7 @@ "PersonalInfo.memberAdmin": "Администратор", "PersonalInfo.memberYou": "Вы", "PersonalInfoBlock.changePassword": "Изменить Пароль", + "PersonalInfoBlock.disabledChangePassword": "Запрещено менять пароль пользователя по умолчанию на демо инстансе.", "PersonalInfoBlock.errorChangePassword": "Ошибка! Не удается изменить пароль", "PersonalInfoBlock.forceUpdate": "Обновить Принудительно", "PersonalInfoBlock.inProgress": "В процессе", @@ -1639,7 +1637,6 @@ "ProjectActivityControls.UsersPlaceholder": "Введите имя пользователя", "ProjectDetailsPageEvents.headerButton": "Мониторинг проекта", "ProjectDetailsPageMembers.headerButton": "Участники проекта", - "ProjectDetailsPageSettings.headerButton": "Настройки проекта", "ProjectPanel.assign": "Назначить", "ProjectPanel.delete": "Удалить", "ProjectPanel.internal": "Внутренний", diff --git a/app/localization/translated/uk.json b/app/localization/translated/uk.json index 15fbed9912..bbd42cff51 100644 --- a/app/localization/translated/uk.json +++ b/app/localization/translated/uk.json @@ -84,8 +84,8 @@ "AddFilter.placeholderFilterName": "Ввести ім’я фільтру", "AddIntegrationModal.createGlobalTitle": "Створити глобальну інтеграцію", "AddIntegrationModal.createProjectTitle": "Створити проектну інтеграцію", - "AddIntegrationModal.editProjectIntegrationTitle": "Редагувати інтеграцію проекту", "AddIntegrationModal.editGlobalIntegrationTitle": "Редагувати глобальну інтеграцію", + "AddIntegrationModal.editProjectIntegrationTitle": "Редагувати інтеграцію проекту", "AddNewCaseButton.addNewRuleButton": "Додати нове правило", "AddUserForm.addUserTitle": "Додати користувача", "AddUserForm.generatePassword": "Згенерувати пароль", @@ -262,8 +262,6 @@ "Charts.testCasesCaption": "Тествовые випадки", "Charts.total": "Всього {type}", "ClusterItemsGridRow.loadLabel": "Завантажити", - "ColorPicker.pickSwatch": "Виберіть зразок", - "ColorPicker.selectColor": "Виберіть свій колір", "CommandItem.commandTitle": "Команда", "CommandItem.parametersTitle": "Параметри", "CommandItem.responseTitle": "Відповідь", @@ -725,6 +723,7 @@ "EventsGrid.userSearchPlaceholder": "Введіть ім’я користувача", "ExpandToggler.hideCriteria": "Сховати Критерії", "ExpandToggler.showCriteria": "Показати Критерії", + "ExtensionError.message": "У плагіні стався збій.
Дочекайте відновлення з'єднання
або зверніться за допомогою до адміністратора.", "ExternalSystems.createIntegration": "сконфигурировал", "ExternalSystems.deleteIntegration": "видалив", "ExternalSystems.emailDefaultName": "Email Server", @@ -736,7 +735,6 @@ "ExternalUserInvitationModal.email": "Запрошення було надіслано на", "ExternalUserInvitationModal.header": "Запросити користувача", "ExternalUserInvitationModal.link": "Посилання на запрошення", - "ExtensionError.message": "У плагіні стався збій.
Дочекайте відновлення з'єднання
або зверніться за допомогою до адміністратора.", "FailedCasesTrendChart.failedCases": "сценарії невдалі", "FailedCasesTrendControls.ItemsFieldLabel": "Елементи", "FailedCasesTrendControls.ItemsValidationError": "Кількість елементів приймає значення від '1' до '600'", @@ -1029,7 +1027,6 @@ "IntegrationsList.bts": "Системи відстеження помилок", "IntegrationsList.notification": "Повідомлення", "IntegrationsList.other": "Інші", - "IntegrationsTab.integrationsBreadcrumbTitle": "Інтеграції", "InvestigatedPercentageOfLaunchesControls.ItemsFieldLabel": "Елементи", "InvestigatedPercentageOfLaunchesControls.ItemsValidationError": "Кількість елементів приймає значення від '1' до '600'", "InviteUserModal.description": "Запросити користувача на проект", @@ -1543,6 +1540,7 @@ "PersonalInfo.memberAdmin": "Адміністратор", "PersonalInfo.memberYou": "Ви", "PersonalInfoBlock.changePassword": "Змінити Пароль", + "PersonalInfoBlock.disabledChangePassword": "Заборонено змінювати пароль користувача за замовчуванням на демонстраційному екземплярі", "PersonalInfoBlock.errorChangePassword": "Помилка! Не вдається змінити пароль", "PersonalInfoBlock.forceUpdate": "Оновити Примусово", "PersonalInfoBlock.inProgress": "У процесі", @@ -1639,7 +1637,6 @@ "ProjectActivityControls.UsersPlaceholder": "Введіть ім’я користувача", "ProjectDetailsPageEvents.headerButton": "Моніторинг проекту", "ProjectDetailsPageMembers.headerButton": "Учасники проекту", - "ProjectDetailsPageSettings.headerButton": "Налаштування проекту", "ProjectPanel.assign": "Призначити", "ProjectPanel.delete": "Видалити", "ProjectPanel.internal": "Внутрішній", diff --git a/app/localization/translated/zh.json b/app/localization/translated/zh.json index aff968f108..585db8f8f4 100644 --- a/app/localization/translated/zh.json +++ b/app/localization/translated/zh.json @@ -84,8 +84,8 @@ "AddFilter.placeholderFilterName": "请输入过滤器名称", "AddIntegrationModal.createGlobalTitle": "创建全局集成", "AddIntegrationModal.createProjectTitle": "Create Project Integration", - "AddIntegrationModal.editProjectIntegrationTitle": "Edit Project Integration", "AddIntegrationModal.editGlobalIntegrationTitle": "Edit Global Integration", + "AddIntegrationModal.editProjectIntegrationTitle": "Edit Project Integration", "AddNewCaseButton.addNewRuleButton": "创建规则", "AddUserForm.addUserTitle": "添加用户", "AddUserForm.generatePassword": "生成密码", @@ -262,8 +262,6 @@ "Charts.testCasesCaption": "测试用例", "Charts.total": "全部{type}", "ClusterItemsGridRow.loadLabel": "加载更多", - "ColorPicker.pickSwatch": "选择一个样本", - "ColorPicker.selectColor": "选择您的颜色", "CommandItem.commandTitle": "指令", "CommandItem.parametersTitle": "参数", "CommandItem.responseTitle": "响应", @@ -725,6 +723,7 @@ "EventsGrid.userSearchPlaceholder": "请输入用户名", "ExpandToggler.hideCriteria": "隐藏条件", "ExpandToggler.showCriteria": "显示条件", + "ExtensionError.message": "The plugin has encountered a crash.
Await the reestablishment of the connection
or contact the administrator for assistance.", "ExternalSystems.createIntegration": "已设置", "ExternalSystems.deleteIntegration": "已删除", "ExternalSystems.emailDefaultName": "电子邮件服务器", @@ -736,7 +735,6 @@ "ExternalUserInvitationModal.email": "邀请已发送至", "ExternalUserInvitationModal.header": "邀请用户", "ExternalUserInvitationModal.link": "邀请链接", - "ExtensionError.message": "The plugin has encountered a crash.
Await the reestablishment of the connection
or contact the administrator for assistance.", "FailedCasesTrendChart.failedCases": "失败的用例", "FailedCasesTrendControls.ItemsFieldLabel": "测试项", "FailedCasesTrendControls.ItemsValidationError": "测试项的数量应该在1到600之间", @@ -1029,7 +1027,6 @@ "IntegrationsList.bts": "缺陷跟踪系统", "IntegrationsList.notification": "通知", "IntegrationsList.other": "第三方", - "IntegrationsTab.integrationsBreadcrumbTitle": "集成", "InvestigatedPercentageOfLaunchesControls.ItemsFieldLabel": "测试项", "InvestigatedPercentageOfLaunchesControls.ItemsValidationError": "测试项的数量应为1到600个", "InviteUserModal.description": "为此项目邀请用户", @@ -1543,6 +1540,7 @@ "PersonalInfo.memberAdmin": "管理员", "PersonalInfo.memberYou": "您", "PersonalInfoBlock.changePassword": "更改密码", + "PersonalInfoBlock.disabledChangePassword": "It's forbidden to change password for default user on Demo instance", "PersonalInfoBlock.errorChangePassword": "错误! 无法更改密码。", "PersonalInfoBlock.forceUpdate": "强制更新", "PersonalInfoBlock.inProgress": "进行中", @@ -1639,7 +1637,6 @@ "ProjectActivityControls.UsersPlaceholder": "请输入用户名", "ProjectDetailsPageEvents.headerButton": "项目监控", "ProjectDetailsPageMembers.headerButton": "项目成员", - "ProjectDetailsPageSettings.headerButton": "项目设置", "ProjectPanel.assign": "分配", "ProjectPanel.delete": "删除", "ProjectPanel.internal": "内部", @@ -2177,4 +2174,4 @@ "usersGrid.roleNonAdmin": "非管理", "usersGrid.type": "类型", "usersGrid.user": "登录" -} +} \ No newline at end of file diff --git a/app/src/common/constants/accountRoles.js b/app/src/common/constants/accountRoles.js index 04b56eda83..44bd666c63 100644 --- a/app/src/common/constants/accountRoles.js +++ b/app/src/common/constants/accountRoles.js @@ -16,6 +16,7 @@ export const USER = 'USER'; export const ADMINISTRATOR = 'ADMINISTRATOR'; +export const DEFAULT_USER_ID = 'default'; export const ACCOUNT_ROLES_MAP = [ { value: USER, label: USER }, { value: ADMINISTRATOR, label: ADMINISTRATOR }, diff --git a/app/src/pages/inside/profilePage/personalInfoBlock/personalInfoBlock.jsx b/app/src/pages/inside/profilePage/personalInfoBlock/personalInfoBlock.jsx index 45f0996bc6..0c8ce2df18 100644 --- a/app/src/pages/inside/profilePage/personalInfoBlock/personalInfoBlock.jsx +++ b/app/src/pages/inside/profilePage/personalInfoBlock/personalInfoBlock.jsx @@ -23,11 +23,13 @@ import { defineMessages, injectIntl } from 'react-intl'; import { fetch } from 'common/utils'; import { URLS } from 'common/urls'; import { INTERNAL, LDAP, UPSA } from 'common/constants/accountType'; +import { DEFAULT_USER_ID } from 'common/constants/accountRoles'; import DefaultUserImage from 'common/img/default-user-avatar.png'; import { showNotification, NOTIFICATION_TYPES } from 'controllers/notification'; import { showModalAction } from 'controllers/modal'; import { userInfoSelector } from 'controllers/user'; import { logoutAction } from 'controllers/auth'; +import { isDemoInstanceSelector } from 'controllers/appInfo'; import { GhostButton } from 'components/buttons/ghostButton'; import { PROFILE_PAGE_EVENTS } from 'components/main/analytics/events'; import { Image } from 'components/main/image'; @@ -71,12 +73,17 @@ const messages = defineMessages({ id: 'PersonalInfoBlock.inProgress', defaultMessage: 'In progress', }, + disabledChangePassword: { + id: 'PersonalInfoBlock.disabledChangePassword', + defaultMessage: "It's forbidden to change password for default user on Demo instance", + }, }); @connect( (state) => ({ userId: userInfoSelector(state).userId, accountType: userInfoSelector(state).accountType, + isDemoInstance: isDemoInstanceSelector(state), }), { showNotification, @@ -98,10 +105,12 @@ export class PersonalInfoBlock extends Component { trackEvent: PropTypes.func, getTrackingData: PropTypes.func, }).isRequired, + isDemoInstance: PropTypes.bool, }; static defaultProps = { userId: '', accountType: '', + isDemoInstance: false, }; state = { @@ -179,8 +188,10 @@ export class PersonalInfoBlock extends Component { }; render() { - const { intl, accountType, userId } = this.props; + const { intl, accountType, userId, isDemoInstance } = this.props; const { forceUpdateInProgress } = this.state; + const isDefaultUser = userId === DEFAULT_USER_ID; + const isChangePasswordDisabled = isDemoInstance && isDefaultUser; return (
@@ -205,7 +216,14 @@ export class PersonalInfoBlock extends Component { )} {accountType === INTERNAL && (
- + {intl.formatMessage(messages.changePassword)}