/** * Run the database seeds. * * @return void */ public function run() { DB::table('permissions')->delete(); /** * Permission Attributes * * name: Unique name for the permission, used for looking up permission information in the * application layer. For example: "create-post", "edit-user", "post-payment", "mailing-list-subscribe". * * display_name: Human readable name for the permission. Not necessarily unique, and is optional. * For example "Create Posts", "Edit Users", "Post Payments", "Subscribe to mailing list". * * description: A more detailed explanation of the Permission. This is also optional. */ $permissions = array(self::pArray(PermissionNames::CreateConference(), "Create Conference"), self::pArray(PermissionNames::ManageGlobalPermissions(), "Manage Global Permissions"), self::pArray(PermissionNames::ApproveUserRegistration(), "Approve User Registration"), self::pArray(PermissionNames::ViewSiteStatistics(), "View Site Statistics"), self::pArray(PermissionNames::ManageAccounts(), "Manage Accounts")); foreach ($permissions as $p) { $entry = new Permission(); $entry->name = $p['name']; if (array_key_exists('display_name', $p)) { $entry->display_name = $p['display_name']; } if (array_key_exists('description', $p)) { $entry->description = $p['description']; } $entry->save(); } }
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; }