コード例 #1
0
ファイル: permissions.php プロジェクト: sea75300/fanpresscm3
 /**
  * Controller-Processing
  */
 public function process()
 {
     if (!parent::process()) {
         return false;
     }
     $userRolls = new \fpcm\model\users\userRollList();
     $this->view->assign('userRolls', array_flip($userRolls->getUserRollsTranslated()));
     $this->view->assign('permissions', $this->permissionData->getPermissionsAll());
     $this->view->assign('hideTitle', false);
     $this->view->setViewJsFiles(array(\fpcm\classes\baseconfig::$jsPath . 'permissions.js'));
     $this->view->render();
 }
コード例 #2
0
ファイル: navigation.php プロジェクト: sea75300/fanpresscm3
 /**
  * Berechtigungen für Zugriff auf Module prüfen
  * @param array $navigation
  * @return array
  */
 private function checkPermissions($navigation)
 {
     foreach ($navigation as $key => &$value) {
         if (isset($value['submenu']) && count($value['submenu'])) {
             $value['submenu'] = $this->checkPermissions($value['submenu']);
         }
         if (isset($value['permission']) && count($value['permission'])) {
             if (!$this->permissions->check($value['permission'])) {
                 unset($navigation[$key]);
             }
         }
     }
     return $navigation;
 }
コード例 #3
0
ファイル: event.php プロジェクト: sea75300/fanpresscm3
 /**
  * Prüft ob spezielle Berechtigungen für Event nötig sind
  * @return boolean
  */
 public function checkPermissions()
 {
     if (!$this->permissions || !count($this->checkPermission)) {
         return true;
     }
     return $this->permissions->check($this->checkPermission);
 }
コード例 #4
0
ファイル: controller.php プロジェクト: sea75300/fanpresscm3
 /**
  * Controller-Processing
  * @return boolean
  */
 public function process()
 {
     $currentClass = get_class($this);
     if (strpos($currentClass, 'fpcm\\modules\\') !== false) {
         $modulename = explode('\\', $currentClass);
         $modulename = $modulename[2] . '/' . $modulename[3];
         if (!in_array($modulename, $this->enabledModules)) {
             trigger_error("Request for controller '{$currentClass}' of disabled module '{$modulename}'!");
             $view = new \fpcm\model\view\error();
             $view->setMessage("The controller '{$this->getRequestVar('module')}' is not enabled for execution!");
             $view->render();
             die;
         }
     }
     if (!$this->session->exists()) {
         $this->redirectNoSession();
         return false;
     }
     if ($this->permissions) {
         if (count($this->checkPermission) && !$this->permissions->check($this->checkPermission)) {
             $view = new \fpcm\model\view\error();
             $view->setMessage($this->lang->translate('PERMISSIONS_REQUIRED'));
             $view->render();
             die;
         }
         if ($this->session->getCurrentUser()->isAdmin() && $this->permissions->check(array('system' => 'update'))) {
             $this->checkUpdates();
         }
     }
     return true;
 }
コード例 #5
0
 /**
  * Content rendern
  */
 private function renderContent()
 {
     $ownPermissions = $this->permissions->check(array('article' => 'edit'));
     $allPermissions = $this->permissions->check(array('article' => 'editall'));
     $articleList = new \fpcm\model\articles\articlelist();
     $userlist = new \fpcm\model\users\userList();
     $conditions = array('draft' => -1, 'approval' => -1, 'limit' => array(10, 0), 'orderby' => array('createtime DESC'));
     $articles = $articleList->getArticlesByCondition($conditions);
     $users = array_flip($userlist->getUsersNameList());
     $content = array();
     $content[] = '<table class="fpcm-ui-table fpcm-ui-articles fpcm-ui-large-td">';
     foreach ($articles as $article) {
         $createInfo = $this->language->translate('EDITOR_AUTHOREDIT', array('{{username}}' => isset($users[$article->getCreateuser()]) ? $users[$article->getCreateuser()] : $this->language->translate('GLOBAL_NOTFOUND'), '{{time}}' => date($this->config->system_dtmask, $article->getCreatetime())));
         $content[] = '<tr class="fpcm-small-text">';
         $content[] = '  <td class="fpcm-ui-articlelist-open">';
         $content[] = '  <a class="fpcm-ui-button fpcm-ui-button-blank fpcm-openlink-btn" href="' . $article->getArticleLink() . '" target="_blank" title="' . $this->language->translate('GLOBAL_FRONTEND_OPEN') . '">' . $this->language->translate('GLOBAL_FRONTEND_OPEN') . '</a>';
         if ($article->getEditPermission()) {
             $content[] = '  <a class="fpcm-ui-button fpcm-ui-button-blank fpcm-ui-button-edit fpcm-loader" href="' . $article->getEditLink() . '" title="' . $this->language->translate('GLOBAL_EDIT') . '">' . $this->language->translate('GLOBAL_EDIT') . '</a>';
         } else {
             $content[] = '  <span class="fpcm-ui-button fpcm-ui-button-blank fpcm-ui-button-edit fpcm-ui-readonly" title="' . $this->language->translate('GLOBAL_EDIT') . '">' . $this->language->translate('GLOBAL_EDIT') . '</span>';
         }
         $content[] = '  </td>';
         $content[] = '  <td>';
         $content[] = '  <strong>' . \fpcm\model\view\helper::escapeVal(strip_tags(substr(rtrim($article->getTitle(), '.!?'), 0, 64))) . '...</strong><br>';
         $content[] = '  <span>' . $createInfo . '</span>';
         $content[] = '  </td>';
         $content[] = '  <td class="fpcm-ui-dashboard-recentarticles-meta">';
         if ($article->getPinned()) {
             $content[] = '      <span class="fa-stack fa-fw fpcm-ui-status-1" title="' . $this->language->translate('EDITOR_STATUS_PINNED') . '"><span class="fa fa-square fa-stack-2x"></span><span class="fa fa-thumb-tack fa-rotate-90 fa-stack-1x fa-inverse"></span></span>';
         }
         if ($article->getDraft()) {
             $content[] = '      <span class="fa-stack fa-fw fpcm-ui-status-1" title="' . $this->language->translate('EDITOR_STATUS_DRAFT') . '"><span class="fa fa-square fa-stack-2x"></span><span class="fa fa-file-text-o fa-stack-1x fa-inverse"></span></span>';
         }
         if ($article->getPostponed()) {
             $content[] = '      <span class="fa-stack fa-fw fpcm-ui-status-1" title="' . $this->language->translate('EDITOR_STATUS_POSTPONETO') . '"><span class="fa fa-square fa-stack-2x"></span><span class="fa fa-clock-o fa-stack-1x fa-inverse"></span></span>';
         }
         if ($article->getApproval()) {
             $content[] = '      <span class="fa-stack fa-fw fpcm-ui-status-1" title="' . $this->language->translate('EDITOR_STATUS_APPROVAL') . '"><span class="fa fa-square fa-stack-2x"></span><span class="fa fa-thumbs-o-up fa-stack-1x fa-inverse"></span></span>';
         }
         $content[] = '  </td>';
         $content[] = '</tr>';
     }
     $content[] = '</table>';
     $this->content = implode(PHP_EOL, $content);
     $this->cache->write($this->content, $this->config->system_cache_timeout);
 }
コード例 #6
0
 /**
  * Content rendern
  */
 private function renderContent()
 {
     $ownPermissions = $this->permissions->check(array('article' => 'edit'), array('comment' => 'edit'));
     $allPermissions = $this->permissions->check(array('article' => 'editall'), array('comment' => 'editall'));
     $commenList = new \fpcm\model\comments\commentList();
     $userlist = new \fpcm\model\users\userList();
     $comments = $commenList->getCommentsByLimit(10, 0);
     $users = array_flip($userlist->getUsersNameList());
     $content = array();
     $content[] = '<table class="fpcm-ui-table fpcm-ui-articles fpcm-ui-large-td">';
     foreach ($comments as $comment) {
         $createInfo = $this->language->translate('COMMMENT_LASTCHANGE', array('{{username}}' => isset($users[$comment->getChangeuser()]) ? $users[$comment->getChangeuser()] : $this->language->translate('GLOBAL_NOTFOUND'), '{{time}}' => date($this->config->system_dtmask, $comment->getChangetime())));
         if (!$comment->getChangeuser() && !$comment->getChangetime()) {
             $createInfo = '';
         }
         $content[] = '<tr class="fpcm-small-text">';
         $content[] = '  <td class="fpcm-ui-articlelist-open">';
         $content[] = '  <a class="fpcm-ui-button fpcm-ui-button-blank fpcm-openlink-btn" href="' . $comment->getArticleLink() . '" target="_blank" title="' . $this->language->translate('GLOBAL_FRONTEND_OPEN') . '">' . $this->language->translate('GLOBAL_FRONTEND_OPEN') . '</a>';
         if ($comment->getEditPermission()) {
             $content[] = '  <a class="fpcm-ui-button fpcm-ui-button-blank fpcm-ui-button-edit fpcm-loader" href="' . $comment->getEditLink() . '&amp;mode=1" title="' . $this->language->translate('GLOBAL_EDIT') . '">' . $this->language->translate('GLOBAL_EDIT') . '</a>';
         } else {
             $content[] = '  <span class="fpcm-ui-button fpcm-ui-button-blank fpcm-ui-button-edit fpcm-ui-readonly" title="' . $this->language->translate('GLOBAL_EDIT') . '">' . $this->language->translate('GLOBAL_EDIT') . '</span>';
         }
         $content[] = '  </td>';
         $content[] = '  <td>';
         $content[] = '  <strong>' . \fpcm\model\view\helper::escapeVal(strip_tags($comment->getName())) . '</strong> @ ' . date($this->config->system_dtmask, $comment->getCreatetime()) . '<br>';
         $content[] = '  <span>' . $createInfo . '</span>';
         $content[] = '  </td>';
         $content[] = '  <td class="fpcm-ui-dashboard-recentarticles-meta">';
         if ($comment->getSpammer()) {
             $content[] = '      <span class="fa-stack fa-fw fpcm-ui-status-1" title="' . $this->language->translate('COMMMENT_SPAM') . '"><span class="fa fa-square fa-stack-2x"></span><span class="fa fa-flag fa-stack-1x fa-inverse"></span></span>';
         }
         if ($comment->getApproved()) {
             $content[] = '      <span class="fa-stack fa-fw fpcm-ui-status-1" title="' . $this->language->translate('COMMMENT_APPROVE') . '"><span class="fa fa-square fa-stack-2x"></span><span class="fa fa-check-circle-o fa-rotate-90 fa-stack-1x fa-inverse"></span></span>';
         }
         if ($comment->getPrivate()) {
             $content[] = '      <span class="fa-stack fa-fw fpcm-ui-status-1" title="' . $this->language->translate('COMMMENT_PRIVATE') . '"><span class="fa fa-square fa-stack-2x"></span><span class="fa fa-eye-slash fa-stack-1x fa-inverse"></span></span>';
         }
         $content[] = '  </td>';
         $content[] = '</tr>';
     }
     $content[] = '</table>';
     $this->content = implode(PHP_EOL, $content);
     $this->cache->write($this->content, $this->config->system_cache_timeout);
 }
コード例 #7
0
ファイル: commentList.php プロジェクト: sea75300/fanpresscm3
 /**
  * Führt Prüfung durch, ob Artikel bearbeitet werden kann
  * @param \fpcm\model\comments\comment $comment
  * @return boolean
  */
 public function checkEditPermissions(comment &$comment)
 {
     if ($this->permissions === false) {
         return true;
     }
     if (!is_array($this->ownArticleIds)) {
         $this->articleList = new \fpcm\model\articles\articlelist();
         $this->ownArticleIds = $this->articleList->getArticleIDsByUser(\fpcm\classes\baseconfig::$fpcmSession->getUserId());
     }
     $isAdmin = \fpcm\classes\baseconfig::$fpcmSession->getCurrentUser()->isAdmin();
     $permEditAll = $this->permissions->check(array('comment' => 'editall'));
     $permEditOwn = $this->permissions->check(array('comment' => 'edit'));
     if ($isAdmin || $permEditAll) {
         $comment->setEditPermission(true);
         return true;
     }
     if (!$isAdmin && !$permEditAll && $permEditOwn && in_array($comment->getArticleid(), $this->ownArticleIds)) {
         $comment->setEditPermission(true);
         return true;
     }
     $comment->setEditPermission(false);
     return true;
 }