控制器:RoleController 操作方法:showlist
商品列表界面,在left.html中
<table id=child{$v.auth_id} style="display:none" cellspacing=0 cellpadding=0 width=150 border=0>
{foreach $auth_infoB as $kk => $vv}
{*子级权限的pid与外部权限的id必须相等*}
{if $vv.auth_pid == $v.auth_id}
<tr height=20>
<td align=middle width=30>
<img height=9 src="{$smarty.const.ADMIN_IMG_URL}menu_icon.gif" width=9>
</td>
<td><a class="menuchild" href="{$smarty.const.__MODULE__}/{$vv.auth_c}/{$vv.auth_a}" target="right">{$vv.auth_name}</a></td>
</tr>
{/if}
{/foreach}
<tr height=4><td colspan=2></td></tr>
</table>
{/foreach}
</td>
<td width=1 bgcolor=#d1e6f7></td>
</tr>
</table>
1,展示角色列表,
控制器:RoleController
操作方法:showlist
class RoleController extends AdminController{
//角色列表展示
function showlist(){
//获得角色数据、展示数据
$info = D(‘Role‘)->select();
$this -> assign(‘info‘,$info);
$this -> display();
}
在view的role模块下showlist.html中
{foreach $info as $k => $v}
<tr id="product1">
<td>{*[email protected]*}{$v.role_id}</td>
<td>{$v.role_name}</td>
<td>{$v.role_auth_ids}</td>
<td>{$v.role_auth_ac}</td>
<td><a href="{$smarty.const.__CONTROLLER__}/distribute/role_id/{$v.role_id}">分配权限</a></td> //传递role_id信息给distribute方法,告知当前为哪个角色分配权限
<td><a href="">修改</a></td>
<td><a href="" onclick="">删除</a></td>
</tr>
{/foreach}
2,给角色分配权限
控制器:RoleController
操作方法:distribute
//分配权限
function distribute($role_id){
$role = new \Model\RoleModel();
//两个逻辑:展示、收集
if(!empty($_POST)){
//$_POST数据需要二期制作才可以写入数据库
//在自定义RoleModel里边制作一个方法saveAuth,实现数据制作和存储
$z = $role->saveAuth($role_id,$_POST[‘auth_id‘]);
if($z){
$this -> redirect(‘showlist‘,array(),2,‘分配权限成功‘);
}else{
$this -> redirect(‘distribute‘,array(‘role_id‘=>$role_id),2,‘分配权限失败‘);
}
}else{
//查询被分配权限的角色信息
$role_info = $role->find($role_id);
//角色已经拥有的权限信息
$have_auth = explode(‘,‘,$role_info[‘role_auth_ids‘]);//变为数组
//获得全部用于分配的权限并展示给模板
//顶级权限、次顶级权限
$auth_infoA = D(‘Auth‘)->where(‘auth_level=0‘)->select();
$auth_infoB = D(‘Auth‘)->where(‘auth_level=1‘)->select();
$this -> assign(‘have_auth‘,$have_auth);
$this -> assign(‘auth_infoA‘,$auth_infoA);
$this -> assign(‘auth_infoB‘,$auth_infoB);
$this -> assign(‘role_info‘,$role_info);
$this -> display();
}
}
}