public function __construct()
 {
     parent::__construct();
     $this->user_model = \models\User::getInstance();
     $groups = \models\UserGroup::getInstance()->getAllGroups();
     foreach ($groups as $g) {
         $this->groups[$g->id] = $g;
     }
 }
Exemple #2
0
 public function beforeroute()
 {
     $this->model = \models\User::getInstance();
     parent::beforeroute();
     $this->fw->mset(['PARAMS.table' => 'user', 'ctrl_base' => $this->fw->get('backend_base.user'), 'core_ctrl_base' => $this->fw->get('backend_base.user_core')]);
 }
Exemple #3
0
 /**
  * Функция для определения списка пользователей, чьи объекты заданного типа доступны данной группе пользователей по данной операции
  * @param string $object объект
  * @param string $action действия 
  * @param array $user фссщциативный массив полей пользователя 
  * @return true если объеты всех пользователей, false если ничьи объекты, иначе массив идентификаторов пользователей
  */
 public function getAccessibleOwners($object, $action, $user)
 {
     if (!in_array($action, self::$actions)) {
         return false;
     }
     $userModel = User::getInstance();
     $mapper = $this->getMapper();
     $res = $mapper->find(array("group_id = ? AND object = ? AND actions LIKE ?", $user['group_id'], $object, '%' . $action . '%'));
     if (!count($res)) {
         return false;
     }
     $ids = [];
     foreach ($res as $r) {
         if ($r->relation == self::RELATION_NO) {
             return true;
         }
         if ($r->relation == self::RELATION_REF) {
             $ids = array_merge($ids, $userModel->getReferralsIdsForUser($user['id']));
         }
         if ($r->relation == self::RELATION_PARENT) {
             $ids[] = $user['ref'];
         }
         if ($r->relation == self::RELATION_OWN) {
             $ids[] = $user['id'];
         }
     }
     if (count($ids)) {
         return $ids;
     }
     return false;
 }
Exemple #4
0
 /**
  * Возвращает страницу списка членов группы
  */
 public function getUsersByGroup($id, $start = 0, $limit = 10)
 {
     $userTable = User::getInstance();
     return $userTable->getGroupList($group_id, $start, $limit);
 }
Exemple #5
0
 /**
  * Форма для редактировани объекта
  */
 public function edit()
 {
     $id = $this->fw->get('PARAMS.id');
     $this->node = $this->model->get($id);
     if (is_null($this->node)) {
         $this->fw->error(404);
     } elseif (!$this->checkAccess(\models\ACL::ACTION_UPDATE, $this->node['user_id'])) {
         $this->fw->error(401);
     } else {
         $this->fw->set('node', $this->node);
         //			$this->setDepend();
     }
     $this->setAjaxFields();
     $this->setSingleRelationsSelected();
     $this->setPluralRelationsSelected();
     $this->fw->set('has_related_tree', $this->hasRelatedTree());
     $this->fw->set('inc', 'content/edit.html');
     // Список элементов контента и форму для добавления
     if ($this->tableMeta->hasItems()) {
         $this->fw->set('form.items_limit', $this->tableMeta->get('items_limit'));
         $this->fw->set('list', $this->model->getItems($id));
         if ($this->fw->get('use_app_routes')) {
             $this->fw->set('create_action_url', $this->fw->alias('app_backend_content_item_create', 'table=' . $this->table . ',id=' . $this->node['id']));
             $this->fw->set('upload_action_url', $this->fw->alias('app_backend_content_item_upload', 'table=' . $this->table . ',id=' . $this->node['id']));
         } else {
             $this->fw->set('create_action_url', $this->fw->alias('backend_content_item_create', 'table=' . $this->table . ',id=' . $this->node['id']));
             $this->fw->set('upload_action_url', $this->fw->alias('backend_content_item_upload', 'table=' . $this->table . ',id=' . $this->node['id']));
         }
     } else {
         $this->fw->set('form.items_limit', 0);
     }
     $this->fw->set('upload_field_action_url', $this->fw->alias('backend_content_imagefield', 'table=' . $this->table . ',id=' . $this->node['id']));
     // Информация о пользователе, создавшем нод
     $user = \models\User::getInstance()->get($this->node['user_id']);
     $user['profile'] = \models\User::getInstance()->getProfile($this->node['user_id']);
     $this->fw->set('form.user', $user);
     $this->setBreadcrumbs();
 }
Exemple #6
0
 private static function setAuthor($user_id)
 {
     $model = \models\User::getInstance();
     $author = $model->getProfile($user_id);
     $author['name'] = empty($author['title']) ? empty($author['af_nickname']) ? '№' . $author['id'] : $author['af_nickname'] : $author['title'];
     $author['link'] = 'user/' . $user_id;
     \Base::instance()->set('author', $author);
 }