/**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $role = $this->argument('role');
     $roleModel = AclRole::whereName($role)->first();
     if (!$roleModel) {
         $this->error($msg = "the role {$role} does not exists");
         throw new \InvalidArgumentException($msg);
     }
     $permission_args = $this->argument('permission');
     $permModes = AclPermission::whereIn($this->option('unique-tag') ? 'unique_tag' : 'id', $permission_args)->get();
     foreach ($permModes as $pm) {
         $rel = new AclRolePermission();
         $rel->role_id = $roleModel->id;
         $rel->permission_id = $pm->id;
         $rel->save();
         $this->info(sprintf('role: %d, perm: %d, rel: %d', $roleModel->id, $pm->id, $rel->id));
     }
 }
Example #2
0
 private function getPermissions()
 {
     if (!$this->rolePermissions) {
         $this->rolePermissions = AclPermission::whereIn('id', function ($query) {
             /** @var $query \Illuminate\Database\Query\Builder */
             $query->from(AclRolePermission::tableName())->select('permission_id')->whereIn('role_id', $this->getRoles()->lists('id'));
         })->get();
     }
     return $this->rolePermissions;
 }