/** * Установить права по умолчанию для страницы $element по отношению к пользователю $owner_id * @param umiHierarchyElement $element экземпляр страницы * @param Integer $owner_id id пользователя или группы пользователей * @return Integer уровен доступа к странице, который был выбран системой */ public function setDefaultElementPermissions(iUmiHierarchyElement $element, $owner_id) { $module = $element->getModule(); $method = $element->getMethod(); $level = 0; if ($this->isAllowedMethod($owner_id, $module, $method, true)) { $level = permissionsCollection::E_READ_ALLOWED_BIT; } if ($this->isAllowedMethod($owner_id, $module, $method . ".edit", true)) { $level = permissionsCollection::E_READ_ALLOWED_BIT + permissionsCollection::E_EDIT_ALLOWED_BIT + permissionsCollection::E_CREATE_ALLOWED_BIT + permissionsCollection::E_DELETE_ALLOWED_BIT + permissionsCollection::E_MOVE_ALLOWED_BIT; } $this->setElementPermissions($owner_id, $element->getId(), $level); return $level; }
public function calculateLastMessageId(iUmiHierarchyElement $element) { $sel = new selector('pages'); $sel->types('hierarchy-type')->name('forum', 'message'); $sel->order('publish_time')->desc(); $sel->limit(0, 1); if ($element->getMethod() == 'conf') { $lastTopics = new selector('pages'); $lastTopics->types('hierarchy-type')->name('forum', 'topic'); $lastTopics->where('hierarchy')->page($element->id)->childs(1); $lastTopics->order('last_post_time')->desc(); $lastTopics->limit(0, 1); if ($lastTopics->first) { $sel->where('hierarchy')->page($lastTopics->first->id)->childs(1); } else { return null; } } else { $sel->where('hierarchy')->page($element->id)->childs(1); } return $sel->first; }