diff --git a/frontend/src/ManageGranularAccess/AddEditResourceModal/AddEditResourcePermissionsModal.jsx b/frontend/src/ManageGranularAccess/AddEditResourceModal/AddEditResourcePermissionsModal.jsx index 3b7479032c..875c6fdc83 100644 --- a/frontend/src/ManageGranularAccess/AddEditResourceModal/AddEditResourcePermissionsModal.jsx +++ b/frontend/src/ManageGranularAccess/AddEditResourceModal/AddEditResourcePermissionsModal.jsx @@ -68,7 +68,7 @@ function AddEditResourcePermissionsModal({ ...prevState.initialPermissionState, canEdit: !prevState.initialPermissionState.canEdit, canView: prevState.initialPermissionState.canEdit, - ...(prevState.initialPermissionState.canEdit && { hideFromDashboard: false }), + ...(!prevState.initialPermissionState.canEdit && { hideFromDashboard: false }), }, })); }} diff --git a/frontend/src/ManageOrgUsers/InviteUsersForm.jsx b/frontend/src/ManageOrgUsers/InviteUsersForm.jsx index ccbb0cec99..9b354b1310 100644 --- a/frontend/src/ManageOrgUsers/InviteUsersForm.jsx +++ b/frontend/src/ManageOrgUsers/InviteUsersForm.jsx @@ -128,8 +128,8 @@ function InviteUsersForm({ }; const editUser = () => { - const { newGroupsToAdd, groupsToRemove, selectedGroupsIds, role } = getEditedGroups(); - manageUser(currentEditingUser.id, selectedGroupsIds, role, newGroupsToAdd, groupsToRemove); + const { newGroupsToAdd, groupsToRemove, selectedGroupsIds } = getEditedGroups(); + manageUser(currentEditingUser.id, selectedGroupsIds, newRole?.value, newGroupsToAdd, groupsToRemove); }; const getEditedGroups = () => { @@ -139,22 +139,19 @@ function InviteUsersForm({ return { newGroupsToAdd, groupsToRemove, selectedGroupsIds }; }; - const validUserDetail = fields['fullName']?.length > 0 && fields['email']?.length > 0; - const isEdited = () => { const { newGroupsToAdd, groupsToRemove } = getEditedGroups(); + const inValidUserDetail = !(fields?.['fullName'] && fields?.['email']); const { first_name, last_name } = currentEditingUser || {}; return isEditing ? fields['fullName'] !== `${first_name}${last_name && ` ${last_name}`}` || groupsToRemove.length || newRole || newGroupsToAdd.length - : true; + : !inValidUserDetail || activeTab == 2; }; const isEditing = userDrawerMode === USER_DRAWER_MODES.EDIT; - const containRoleGroup = - selectedGroups.filter((item) => ['admin', 'end-user', 'builder'].includes(item.value)).length > 0; return (
@@ -351,13 +348,7 @@ function InviteUsersForm({ form={activeTab == 1 ? 'inviteByEmail' : 'inviteBulkUsers'} type="submit" variant="primary" - disabled={ - uploadingUsers || - creatingUser || - !isEdited() || - (!isEditing && !containRoleGroup && uploadingUsers) || - (!isEditing && !validUserDetail && uploadingUsers) - } + disabled={uploadingUsers || creatingUser || !isEdited()} data-cy={activeTab == 1 ? 'button-invite-users' : 'button-upload-users'} leftIcon={activeTab == 1 ? 'sent' : 'fileupload'} width="20" diff --git a/frontend/src/ManageOrgUsers/ManageOrgUsers.jsx b/frontend/src/ManageOrgUsers/ManageOrgUsers.jsx index 17b1fef7b0..9e83e77d0e 100644 --- a/frontend/src/ManageOrgUsers/ManageOrgUsers.jsx +++ b/frontend/src/ManageOrgUsers/ManageOrgUsers.jsx @@ -224,7 +224,7 @@ class ManageOrgUsersComponent extends React.Component { const updateUserBody = { addGroups: groupsToAdd, removeGroups: groupsToRemove, - role: role, + ...(role && { role: role }), }; service(currentOrgUserId, isEditing ? updateUserBody : createUserBody) .then(() => { diff --git a/server/src/services/group_permissions.service.v2.ts b/server/src/services/group_permissions.service.v2.ts index bd8b74eb99..1ad011f884 100644 --- a/server/src/services/group_permissions.service.v2.ts +++ b/server/src/services/group_permissions.service.v2.ts @@ -193,7 +193,9 @@ export class GroupPermissionsServiceV2 { validateAddGroupUserOperation(group); const editorRoleUsers = await this.groupPermissionsUtilityService.getRoleUsersList( USER_ROLE.END_USER, - organizationId + organizationId, + null, + manager ); const editorUsersToBeAdded = editorRoleUsers.filter((user) => userIds.includes(user.id)); if (isBuilderLevel && editorUsersToBeAdded.length) { diff --git a/server/src/services/organizations.service.ts b/server/src/services/organizations.service.ts index 4b94f7e9c9..644c204faf 100644 --- a/server/src/services/organizations.service.ts +++ b/server/src/services/organizations.service.ts @@ -622,12 +622,6 @@ export class OrganizationsService { if (defaultOrganization) { // Setting up default organization await this.organizationUserService.create(user, defaultOrganization, true, manager); - - await this.userRoleService.addUserRole( - { userId: user.id, role: USER_ROLE.END_USER }, - defaultOrganization.id, - manager - ); } const currentOrganization: Organization = await this.organizationsRepository.findOneOrFail({ diff --git a/server/src/services/users.service.ts b/server/src/services/users.service.ts index 1f60ef21b4..483c666b10 100644 --- a/server/src/services/users.service.ts +++ b/server/src/services/users.service.ts @@ -165,7 +165,6 @@ export class UsersService { async update(userId: string, params: any, manager?: EntityManager, organizationId?: string) { const { forgotPasswordToken, password, firstName, lastName, addGroups, removeGroups, source, role } = params; - const hashedPassword = password ? bcrypt.hashSync(password, 10) : undefined; const updatableParams = {