public static function AllConferenceRoles($confId) { return DB::transaction(function () use($confId) { $permissionList = PermissionNames::AllConferencePermissions($confId); $permissions = self::createAllPermissions($permissionList); self::createPermissionRoles($permissions); // Create permissions/roles for things which are more limited permissions // (and therefore not in the permissions we want for management) self::createPermissionRoles(self::createAllPermissions(PermissionNames::ExclusiveConferencePermissions($confId))); $managerRoleId = self::ConferenceManager($confId, $permissions); return $managerRoleId; }); }
private function buildPermissionList($confId) { $permissions = []; foreach (PermissionNames::AllConferencePermissions($confId) as $pname) { $this->checkAddPermission($pname, $permissions); } foreach (Event::where('conferenceID', $confId)->get() as $e) { if (Entrust::can(PermissionNames::EventDetailView($e->id))) { $permissions[] = 'conference-view-event-reports'; break; } } return $permissions; }