コード例 #1
0
ファイル: groupperm.php プロジェクト: RanLee/XoopsCore
 public function updatePerms($content_id, $groups = array())
 {
     $module_id = Page::getInstance()->getModule()->getVar('mid');
     $groups_exists = parent::getGroupIds('page_view_item', $content_id, $module_id);
     $groups_exists = array_values($groups_exists);
     $groups_delete = array_diff(array_values($groups_exists), $groups);
     $groups_add = array_diff($groups, array_values($groups_exists));
     // delete
     if (count($groups_delete) != 0) {
         $criteria = $criteria = new CriteriaCompo();
         $criteria->add(new Criteria('gperm_itemid', $content_id));
         $criteria->add(new Criteria('gperm_modid', $module_id));
         $criteria->add(new Criteria('gperm_name', 'page_view_item', '='));
         $criteria->add(new Criteria('gperm_groupid', '(' . implode(', ', $groups_delete) . ')', 'IN'));
         if (parent::deleteAll($criteria)) {
         }
     }
     // Add
     if (count($groups_add) != 0) {
         foreach ($groups_add as $group_id) {
             parent::addRight('page_view_item', $content_id, $group_id, $module_id);
         }
     }
 }
コード例 #2
0
ファイル: permission.php プロジェクト: trabisdementia/xuups
 function deleteRight($perm, $itemid, $groupid, $mid = null)
 {
     mod_clearCacheFile("permission", "newbb");
     if (empty($mid)) {
         if (is_object($GLOBALS["xoopsModule"]) && $GLOBALS["xoopsModule"]->getVar("dirname") == "newbb") {
             $mid = $GLOBALS["xoopsModule"]->getVar("mid");
         } else {
             $module_handler =& xoops_gethandler("module");
             $mod =& $module_handler->getByDirname("newbb");
             $mid = $mod->getVar("mid");
             unset($mod);
         }
     }
     if (is_callable(array(&$this->XoopsGroupPermHandler, "deleteRight"))) {
         return parent::deleteRight($perm, $itemid, $groupid, $mid);
     } else {
         $criteria = new CriteriaCompo(new Criteria("gperm_name", $perm));
         $criteria->add(new Criteria("gperm_groupid", $groupid));
         $criteria->add(new Criteria("gperm_itemid", $itemid));
         $criteria->add(new Criteria("gperm_modid", $mid));
         $perms_obj = $this->getObjects($criteria);
         if (!empty($perms_obj)) {
             foreach ($perms_obj as $perm_obj) {
                 $this->delete($perm_obj);
             }
         }
         unset($criteria, $perms_obj);
     }
     return true;
 }
コード例 #3
0
ファイル: groupperm.php プロジェクト: RanLee/XoopsCore
 /**
  * Check permission
  *
  * @param string    $gperm_name
  * @param int       $gperm_itemid
  * @param array|int $gperm_groupid
  * @param int       $gperm_modid
  * @param bool      $trueifadmin
  *
  * @return bool
  */
 public function checkRight($gperm_name, $gperm_itemid, $gperm_groupid, $gperm_modid = 1, $trueifadmin = true)
 {
     $trueifadmin = false;
     return parent::checkRight($gperm_name, $gperm_itemid, $gperm_groupid, $gperm_modid, $trueifadmin);
 }