/** Insert * @param array $values * @return bool|string */ public function insert($values) { try { $this->database->beginTransaction(); $roleEntity = new RoleEntity(); $roleEntity->setName($values['name']); $repo = $this->roleRepository->push($roleEntity); $repo->save(); $aclRoleID = $repo->getLastInsertID(); $resources = $this->resourceRepository->read(); foreach ($resources as $resource) { foreach ($values[$resource->aclResourceID] as $key => $action) { if ($action === TRUE) { $permissionEntity = new PermissionEntity(); $permissionEntity->setAclRoleID($aclRoleID); $permissionEntity->setAclModelID($key); $permissionEntity->setAllowed($action); $this->permissionRepository->push($permissionEntity); } } } $this->permissionRepository->save(); $this->database->commit(); return TRUE; } catch (\PDOException $e) { $this->database->rollBack(); return $e->getMessage(); } }
/** * @return string */ public function getRoleName() { return $this->role->getName(); }