Exemple #1
0
 /**
  * 
  * @param String $tag Tag name 
  * @param String $role Role name
  * @param String $tagDesc Tag Description
  * @param String $roleDesc Role description
  * @param String $action Action name
  * @param String $actionDesc Action description
  * @return Action object created
  */
 public function createAction($tag, $role = null, $action = null, $tagDesc = null, $roleDesc = null, $actionDesc = null)
 {
     if ($tag === null) {
         Log::debug('knock: Cannot create permission without a tag name.');
         return null;
     }
     $t;
     $r;
     $a;
     try {
         $t = Tag::where('name', '=', Str::slug($tag))->firstOrFail();
     } catch (ModelNotFoundException $e) {
         Log::debug('knock Caught exception; ' . $e->getMessage());
         $t = Tag::create(['name' => Str::slug($tag), 'description' => $tagDesc === null ? $tag : $tagDesc]);
         $t->save();
     }
     if ($role === null) {
         $role = 'default-role';
     }
     if ($action === null) {
         $action = 'default-action';
     }
     try {
         $r = Role::where('tag_id', '=', $t->id)->where('name', '=', Str::slug($role))->firstOrFail();
     } catch (ModelNotFoundException $e) {
         Log::debug('knock Caught exception; ' . $e->getMessage());
         $r = Role::create(['tag_id' => $t->id, 'name' => Str::slug($role), 'description' => $roleDesc === null ? $role : $roleDesc]);
         $t->roles()->save($r);
     }
     try {
         $a = Action::where('role_id', '=', $r->id)->where('name', '=', Str::slug($action))->firstOrFail();
     } catch (ModelNotFoundException $e) {
         Log::debug('knock Caught exception; ' . $e->getMessage());
         $a = Action::create(['role_id' => $r->id, 'name' => Str::slug($action), 'description' => $actionDesc === null ? $action : $actionDesc]);
         $r->actions()->save($a);
     }
     return $a;
 }