/**
  * Attach permission to role
  * 
  * @param  Inoplate\Account\Domain\Commands\Models $administrator
  * @return void
  */
 protected function attachPermissionToRole($role)
 {
     $permissions = $this->permissionRepository->all();
     foreach ($permissions as $permission) {
         $this->bus->dispatch(new Commands\AttachPermissionToRole($role->id()->value(), $permission->id()->value()));
     }
 }
 /**
  * Retrieve role and ensure role is exist
  * 
  * @param  mixed $id
  * @return AccountDomainModels\Permission
  */
 protected function retrievePermission($id)
 {
     $role = $this->permissionRepository->findById($id);
     if (is_null($role)) {
         throw new ValueNotFoundException("[(string){$id}] is not valid permission id");
     }
     return $role;
 }
Exemple #3
0
 /**
  * Collect permissions
  * 
  * @param  string $name
  * @param  string $description
  * @return void
  */
 public function collect($name, $description, $module = '')
 {
     $permissionId = new AccountDomainModels\PermissionId($name);
     if (!$this->permissionRepository->findById($permissionId)) {
         $description = new FoundationDomainModels\Description(['description' => $description, 'module' => $module]);
         $permission = new AccountDomainModels\Permission($permissionId, $description);
         $this->permissionRepository->save($permission);
     }
 }
Exemple #4
0
 /**
  * Convert to domain model
  * 
  * @param  Model $role
  * @return null|Inoplate\Account\Domain\Models\Role
  */
 protected function toDomainModel($role)
 {
     if (is_null($role)) {
         return $role;
     } else {
         $id = new AccountDomainModels\RoleId($role->id);
         $name = new FoundationDomainModels\Name($role->name);
         $description = new FoundationDomainModels\Description(array_except($role->toArray(), ['id', 'name', 'permissions']));
         $matrices = $role->permissions();
         $permissions = [];
         foreach ($matrices as $matrix) {
             $permissions[] = $this->permissionRepository->findById($matrix->permission_id);
         }
         return new AccountDomainModels\Role($id, $name, $description, $permissions);
     }
 }