復制代碼 代碼如下:
 
/* 
  *控制訪問表 
  * acl值 功能 
  * 1 需要登錄 
  * 2 自身修改 
  * 4 需要組的權限集合 
  * 8 需要身份訪問集合 
  * 16 身份被禁止訪問 
  * 32 可訪問的日期 
  * 64 可訪問的周日 
  * 128 可訪問的時間 
  * 256 輸入密碼才能訪問 
  * 512 超級管理使用 
  */ 
  class aclACL extends acl { 
  public $routername="acl"; 
  public $aclid='2'; //權限資源ID,如果登錄人員沒有擁用這個權限那么其(下面)它值都為0也不能訪問 
  public $roledisable=array(9); //禁用身份 
  public $pwd=123456; //密碼訪問 ACL->noPwd(); 
  public $date=array('begin'=>0,'end'=>0); //允許日期之間 
  public $hours=array('begin'=>0,'end'=>0); //一日內小時區間 
  public $weeks=array('begin'=>0,'end'=>0); //一周內周一到周七 
  public $aclgroup=array("create"=>"4,45,8"); //create需要的組才能創建 
  public $aclrole=array("all"=>"6","create"=>"7,95,78"); //create需要的角色才能創建,該組需要ID為6的角色才能訪問 
  public $acl=array("all"=>0, 
  "index"=>4, //表列4表示檢查組的組合 
  "delete"=>1, //刪除只登錄后刪除,當然呆以設置為2或4 
  "update"=>1, //更新提交只能登錄后才能更新,在這里做也防止非法、post,edit是不能訪問顯示編輯內容頁 
  "createForm"=>1, //也不能新提交數據庫 
  "edit"=>0, //登錄才顯示編輯框 
  "show"=>0, //不用登錄也能顯示 
  "create"=>1); //創新表單需要登錄操作 可以設置某個組才能創建 
  } 
  ?> 
 
復制代碼 代碼如下:
 
  class curdRouter extends controller{ 
  //返回 RBAC 控制訪問列表驗證類默認是跟router同名也就是curd 
  //可以不寫這個函數,那么不會啟用通用權限系統。 
  public function isAcl(){} 
  public function index() 
  { 
  $booktype=M("booktype"); 
  $this->pager=C("pager");//取得分類 
  $this->pager->setPager($booktype->count(),10,'page');//取得數據總數中,設置每頁為10 
  $this->assign("list",$booktype->orderby("bookid desc")->limit($this->pager->offset(),10)->fetch()->getRecord()); 
  } 
  public function login(){ //登錄頁面 
  } 
  public function logout(){ //退出頁面 
  MY()->logout(); //退出登錄 
  redirect(url_for("guestbook/index"),"退出成功",3); 
  } 
  public function noAcl($mask) { //處理一下如果沒有權限轉向登錄 
  redirect(url_for("guestbook/login"),"需要登錄",3); 
  } 
  public function loginpost() { //登錄提交地方 簡單處理下登錄認證 
  if($_POST['author']=='queryphp'&&md5($_POST['pwd'])==md5('123456')) 
  { 
  MY()->setLogin(); //設置登錄狀態 
  redirect(url_for("guestbook/adminlist"),"登錄成功",3); 
  } 
  redirect(url_for("guestbook/login"),"登錄失敗",3); 
  } 
復制代碼 代碼如下:
 
  /* 
  *登錄信息基本類 
  *權限表可以緩存數據,登錄時候恢復。 
  */ 
  class mybase { 
  public $options=array(); 
  public $uid; 
  public $username; 
  public $isadmin; 
  public $role=array(); //我使用的身份 
  public $group=array(); //我所在組 
  public $grouprole=array(); //組的身份 
  public $mygroupMar=array(); //我擁有管理的組 
  public $mygroupOwn=array(); //屬于我的組 
  public $acl=array(); //主動控制表 groupacl和myacl控制權限集合 內容是rbac的rbacid 
  public $groupacl=array(); //組擁用的控制權限 
  public $myacl=array(); //我的身份擁用的控制權限 
  public $loginfaild=0; //登錄失敗次數 如果超過這個數應該禁止IP登錄幾分種 
可以看框架文件
project/router目錄有一個guestbookRouter.class.php
在后臺

取得guestbookRouter.class.php類名和方法。
然后給這些方法加權限
右邊有一個應用權限,有一個取消權限,如果取消權限表示沒有權限限制
也就是刪除權限文件
應用權限 表示給這個類添加權限,會生成一個權限文件。
在project/router/acl/生成 guestbookACL.class.php文件
程序在加載guestbookRouter.class.php時候會檢查有沒有guestbookACL.class.php權限文件
有就使用權限檢證,沒有就沒有。這樣加減權限跟guestbookRouter.class.php文件入口沒有一點改動
  所以將來加權限方法很方便。
新聞熱點
疑難解答