private function buildPermissionsJson() { $permissions = []; $this->checkPermission(PermissionNames::CreateConference(), $permissions); $this->checkPermission(PermissionNames::ManageGlobalPermissions(), $permissions); $this->checkPermission(PermissionNames::ApproveUserRegistration(), $permissions); $this->checkPermission(PermissionNames::ViewSiteStatistics(), $permissions); if (!is_null(Auth::user())) { $pnames = Permission::whereHas("roles", function ($query) { $query->whereHas("users", function ($query) { $query->where("id", Auth::user()->id); }); })->select("name")->get()->toArray(); $pnames = array_map(function ($p) { return $p['name']; }, $pnames); $lookFor = PermissionNames::permissionManagementPermissionBases(); foreach ($pnames as $permName) { $normal = PermissionNames::normalizePermissionName($permName); if (in_array($normal, $lookFor)) { $permissions[] = "manage-some-permissions"; break; } } } return $permissions; }