Beispiel #1
0
 /** Update
  * @param array $values
  * @return bool|string
  */
 public function update($values)
 {
     try {
         $this->database->beginTransaction();
         $roleEntity = $this->roleRepository->get($values['aclRoleID']);
         if ($roleEntity) {
             $roleEntity->setName($values['name']);
             $this->roleRepository->push($roleEntity)->save();
             $resources = $this->resourceRepository->read();
             $this->permissionRepository->read()->where("aclRoleID", $values['aclRoleID'])->getSelection()->delete();
             foreach ($resources as $resource) {
                 foreach ($values[$resource->aclResourceID] as $key => $action) {
                     $permissionEntity = new PermissionEntity();
                     $permissionEntity->setAclRoleID($values['aclRoleID']);
                     $permissionEntity->setAclModelID($key);
                     $permissionEntity->setAllowed($action);
                     $this->permissionRepository->push($permissionEntity);
                 }
             }
             $this->permissionRepository->save();
         } else {
             throw new \PDOException("Nepovedlo se načíst roli z databáze.");
         }
         $this->database->commit();
         return TRUE;
     } catch (\PDOException $e) {
         $this->database->rollBack();
         return $e->getMessage();
     }
 }