当前位置: 首页>>代码示例>>PHP>>正文


PHP QubitAcl::getRepositoryAccess方法代码示例

本文整理汇总了PHP中QubitAcl::getRepositoryAccess方法的典型用法代码示例。如果您正苦于以下问题:PHP QubitAcl::getRepositoryAccess方法的具体用法?PHP QubitAcl::getRepositoryAccess怎么用?PHP QubitAcl::getRepositoryAccess使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在QubitAcl的用法示例。


在下文中一共展示了QubitAcl::getRepositoryAccess方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: execute

 public function execute($request)
 {
     $criteria = new Criteria();
     $criteria->addJoin(QubitActor::ID, QubitActorI18n::ID);
     $criteria->add(QubitActorI18n::AUTHORIZED_FORM_OF_NAME, "{$request->query}%", Criteria::LIKE);
     $criteria->addAscendingOrderByColumn('authorized_form_of_name');
     $criteria->setDistinct();
     $criteria->setLimit(sfConfig::get('app_hits_per_page', 10));
     $criteria = QubitCultureFallback::addFallbackCriteria($criteria, 'QubitActor');
     // Filter "denied" repositories if list for repository autocomplete on
     // information object form
     if (isset($request->aclAction)) {
         $repositoryList = array();
         $repositoryAccess = QubitAcl::getRepositoryAccess($request->aclAction);
         // If all repositories are denied, no response
         if (1 == count($repositoryAccess) && QubitAcl::DENY == $repositoryAccess[0]['access']) {
             return sfView::NONE;
         } else {
             while ($repo = array_shift($repositoryAccess)) {
                 if ('*' != $repo['id']) {
                     $repositoryList[] = $repo['id'];
                 } else {
                     if (QubitAcl::DENY == $repo['access']) {
                         // Require repositories to be specifically allowed (all others
                         // prohibited)
                         $criteria->add(QubitRepository::ID, $repositoryList + array('null'), Criteria::IN);
                     } else {
                         // Prohibit specified repositories (all others allowed)
                         $criteria->add(QubitRepository::ID, $repositoryList, Criteria::NOT_IN);
                     }
                 }
             }
         }
     }
     $this->repositories = QubitRepository::get($criteria);
 }
开发者ID:nurfiantara,项目名称:ehri-ica-atom,代码行数:36,代码来源:autocompleteAction.class.php

示例2: searchFilterDrafts

 public static function searchFilterDrafts($query)
 {
     // Filter out 'draft' items by repository
     $repositoryViewDrafts = QubitAcl::getRepositoryAccess('viewDraft');
     if (1 == count($repositoryViewDrafts)) {
         if (QubitAcl::DENY == $repositoryViewDrafts[0]['access']) {
             // Don't show *any* draft info objects
             $query->addSubquery(QubitSearch::getInstance()->addTerm(QubitTerm::PUBLICATION_STATUS_PUBLISHED_ID, 'publicationStatusId'), true);
         }
     } else {
         // Get last rule in list, it will be the global rule with the opposite
         // access of the preceeding rules (e.g. if last rule is "DENY ALL" then
         // preceeding rules will be "ALLOW" rules)
         $globalRule = array_pop($repositoryViewDrafts);
         // If global rule is GRANT, then listed repos are exceptions so remove
         // from results
         if (QubitAcl::GRANT == $globalRule['access']) {
             while ($repo = array_shift($repositoryViewDrafts)) {
                 $query->addSubquery(QubitSearch::getInstance()->addTerm($repo['id'], 'repositoryId'), true);
                 $query->addSubquery(QubitSearch::getInstance()->addTerm(QubitTerm::PUBLICATION_STATUS_DRAFT_ID, 'publicationStatusId'), true);
             }
         } else {
             while ($repo = array_shift($repositoryViewDrafts)) {
                 $query->addSubquery(QubitSearch::getInstance()->addTerm($repo['id'], 'repositoryId'), true);
             }
             // Filter rule should look like "+(id:(356 357 358) status:published)"
             $query->addSubquery(QubitSearch::getInstance()->addTerm(QubitTerm::PUBLICATION_STATUS_PUBLISHED_ID, 'publicationStatusId'), true);
         }
     }
     return $query;
 }
开发者ID:nurfiantara,项目名称:ehri-ica-atom,代码行数:31,代码来源:QubitAcl.class.php


注:本文中的QubitAcl::getRepositoryAccess方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。