예제 #1
0
 /**
  * Show the currently logged in (or not) user
  */
 public function show($id)
 {
     if ($user = Confide::user()) {
         return Magma::read('User', $user->id);
     }
     return ['id' => null, 'username' => 'guest'];
 }
예제 #2
0
 /**
  * Delete user record
  */
 public function destroy($id)
 {
     return Magma::delete('User', $id);
 }
예제 #3
0
 /**
  * Show a list of permissions set on app's models
  */
 public static function getAccessRules()
 {
     $models = Magma::getModels();
     $rules = [];
     $allRoles = \Role::all();
     $getRoles = function ($roles) use($allRoles) {
         $return = [];
         $roles = (array) $roles;
         foreach ($roles as $role) {
             if ($role == '*') {
                 foreach ($allRoles as $allRole) {
                     $return[] = $allRole->name;
                 }
             } else {
                 foreach ($allRoles as $allRole) {
                     if ($allRole->name == $role) {
                         $return[] = $allRole->name;
                     }
                 }
             }
         }
         return $return;
     };
     foreach ($models as $model) {
         // Each model can define their own access rules
         // Rule name starts with model name for sorting purposes
         if (!empty($model::$accessRules)) {
             foreach ($model::$accessRules as $key => $rule) {
                 if (isset($rules['display_name'])) {
                     $rules[] = ['name' => strtolower($model) . '_' . $key, 'display_name' => $rule['display_name'], 'model' => $model, 'roles' => $getRoles($rule['roles'])];
                 }
             }
         }
         // Same for field level rules
         if (isset($model::$accessRules) && !empty($model::$accessRules['fields'])) {
             foreach ($model::$accessRules['fields'] as $fieldName => $fieldRules) {
                 foreach ($fieldRules as $key => $rule) {
                     $rules[] = ['name' => strtolower($model) . '_field_' . $fieldName . '_' . $key, 'display_name' => $rule['display_name'], 'model' => $model, 'roles' => $getRoles($rule['roles'])];
                 }
             }
         }
     }
     return $rules;
 }