thinkphp自定义权限管理之名称判断方法

thinkphp自定义权限管理之名称判断方法,第1张

概述下面小编就为大家带来一篇thinkphp自定义权限管理之名称判断方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

权限管理,就是给不同的用户分配不同的权限。当用户登录或者 *** 作时候进行判断,来阻止用户进行权限以外的 *** 作。本次讲的是当用户登录一刻,只显示权限开启的内容。

一、建立数据库。

      

    

二、输出权限列表。

关于权限分配列表,因为权限板块的不同,我们需要区别顶级分类与其子集。并且还需要显示权限状态。在权限状态判断中也使用了一层循环判断。代码中采用了三层嵌套循环输出。

分配管理员{$username}的权限

权限名称
</tr&gt;<vo<a href="https://m.jb51.cc/tag/List/" target="_blank" >List</a> <a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>="funcla" <a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>="v" key="j"&gt;   <tr &gt;     <td&gt;{$v.cla<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>}</td&gt;     <td&gt;<<a href="https://m.jb51.cc/tag/input/" target="_blank" >input</a> <vo<a href="https://m.jb51.cc/tag/List/" target="_blank" >List</a> <a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>="fun<a href="https://m.jb51.cc/tag/admin/" target="_blank" >admin</a>" <a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>="d"&gt;<if condition="$d['funcla<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>'] eq $v['<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>']"&gt;checked</if></volist> type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" >Box</a>" <a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>="{$v.<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>}" <a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>="{$user<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>}" onchange="return setfun(this,seturl)" /></td&gt;   </tr&gt;  <vo<a href="https://m.jb51.cc/tag/List/" target="_blank" >List</a> <a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>="fun" <a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>="vo"&gt;    <if condition="$vo['<a href="https://www.jb51.cc/tag/clap/" target="_blank" >clap</a><a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>'] eq $v['<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>']"&gt;      <tr &gt;        <td  >{$vo.cla<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>}</td&gt;        <td&gt;          <<a href="https://m.jb51.cc/tag/input/" target="_blank" >input</a> <vo<a href="https://m.jb51.cc/tag/List/" target="_blank" >List</a> <a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>="fun<a href="https://m.jb51.cc/tag/admin/" target="_blank" >admin</a>" <a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>="d"&gt;<if condition="$d['funcla<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>'] eq $vo['<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>']"&gt;checked</if></volist> type="check<a href="https://www.jb51.cc/tag/Box/" target="_blank" >Box</a>" <a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>="{$vo.<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>}" <a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>="{$user<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>}" onchange="return setfun(this,seturl)" />        </td&gt;      </tr&gt;    </if>  </volist></volist>

</table>

循环示例图如:

where(array(ID=>$uID))->fIEld('username,ID')->find();

$this->user<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>=$user['user<a href="https://m.jb51.cc/tag/name/" target="_blank" >name</a>'];$this->user<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>=$user['<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>'];$m=M('funcla');$funcla=$m->where(array(<a href="https://www.jb51.cc/tag/clap/" target="_blank" >clap</a><a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>=>'0'))->f<a href="https://m.jb51.cc/tag/IE/" target="_blank" >IE</a>ld(true)->select();$fun=$m->f<a href="https://m.jb51.cc/tag/IE/" target="_blank" >IE</a>ld(true)->select();$this->fun=$fun;$this->funcla=$funcla;$fd=M('fun<a href="https://m.jb51.cc/tag/admin/" target="_blank" >admin</a>');$fun<a href="https://m.jb51.cc/tag/admin/" target="_blank" >admin</a>=$fd->where(array(<a href="https://m.jb51.cc/tag/admin/" target="_blank" >admin</a><a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>=>$u<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>))->f<a href="https://m.jb51.cc/tag/IE/" target="_blank" >IE</a>ld(true)->select();$this->fun<a href="https://m.jb51.cc/tag/admin/" target="_blank" >admin</a>=$fun<a href="https://m.jb51.cc/tag/admin/" target="_blank" >admin</a>;$this-><a href="https://www.jb51.cc/tag/dis/" target="_blank" >dis</a>play();

}

})
}

Json传递的URL地址用过页面中实例化地址获取。如:

三、控制器获取Json的数据参数,判断权限的添加与修改。如果是添加,就向funadmin表中添加受理权限人ID与要授权的权限ID作为一条数据。修改即删除符合条件的一条数据。同理。

$m=M('funadmin');$where['funclaid']=I('post.id','int');$where['adminid']=I('post.uid','int');$type=I('post.type','int');if(empty($type)){ $oid=$m->where($where)->getf<a href="https://m.jb51.cc/tag/IE/" target="_blank" >IE</a>ld('<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>'); $m->delete($o<a href="https://m.jb51.cc/tag/ID/" target="_blank" >ID</a>); return;}$m->data($where)->add();

}

四、真实权限判断。前面都是为权限判断做准备的,现在才是真正的判断,基本原理是把要判断的权限名称与当前登录用户ID拿到funadmin表中对比,如有发现则,说明该用户有权限,即显示,否则影藏。影藏了是看不到链接地址,但是如果知道地址则可以通过地址直接访问。

任务管理

where(array(claname=>$name))->getfIEld('ID'); $m=M('funadmin'); $adminID=session('admin_userID'); $reset=$m->where(array(funclaID=>$funclaID,adminID=>$adminID))->find(); if(empty($reset)){ echo "你没有权限"; exit; } return $reset;}

至此,整个权限控制基本完成。

以上这篇thinkPHP自定义权限管理之名称判断方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持内存溢出。

总结

以上是内存溢出为你收集整理的thinkphp自定义权限管理之名称判断方法全部内容,希望文章能够帮你解决thinkphp自定义权限管理之名称判断方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1246873.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    状态