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 = {