Web: Client: Changing access rights to modules without user request
This commit is contained in:
parent
08cc7b3560
commit
969f0abb7c
@ -23,6 +23,7 @@ import PeopleSelector from "people/PeopleSelector";
|
||||
import { inject, observer } from "mobx-react";
|
||||
|
||||
import { getUserRole } from "@appserver/people/src/helpers/people-helpers";
|
||||
import { getNewModulesList } from "../../utils";
|
||||
|
||||
import isEmpty from "lodash/isEmpty";
|
||||
|
||||
@ -408,15 +409,17 @@ class PortalAdmins extends Component {
|
||||
});
|
||||
};
|
||||
|
||||
onModuleToggle = (moduleId, access) => {
|
||||
onFullAccessClick = (access) => {
|
||||
const { selectedUser } = this.state;
|
||||
const { changeAdmins, admins, setAdmins } = this.props;
|
||||
|
||||
changeAdmins([selectedUser.id], moduleId, access)
|
||||
changeAdmins([selectedUser.id], fullAccessId, access)
|
||||
.then(async () => {
|
||||
const updatedUser = await api.people.getUserById([selectedUser.id]);
|
||||
const updatedAdmins = admins.map((admin) => {
|
||||
if (admin.id === selectedUser.id) return updatedUser;
|
||||
if (admin.id === selectedUser.id) {
|
||||
return updatedUser;
|
||||
}
|
||||
return admin;
|
||||
});
|
||||
|
||||
@ -430,6 +433,49 @@ class PortalAdmins extends Component {
|
||||
});
|
||||
};
|
||||
|
||||
onModuleToggle = (module, access) => {
|
||||
const { selectedUser } = this.state;
|
||||
const { changeAdmins, admins, setAdmins, modules } = this.props;
|
||||
|
||||
changeAdmins([selectedUser.id], module.id, access)
|
||||
.then(async () => {
|
||||
const updatedAdmins = admins.map((admin) => {
|
||||
if (admin.id === selectedUser.id) {
|
||||
if (!admin.listAdminModules) {
|
||||
admin.listAdminModules = [module.appName];
|
||||
} else if (!access) {
|
||||
const moduleIndex = admin.listAdminModules.findIndex(
|
||||
(adminModule) => {
|
||||
return module.appName === adminModule;
|
||||
}
|
||||
);
|
||||
|
||||
admin.listAdminModules.splice(moduleIndex, 1);
|
||||
} else if (access) {
|
||||
const newModuleList = getNewModulesList(
|
||||
module,
|
||||
admin.listAdminModules,
|
||||
modules
|
||||
);
|
||||
|
||||
admin.listAdminModules = newModuleList;
|
||||
}
|
||||
|
||||
this.setState({
|
||||
selectedUser: admin,
|
||||
});
|
||||
}
|
||||
|
||||
return admin;
|
||||
});
|
||||
|
||||
setAdmins(updatedAdmins);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
});
|
||||
};
|
||||
|
||||
isModuleAdmin = (user, moduleName) => {
|
||||
let isModuleAdmin = false;
|
||||
|
||||
@ -557,10 +603,7 @@ class PortalAdmins extends Component {
|
||||
className="toggle-btn"
|
||||
isChecked={selectedUser.isAdmin}
|
||||
onChange={() =>
|
||||
this.onModuleToggle(
|
||||
fullAccessId,
|
||||
!selectedUser.isAdmin
|
||||
)
|
||||
this.onFullAccessClick(!selectedUser.isAdmin)
|
||||
}
|
||||
isDisabled={false}
|
||||
/>
|
||||
@ -595,7 +638,7 @@ class PortalAdmins extends Component {
|
||||
inputId={module.id}
|
||||
onChange={() =>
|
||||
this.onModuleToggle(
|
||||
module.id,
|
||||
module,
|
||||
!isModuleAdmin
|
||||
)
|
||||
}
|
||||
|
@ -0,0 +1,23 @@
|
||||
export const getNewModulesList = (
|
||||
module,
|
||||
listAdminModules,
|
||||
availableModules
|
||||
) => {
|
||||
const newModulesList = [];
|
||||
|
||||
for (let i = 0; i < availableModules.length; i++) {
|
||||
if (availableModules[i].appName === module.appName) {
|
||||
newModulesList.push(availableModules[i].appName);
|
||||
continue;
|
||||
}
|
||||
|
||||
for (let k = 0; k < listAdminModules.length; k++) {
|
||||
if (availableModules[i].appName === listAdminModules[k]) {
|
||||
newModulesList.push(availableModules[i].appName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return newModulesList;
|
||||
};
|
@ -8,3 +8,4 @@ export { checkPropertyByLink } from "./checkPropertyByLink";
|
||||
export { getFromSessionStorage } from "./getFromSessionStorage";
|
||||
export { saveToSessionStorage } from "./saveToSessionStorage";
|
||||
export { getSettingsIndex } from "./getSettingsIndex";
|
||||
export { getNewModulesList } from "./getNewModulesList";
|
||||
|
Loading…
Reference in New Issue
Block a user