Exemplo n.º 1
0
 /**
  * Set the permission for a resource right.
  * The array of permissions should be defined that way:
  * array('open' => true, 'edit' => false, ...)
  *
  * @param \Claroline\CoreBundle\Entity\Resource\ResourceRights $rights
  * @param array                                                $permissions
  *
  * @return \Claroline\CoreBundle\Entity\Resource\ResourceRights
  */
 public function setPermissions(ResourceRights $rights, array $permissions)
 {
     $resourceType = $rights->getResourceNode()->getResourceType();
     $rights->setMask($this->maskManager->encodeMask($permissions, $resourceType));
     return $rights;
 }
Exemplo n.º 2
0
 /**
  * @param \Claroline\CoreBundle\Entity\Resource\ResourceNode $resourceNode
  * @param \Claroline\CoreBundle\Entity\Resource\ResourceNode $copy
  * @param array $workspaceRoles
  */
 private function duplicateRights(ResourceNode $resourceNode, ResourceNode $copy, array $workspaceRoles)
 {
     $rights = $resourceNode->getRights();
     $workspace = $resourceNode->getWorkspace();
     foreach ($rights as $right) {
         $role = $right->getRole();
         $key = $role->getTranslationKey();
         $newRight = new ResourceRights();
         $newRight->setResourceNode($copy);
         $newRight->setMask($right->getMask());
         $newRight->setCreatableResourceTypes($right->getCreatableResourceTypes()->toArray());
         if ($role->getWorkspace() === $workspace && isset($workspaceRoles[$key]) && !empty($workspaceRoles[$key])) {
             $newRight->setRole($workspaceRoles[$key]);
         } else {
             $newRight->setRole($role);
         }
         $this->om->persist($newRight);
     }
     $this->om->flush();
 }
Exemplo n.º 3
0
 protected static function createResourceRights(Role $role, AbstractResource $resource, $mask, array $creatableResourceTypes = [])
 {
     $rights = new ResourceRights();
     $rights->setRole($role);
     $rights->setResourceNode($resource->getResourceNode());
     $rights->setMask($mask);
     foreach ($creatableResourceTypes as $type) {
         $rights->addCreatableResourceType($type);
     }
     self::create("resource_right/{$role->getName()}-{$resource->getResourceNode()->getName()}", $rights);
 }