權限管理,就是給不同的用戶分配不同的權限。當用戶登錄或者操作時候進行判斷,來阻止用戶進行權限以外的操作。本次講的是當用戶登錄一刻,只顯示權限開啟的內容。
一、建立數據庫。
1、權限表funcla。來存儲錄入所有權限,也是避免因權限名稱修改了,權限失效的問題。
2、管理員表admin。主要存儲管理員用戶名等信息。
3、管理員對應權限表funadmin。主要存儲已開啟的管理員id與權限id。
二、輸出權限列表。
1、通過管理員列表進入權限分配。
2、權限分配列表。
關于權限分配列表,因為權限板塊的不同,我們需要區別頂級分類與其子集。并且還需要顯示權限狀態。在權限狀態判斷中也使用了一層循環判斷。代碼中采用了三層嵌套循環輸出。
具體代碼如下
<div>分配管理員{$username}的權限</div> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="list_table mt10"> <tr> <th>權限名稱</th> <th>狀態</th> </tr> <volist name="funcla" id="v" key="j"> <tr class="tr"> <td>{$v.claname}</td> <td><input <volist name="funadmin" id="d"><if condition="$d['funclaid'] eq $v['id']">checked</if></volist> type="checkbox" id="{$v.id}" name="{$userid}" onchange="return setfun(this,seturl)" /></td> </tr> <volist name="fun" id="vo"> <if condition="$vo['clapid'] eq $v['id']"> <tr class="tr"> <td style="padding-left: 40px;" >{$vo.claname}</td> <td> <input <volist name="funadmin" id="d"><if condition="$d['funclaid'] eq $vo['id']">checked</if></volist> type="checkbox" id="{$vo.id}" name="{$userid}" onchange="return setfun(this,seturl)" /> </td> </tr> </if> </volist> </volist> </table>
循環示例圖如:

3、具體控制器如下:
public function setfun(){ $uid=I('get.id',0,'int'); $a=M('admin'); $user=$a->where(array(id=>$uid))->field('username,id')->find(); $this->username=$user['username']; $this->userid=$user['id']; $m=M('funcla'); $funcla=$m->where(array(clapid=>'0'))->field(true)->select(); $fun=$m->field(true)->select(); $this->fun=$fun; $this->funcla=$funcla; $fd=M('funadmin'); $funadmin=$fd->where(array(adminid=>$uid))->field(true)->select(); $this->funadmin=$funadmin; $this->display(); }
4、js。當用戶權限發生改變時,即觸發js提交json,向控制器傳遞數據參數。
function setfun(t,u){ var id=$(t).attr('id'); var uid=$(t).attr('name'); var type=$(t).is(":checked")?1:0; var url=u; $.ajax({ url:url, type:'post', data:{ id:id, type:type, uid:uid }, success:function(data){ }, error:function(data){ } }) }
json傳遞的url地址用過頁面中實例化地址獲取。如:
<script type="text/javascript"> var seturl="{:U("Admin/chanefun")}"; </script>
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。