Ejemplo n.º 1
0
function getFolderList(Asset_Folder $rootFolder, &$folderList = array())
{
    if ($rootFolder->getParent()) {
        $folderList[] = array("parent" => $rootFolder->getParent()->getFullPath(), "key" => $rootFolder->getKey());
    }
    foreach ($rootFolder->getChilds() as $childFolder) {
        if ($childFolder instanceof Asset_Folder) {
            getFolderList($childFolder, $folderList);
        }
    }
}
Ejemplo n.º 2
0
 /**
  * creates an asset folder "unittestassets" to hold assets used later in tests
  * @return void
  */
 public function testAssetFolderCreate()
 {
     $asset = Asset_Folder::create(1, array("filename" => uniqid() . "_data", "type" => "folder", "userOwner" => 1));
     $this->assertTrue($asset->getId() > 0);
     //properties
     $asset->setProperties($this->getRandomProperties("asset"));
     $asset->save();
     $refetch = Asset_Folder::getById($asset->getId());
     $this->assertTrue(Test_Tool::assetsAreEqual($asset, $refetch, false));
 }
Ejemplo n.º 3
0
 protected function getOrCreateAssetFolderByPath($path)
 {
     $folder = Asset_Folder::getByPath($path);
     if (!$folder instanceof Asset_Folder) {
         str_replace("\\", "/", $path);
         $parts = explode("/", $path);
         if (empty($parts[count($parts) - 1])) {
             $parts = array_slice($parts, 0, -1);
         }
         $parts = array_slice($parts, 1);
         $parentPath = "/";
         foreach ($parts as $part) {
             $parent = Asset_Folder::getByPath($parentPath);
             if ($parent instanceof Asset_Folder) {
                 $part = Pimcore_File::getValidFilename($part);
                 $folder = Asset_Folder::getByPath($parentPath . $part);
                 if (!$folder instanceof Asset_Folder) {
                     $folder = Asset::create($parent->getId(), array("filename" => $part, "type" => "folder", "userOwner" => $this->getUser()->getId(), "userModification" => $this->getUser()->getId()));
                 }
                 $parentPath .= $part . "/";
             } else {
                 Logger::error("parent not found!");
                 return null;
             }
         }
     }
     return $folder;
 }
Ejemplo n.º 4
0
 /**
  * change general user permissions
  * @depends testModifyUserToAdmin
  * @var User $user
  */
 public function testPermissionChanges()
 {
     $userGroup = User::getByName("unitTestUserGroup");
     $username = $userGroup->getUsername();
     $userGroup->setAdmin(false);
     $userGroup->save();
     unset($userGroup);
     $userGroup = User::getByName($username);
     //test if admin is allowed all
     $permissionList = new User_Permission_Definition_List();
     $permissionList->load();
     $permissions = $permissionList->getDefinitions();
     $setPermissions = array();
     //gradually set all system permissions
     foreach ($permissions as $permission) {
         $userGroup->setPermission($permission->getKey());
         $setPermissions[] = $permission->getKey();
         $userGroup->save();
         unset($userGroup);
         $userGroup = User::getByName($username);
         foreach ($setPermissions as $p) {
             $this->assertTrue($userGroup->isAllowed($p));
         }
     }
     //remove system permissions
     $userGroup->setAllAclToFalse();
     foreach ($setPermissions as $p) {
         $this->assertFalse($userGroup->isAllowed($p));
     }
     //cannot list documents, assts, objects because no permissions by now
     $documentRoot = Document::getById(1);
     $documentRoot->getPermissionsForUser($userGroup);
     $this->assertFalse($documentRoot->isAllowed("list"));
     $objectRoot = Object_Abstract::getById(1);
     $objectRoot->getPermissionsForUser($userGroup);
     $this->assertFalse($objectRoot->isAllowed("list"));
     $assetRoot = Asset::getById(1);
     $assetRoot->getPermissionsForUser($userGroup);
     $this->assertFalse($assetRoot->isAllowed("list"));
     $objectFolder = new Object_Folder();
     $objectFolder->setParentId(1);
     $objectFolder->setUserOwner(1);
     $objectFolder->setUserModification(1);
     $objectFolder->setCreationDate(time());
     $objectFolder->setKey(uniqid() . rand(10, 99));
     $objectFolder->save();
     $documentFolder = Document_Folder::create(1, array("userOwner" => 1, "key" => uniqid() . rand(10, 99)));
     $assetFolder = Asset_Folder::create(1, array("filename" => uniqid() . "_data", "type" => "folder", "userOwner" => 1));
     $user = User::getByName("unitTestUser");
     $user->setAdmin(false);
     $user->save();
     $userGroup->setPermission("objects");
     $userGroup->setPermission("documents");
     $userGroup->setPermission("assets");
     $userGroup->save();
     //test permissions with user group and user
     $this->permissionTest($objectRoot, $objectFolder, $userGroup, $user, $user, "object");
     $this->permissionTest($assetRoot, $assetFolder, $userGroup, $user, $user, "asset");
     $this->permissionTest($documentRoot, $documentFolder, $userGroup, $user, $user, "document");
     //test permissions when there is no user group permissions
     $user = User::create(array("parentId" => 0, "username" => "unitTestUser2", "password" => md5("unitTestUser2"), "hasCredentials" => true, "active" => true));
     unset($user);
     $user = User::getByName("unitTestUser2");
     $user->setPermission("objects");
     $user->setPermission("documents");
     $user->setPermission("assets");
     $user->save();
     $this->assertTrue($user instanceof User and $user->getUsername() == "unitTestUser2");
     $this->permissionTest($objectRoot, $objectFolder, null, $user, $user, "object");
     $this->permissionTest($assetRoot, $assetFolder, null, $user, $user, "asset");
     $this->permissionTest($documentRoot, $documentFolder, null, $user, $user, "document");
     //test permissions when there is only user group permissions
     $user = User::create(array("parentId" => $userGroup->getId(), "username" => "unitTestUser3", "password" => md5("unitTestUser3"), "hasCredentials" => true, "active" => true));
     unset($user);
     $user = User::getByName("unitTestUser3");
     $this->assertTrue($user instanceof User and $user->getUsername() == "unitTestUser3");
     $this->permissionTest($objectRoot, $objectFolder, $userGroup, null, $user, "object");
     $this->permissionTest($assetRoot, $assetFolder, $userGroup, null, $user, "asset");
     $this->permissionTest($documentRoot, $documentFolder, $userGroup, null, $user, "document");
 }
Ejemplo n.º 5
0
 public function testAssetFolder()
 {
     $client = $this->getSoapClient();
     //get an asset list with 3 elements
     $condition = "`type`='folder'";
     $generalCondition = $this->getListCondition();
     if (!empty($generalCondition)) {
         if (!empty($condition)) {
             $condition .= " AND " . $generalCondition;
         } else {
             $condition = $generalCondition;
         }
     }
     $order = "";
     $orderKey = "";
     $offset = 0;
     $limit = 3;
     $groupBy = "";
     $wsDocument = $client->getAssetList($condition, $order, $orderKey, $offset, $limit, $groupBy);
     $this->assertTrue(is_array($wsDocument) and $wsDocument[0] instanceof Webservice_Data_Asset_List_Item);
     //take the second element, first will be home
     $id = $wsDocument[0]->id;
     $this->assertTrue(is_numeric($id));
     $wsDocument = $client->getAssetFolderById($id);
     $this->assertTrue($wsDocument instanceof Webservice_Data_Asset_Folder_Out);
     $asset = new Asset_Folder();
     $wsDocument->reverseMap($asset);
     //some checks to see if we got a valid object
     $this->assertTrue($asset->getCreationDate() > 0);
     $this->assertTrue(strlen($asset->getPath()) > 0);
     //copy the object retrieved from ws
     $new = clone $asset;
     $new->id = null;
     $new->setFilename($asset->getFilename() . "_phpUnitTestCopy");
     $new->setResource(null);
     //send new asset back via ws
     $apiAsset = Webservice_Data_Mapper::map($new, "Webservice_Data_Asset_Folder_In", "in");
     $id = $client->createAssetFolder($apiAsset);
     $this->assertTrue($id > 0);
     $wsDocument = $client->getAssetFolderById($id);
     $this->assertTrue($wsDocument instanceof Webservice_Data_Asset_Folder_Out);
     $refetchAsset = new Asset_Folder();
     $wsDocument->reverseMap($refetchAsset);
     //compare to original
     $original = Asset::getById($id);
     $original->getProperties();
     $this->assertTrue(Test_Tool::assetsAreEqual($original, $refetchAsset, true));
     //update asset file and set custom settings
     $refetchAsset->setCustomSettings(array("customSettingTest" => "This is a test"));
     $apiAsset = Webservice_Data_Mapper::map($refetchAsset, "Webservice_Data_Asset_Folder_In", "in");
     $success = $client->updateAssetFolder($apiAsset);
     $this->assertTrue($success);
     $wsDocument = $client->getAssetFolderById($id);
     $this->assertTrue($wsDocument instanceof Webservice_Data_Asset_Folder_Out);
     $refetchAsset = new Asset_Folder();
     $wsDocument->reverseMap($refetchAsset);
     $cs = $refetchAsset->getCustomSettings();
     $this->assertTrue(is_array($cs));
     $this->assertTrue($cs["customSettingTest"] == "This is a test");
     Test_Tool::resetRegistry();
     //compare to original
     $original = Asset_Folder::getById($id);
     $this->assertTrue(Test_Tool::assetsAreEqual($original, $refetchAsset, true));
     //delete our test copy
     $success = $client->deleteAsset($refetchAsset->getId());
     $this->assertTrue($success);
 }
Ejemplo n.º 6
0
 /**
  * @param string base64
  * @return Asset
  */
 public function convertToAsset($imgstr)
 {
     $uploadDir = PIMCORE_TMP_DIRECTORY . '/asset-temporary/';
     $content = base64_decode(preg_replace('#^data:image/\\w+;base64,#i', '', $imgstr));
     $name = uniqid() . '.png';
     $file = $uploadDir . $name;
     $success = file_put_contents($file, $content);
     if ($success) {
         $parentAsset = Asset_Folder::getById(71);
         $asset = Asset::create($parentAsset->getId(), array("filename" => $name, "data" => file_get_contents($file)));
         return $asset;
     } else {
         return false;
     }
 }
Ejemplo n.º 7
0
<?php

/**
 * Created by PhpStorm.
 * User: jplaskonka
 * Date: 05.09.14
 * Time: 09:11
 * Migruje foldery assetów do pliku
 */
include dirname(__FILE__) . "/../../pimcore/cli/startup.php";
$file = file_get_contents(dirname(__FILE__) . "folders/list.txt");
if ($file) {
    $folderList = json_decode($file);
    foreach ($folderList as $folder) {
        $newFolder = new Asset_Folder();
        $newFolder->setParent(Asset_Folder::getByPath($folder->parent));
        $newFolder->setFilename($folder->key);
        try {
            $newFolder->save();
        } catch (Exception $e) {
            echo $folder->parent . "/" . $folder->key . ": already exists\n";
        }
    }
}