plugin/team/Manager/TeamManager.php
public function createTeamDirectory(Team $team, User $user, ResourceNode $resource = null, array $creatableResources = [])
    {
        $workspace = $team->getWorkspace();
        $teamRole = $team->getRole();
        $teamManagerRole = $team->getTeamManagerRole();
        $rootDirectory = $this->resourceManager->getWorkspaceRoot($workspace);
        $directoryType = $this->resourceManager->getResourceTypeByName('directory');
        $resourceTypes = $this->resourceManager->getAllResourceTypes();

        $directory = $this->resourceManager->createResource(
            'Claroline\CoreBundle\Entity\Resource\Directory',
            $team->getName()
        );
        $teamRoleName = $teamRole->getName();
        $teamManagerRoleName = $teamManagerRole->getName();
        $rights = [];
        $rights[$teamRoleName] = [];
        $rights[$teamRoleName]['role'] = $teamRole;
        $rights[$teamRoleName]['create'] = [];
        $rights[$teamManagerRoleName] = [];
        $rights[$teamManagerRoleName]['role'] = $teamManagerRole;
        $rights[$teamManagerRoleName]['create'] = [];

        foreach ($resourceTypes as $resourceType) {
            $rights[$teamManagerRoleName]['create'][] = ['name' => $resourceType->getName()];
        }

        foreach ($creatableResources as $creatableResource) {
            $rights[$teamRoleName]['create'][] = ['name' => $creatableResource];
        }
        $decoders = $directoryType->getMaskDecoders();

        foreach ($decoders as $decoder) {
            $decoderName = $decoder->getName();

            if ('create' !== $decoderName) {
                $rights[$teamManagerRoleName][$decoderName] = true;
            }
            if ('administrate' !== $decoderName && 'delete' !== $decoderName && 'create' !== $decoderName) {
                $rights[$teamRoleName][$decoderName] = true;
            }
        }

        $teamDirectory = $this->resourceManager->create(
            $directory,
            $directoryType,
            $user,
            $workspace,
            $rootDirectory,
            null,
            $rights
        );

        // TODO : manage rights
        if (!is_null($resource)) {
            $this->resourceManager->copy(
                $resource,
                $teamDirectory->getResourceNode(),
                $user,
                true,
                false
            );
        }

        return $teamDirectory;
    }
public function createTeamDirectory(Team $team, User $user, ResourceNode $resource = null, array $creatableResources = [])
    {
        $workspace = $team->getWorkspace();
        $teamRole = $team->getRole();
        $teamManagerRole = $team->getTeamManagerRole();
        $rootDirectory = $this->resourceManager->getWorkspaceRoot($workspace);
        $directoryType = $this->resourceManager->getResourceTypeByName('directory');
        $resourceTypes = $this->resourceManager->getAllResourceTypes();

        $directory = $this->resourceManager->createResource(
            'Claroline\CoreBundle\Entity\Resource\Directory',
            $team->getName()
        );
        $teamRoleName = $teamRole->getName();
        $teamManagerRoleName = $teamManagerRole->getName();
        $rights = [];
        $rights[$teamRoleName] = [];
        $rights[$teamRoleName]['role'] = $teamRole;
        $rights[$teamRoleName]['create'] = [];
        $rights[$teamManagerRoleName] = [];
        $rights[$teamManagerRoleName]['role'] = $teamManagerRole;
        $rights[$teamManagerRoleName]['create'] = [];

        foreach ($resourceTypes as $resourceType) {
            $rights[$teamManagerRoleName]['create'][] = ['name' => $resourceType->getName()];
        }

        foreach ($creatableResources as $creatableResource) {
            $rights[$teamRoleName]['create'][] = ['name' => $creatableResource];
        }
        $decoders = $directoryType->getMaskDecoders();

        foreach ($decoders as $decoder) {
            $decoderName = $decoder->getName();

            if ('create' !== $decoderName) {
                $rights[$teamManagerRoleName][$decoderName] = true;
            }
            if ('administrate' !== $decoderName && 'delete' !== $decoderName && 'create' !== $decoderName) {
                $rights[$teamRoleName][$decoderName] = true;
            }
        }

        $teamDirectory = $this->resourceManager->create(
            $directory,
            $directoryType,
            $user,
            $workspace,
            $rootDirectory,
            null,
            $rights
        );

        // TODO : manage rights
        if (!is_null($resource)) {
            $this->resourceManager->copy(
                $resource,
                $teamDirectory->getResourceNode(),
                $user,
                true,
                false
            );
        }

        return $teamDirectory;
    }
public function createTeamDirectory ( Team $ team , User $ user , ResourceNode $ resource = null , array $ creatableResources = [ ] ) { $ workspace = $ team -> getWorkspace ( ) ; $ teamRole = $ team -> getRole ( ) ; $ teamManagerRole = $ team -> getTeamManagerRole ( ) ; $ rootDirectory = $ this -> resourceManager -> getWorkspaceRoot ( $ workspace ) ; $ directoryType = $ this -> resourceManager -> getResourceTypeByName ( 'directory' ) ; $ resourceTypes = $ this -> resourceManager -> getAllResourceTypes ( ) ; $ directory = $ this -> resourceManager -> createResource ( 'Claroline\CoreBundle\Entity\Resource\Directory' , $ team -> getName ( ) ) ; $ teamRoleName = $ teamRole -> getName ( ) ; $ teamManagerRoleName = $ teamManagerRole -> getName ( ) ; $ rights = [ ] ; $ rights [ $ teamRoleName ] = [ ] ; $ rights [ $ teamRoleName ] [ 'role' ] = $ teamRole ; $ rights [ $ teamRoleName ] [ 'create' ] = [ ] ; $ rights [ $ teamManagerRoleName ] = [ ] ; $ rights [ $ teamManagerRoleName ] [ 'role' ] = $ teamManagerRole ; $ rights [ $ teamManagerRoleName ] [ 'create' ] = [ ] ; foreach ( $ resourceTypes as $ resourceType ) { $ rights [ $ teamManagerRoleName ] [ 'create' ] [ ] = [ 'name' => $ resourceType -> getName ( ) ] ; } foreach ( $ creatableResources as $ creatableResource ) { $ rights [ $ teamRoleName ] [ 'create' ] [ ] = [ 'name' => $ creatableResource ] ; } $ decoders = $ directoryType -> getMaskDecoders ( ) ; foreach ( $ decoders as $ decoder ) { $ decoderName = $ decoder -> getName ( ) ; if ( 'create' !== $ decoderName ) { $ rights [ $ teamManagerRoleName ] [ $ decoderName ] = true ; } if ( 'administrate' !== $ decoderName && 'delete' !== $ decoderName && 'create' !== $ decoderName ) { $ rights [ $ teamRoleName ] [ $ decoderName ] = true ; } } $ teamDirectory = $ this -> resourceManager -> create ( $ directory , $ directoryType , $ user , $ workspace , $ rootDirectory , null , $ rights ) ; // TODO : manage rights if ( ! is_null ( $ resource ) ) { $ this -> resourceManager -> copy ( $ resource , $ teamDirectory -> getResourceNode ( ) , $ user , true , false ) ; } return $ teamDirectory ; }
Creates team directory.

@param Team         $team
@param User         $user
@param ResourceNode $resource
@param array        $creatableResources

@return Directory
Creates team directory .