diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php index 6c96cd8dffeb0a67657abf5163cb4efc84f3326b..d9f87b925d8ab68557f37d78f3a009710670e2ed 100755 --- a/src/app/user/controllers/UserController.php +++ b/src/app/user/controllers/UserController.php @@ -541,6 +541,7 @@ class UserController $user['passwordRules'] = PasswordModel::getEnabledRules(); $user['canModifyPassword'] = true; $user['privileges'] = PrivilegeController::getPrivilegesByUser(['userId' => $user['id']]); + $user['lockAdvancedPrivileges'] = PrivilegeController::isAdvancedPrivilegesLocked(); $userFollowed = UserFollowedResourceModel::get(['select' => ['count(1) as nb'], 'where' => ['user_id = ?'], 'data' => [$GLOBALS['id']]]); $user['nbFollowedResources'] = $userFollowed[0]['nb']; diff --git a/src/frontend/app/administration/home/administration.component.ts b/src/frontend/app/administration/home/administration.component.ts index acfc30be766634449a9a8fedc8342cd736d7386e..9cfcdd9ea6eda29e6551aba37019c354b4564748 100644 --- a/src/frontend/app/administration/home/administration.component.ts +++ b/src/frontend/app/administration/home/administration.component.ts @@ -52,8 +52,6 @@ export class AdministrationComponent implements OnInit, AfterViewInit { ngOnInit(): void { this.headerService.setHeader(this.translate.instant('lang.administration')); - // this.loading = true; - this.organisationServices = this.privilegeService.getCurrentUserAdministrationsByUnit('organisation'); this.productionServices = this.privilegeService.getCurrentUserAdministrationsByUnit('production'); this.classementServices = this.privilegeService.getCurrentUserAdministrationsByUnit('classement'); diff --git a/src/frontend/service/auth.service.ts b/src/frontend/service/auth.service.ts index 6f4344e46f15683e9ee239c3bf68db98c91bcff1..8d7ac467eedcb8d06bb36cd95732c32e66bd9702 100644 --- a/src/frontend/service/auth.service.ts +++ b/src/frontend/service/auth.service.ts @@ -278,7 +278,7 @@ export class AuthService { entities: data.entities, groups: data.groups, preferences: data.preferences, - privileges: data.privileges[0] === 'ALL_PRIVILEGES' ? this.privilegeService.getAllPrivileges() : data.privileges + privileges: data.privileges[0] === 'ALL_PRIVILEGES' ? this.privilegeService.getAllPrivileges(!data.lockAdvancedPrivileges) : data.privileges }; this.headerService.nbResourcesFollowed = data.nbFollowedResources; this.privilegeService.resfreshUserShortcuts(); diff --git a/src/frontend/service/privileges.service.ts b/src/frontend/service/privileges.service.ts index ee3f3066405f8c65ff31edbe6a11654926dabc62..57aa8603bd2ae38808830d0844dced56ba5575a8 100755 --- a/src/frontend/service/privileges.service.ts +++ b/src/frontend/service/privileges.service.ts @@ -600,13 +600,15 @@ export class PrivilegeService { constructor(public translate: TranslateService, public headerService: HeaderService) { } - getAllPrivileges() { + getAllPrivileges(getLockedPrivilege: boolean) { let priv: any[] = []; priv = priv.concat(this.privileges.map(elem => elem.id)); priv = priv.concat(this.administrations.map(elem => elem.id)); priv = priv.concat(this.menus.map(elem => elem.id)); + priv = priv.filter(elem => (getLockedPrivilege || (!getLockedPrivilege && ['create_custom', 'admin_update_control'].indexOf(elem) === -1))); + return priv; }