:::

6. XOOPS群組與權限

一、 XOOPS權限與群組

  1. XOOPS的權限判斷一律以「群組」為判斷基礎,一個人可以同時隸屬多個群組。
  2. 一個人的所有權限,就是其所屬群組所有權限的集合。
  3. 基本的群組有「管理員」、「會員」、「訪客」,另外,可自己新增想要的各種群組。
  4. 基本的權限有四種,各個模組可自行視需求在模組中新增權限項目:
    • (1)  系統管理權限:通常只開放給管理員,擁有整個XOOPS系統生殺大權。
    • (2)  模組管理權限:某模組的管理權限,一般也只開給管理者,偶爾開給協助的管理人。
    • (3)  模組使用權限:某模組的使用權限,會開放給所有群組,否則有些模組將無法使用。
    • (4)  區塊使用權限:某區塊的使用權限,會開放給所有群組,否則有些區塊將看不到。
  5. 這四種權限,均紀錄在group_permission這個資料表:「system_admin」就是「系統管理權」;「module_read」就是「模組的使用權」;「module_admin」就是「模組的管理權」;「block_read」就是「區塊的使用權」
  6. 請在群組中新增一個「審稿人員」的群組。
  7. 至後台「會員」新增一個帳號,並指定為「會員」及「審稿人員」群組。

二、 設定模組權限

  1. 將groupperm.php複製到模組admin下,並設好權限名稱、權限項目陣列,即有權限設定表單頁面。記得menu.php要加個選項。
  2. $item_list可以設定多種權限,若只有一種,可留一個即可。
  3. 如果儲存後有出現錯誤訊息,請修改 \system\admin\groupperm.php ,將
    include_once dirname(__FILE__) . '../../../include/cp_header.php';
    改為
    include_once  '../../../include/cp_header.php';
  4. 儲存成功後,即可在group_permission資料表看到一筆資料,其中gperm_groupid就是「審稿人員」群組的編號,gperm_itemid則是「$item_list」中的「權限項目編號」,gperm_modid則是此模組的模組編號,最後的gperm_name則是我們自訂的「$perm_name」名稱。

三、 套用權限

  1. 將以下語法套用至需要判斷權限的地方:
    $perm_name = '權限名稱';
    $perm_itemid = intval(權限項目編號);
    $groups =($xoopsUser)? $xoopsUser->getGroups():XOOPS_GROUP_ANONYMOUS;
    $module_id = $xoopsModule->getVar('mid');
    $gperm_handler =& xoops_gethandler('groupperm');
    if($gperm_handler->checkRight($perm_name, $perm_itemid, $groups, $module_id)){
      //若有權限要做的動作
    }else{
      //若沒有權限要做的動作
    }
  2. 可在/tad_ebook/interface_menu.php加入此判斷,並用$_SESSION['verify']來紀錄是否為審核人員,如此就不用每次都要判斷一次。

四、 新增verify.php審核頁面

  1. 將index.php複製為verify.php,修改xoops_version.php,並產生對應樣板後更新。
  2. 一開頭便判斷$_SESSION['verify']是否為真,若為假即轉走。
  3. 列出所有文章並標示有無審核,單一文章加上審核按鈕。
  4. 修改post.php,寫入時,page_status寫入空值即可,更新時,勿更新該值。

:::

搜尋

QR Code 區塊

https%3A%2F%2Fwww.tad0616.net%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbsn%3D37%26tbdsn%3D1145

書籍目錄

展開 | 闔起

線上使用者

93人線上 (10人在瀏覽線上書籍)

會員: 0

訪客: 93

更多…