Beispiel #1
0
 /**
  * Loads a list of users for the specified parameters, returns an array of User elements
  * @return array
  */
 public function load()
 {
     $items = [];
     $usersData = $this->db->fetchAll("SELECT id,type FROM users" . $this->getCondition() . $this->getOrder() . $this->getOffsetLimit(), $this->model->getConditionVariables());
     foreach ($usersData as $userData) {
         $className = Model\User\Service::getClassNameForType($userData["type"]);
         $item = $className::getById($userData["id"]);
         if ($item) {
             $items[] = $item;
         }
     }
     $this->model->setItems($items);
     return $items;
 }
Beispiel #2
0
 /**
  * @param integer $id
  * @return AbstractUser
  */
 public static function getById($id)
 {
     $cacheKey = "user_" . $id;
     try {
         if (\Zend_Registry::isRegistered($cacheKey)) {
             $user = \Zend_Registry::get($cacheKey);
         } else {
             $user = new static();
             $user->getDao()->getById($id);
             if (get_class($user) == "Pimcore\\Model\\User\\AbstractUser") {
                 $className = Service::getClassNameForType($user->getType());
                 $user = $className::getById($user->getId());
             }
             \Zend_Registry::set($cacheKey, $user);
         }
         return $user;
     } catch (\Exception $e) {
         return false;
     }
 }
Beispiel #3
0
 public function addAction()
 {
     $this->protectCSRF();
     try {
         $type = $this->getParam("type");
         $className = User\Service::getClassNameForType($type);
         $user = $className::create(["parentId" => intval($this->getParam("parentId")), "name" => trim($this->getParam("name")), "password" => "", "active" => $this->getParam("active")]);
         if ($this->getParam("rid")) {
             $rid = $this->getParam("rid");
             $rObject = $className::getById($rid);
             if ($rObject) {
                 if ($type == "user" || $type == "role") {
                     $user->setParentId($rObject->getParentId());
                     if ($rObject->getClasses()) {
                         $user->setClasses(implode(',', $rObject->getClasses()));
                     }
                     if ($rObject->getDocTypes()) {
                         $user->setDocTypes(implode(',', $rObject->getDocTypes()));
                     }
                     $keys = ["asset", "document", "object"];
                     foreach ($keys as $key) {
                         $getter = "getWorkspaces" . ucfirst($key);
                         $setter = "setWorkspaces" . ucfirst($key);
                         $workspaces = $rObject->{$getter}();
                         $clonedWorkspaces = [];
                         if (is_array($workspaces)) {
                             foreach ($workspaces as $workspace) {
                                 $vars = get_object_vars($workspace);
                                 $workspaceClass = "\\Pimcore\\Model\\User\\Workspace\\" . ucfirst($key);
                                 $newWorkspace = new $workspaceClass();
                                 foreach ($vars as $varKey => $varValue) {
                                     $newWorkspace->{$varKey} = $varValue;
                                 }
                                 $newWorkspace->setUserId($user->getId());
                                 $clonedWorkspaces[] = $newWorkspace;
                             }
                         }
                         $user->{$setter}($clonedWorkspaces);
                     }
                     $user->setPermissions($rObject->getPermissions());
                     if ($type == "user") {
                         $user->setAdmin(false);
                         if ($this->getUser()->isAdmin()) {
                             $user->setAdmin($rObject->getAdmin());
                         }
                         $user->setActive($rObject->getActive());
                         $user->setRoles($rObject->getRoles());
                         $user->setWelcomeScreen($rObject->getWelcomescreen());
                         $user->setMemorizeTabs($rObject->getMemorizeTabs());
                         $user->setCloseWarning($rObject->getCloseWarning());
                     }
                     $user->save();
                 }
             }
         }
         $this->_helper->json(["success" => true, "id" => $user->getId()]);
     } catch (\Exception $e) {
         $this->_helper->json(["success" => false, "message" => $e->getMessage()]);
     }
     $this->_helper->json(false);
 }