tp5 auth 权限详解

角色权限,我们做任何网站几乎都是需要的,以下是一个简单的案例,大家可以参考下:思路:1、创建三张表。管理员表,角色表(用于记录权限角色值),导航表(用于导航添加及遍历)2、登录成功之后, session 记录角

角色权限,我们做任何网站几乎都是需要的,以下是一个简单的案例,大家可以参考下:

思路:

1、创建三张表。

管理员表,角色表(用于记录权限角色值),导航表(用于导航添加及遍历)

2、登录成功之后, session 记录角色 groud_id ;

通过 groud_id 查询 groud 角色表 并session记录该角色权限值

3、公共控制器中用 mysql “ in“函数, 查询角色表,并匹对角色值,有权限的栏目就在导航中显示。


一、tp5权限功能,效果图:

管理员列表:

管理员添加功能:

角色表:

角色添加:

二、创建数据表:

1、管理员表:

CREATE TABLE `tp5_admin` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(10) DEFAULT NULL COMMENT '账号',
  `realname` varchar(10) DEFAULT NULL COMMENT '真实姓名',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `password` varchar(35) DEFAULT NULL COMMENT '密码',
  `img` varchar(255) DEFAULT NULL COMMENT '头像',
  `addtime` varchar(11) DEFAULT NULL COMMENT '添加时间',
  `updatetime` varchar(11) DEFAULT NULL COMMENT '修改时间',
  `stop` int(2) DEFAULT '1' COMMENT '是/否启用(1启用,0不启用)',
  `login_num` int(11) DEFAULT '0' COMMENT '登录次数',
  `group_id` int(11) DEFAULT NULL COMMENT '权限组',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2、导航表:

CREATE TABLE `tp5_nav` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '栏目名称',
  `ac` varchar(255) DEFAULT NULL COMMENT '栏目方法',
  `co` varchar(255) DEFAULT NULL,
  `url` varchar(255) DEFAULT NULL COMMENT '栏目地址',
  `sort` int(11) DEFAULT '0' COMMENT '排序',
  `stop` int(2) DEFAULT '0' COMMENT '是/否启用',
  `pid` int(11) DEFAULT NULL COMMENT '父id',
  `type` int(11) DEFAULT NULL COMMENT '栏目类型',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

3、权限表:用于记录拥有的权限

CREATE TABLE `tp5_group` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '管理员级别',
  `desc` varchar(255) DEFAULT NULL COMMENT '管理员描述',
  `rule` varchar(255) DEFAULT NULL COMMENT '拥有权限',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

三、实现代码:

业务逻辑代码

1、管理员列表

<div class="row">
	<div class="col-xs-12 col-md-12">
		<div class="widget">
			<div class="widget-header ">
				<span class="widget-caption">管理员管理</span>
				<div class="widget-buttons">
					<a href="#" data-toggle="maximize">
						<i class="fa fa-expand"></i>
					</a>
					<a href="#" data-toggle="collapse">
						<i class="fa fa-minus"></i>
					</a>
				</div>
			</div>
			<div class="widget-body">
				<div class="table-toolbar">
					<a id="editabledatatable_new" href="{:url('admin/Sys/magadd')}" class="btn btn-primary">
						+添加管理员
					</a>
				</div> 
				<table class="table table-striped table-hover table-bordered" id="editabledatatable">
					<thead>
						<tr role="row">
							<th>
								ID
							</th>
							<th>
								账号
							</th>
							<th>
								真实姓名
							</th>
							<th>
								角色
							</th>
							<th>
								邮箱
							</th>
							<th>
								头像
							</th>
							<th>
								登录次数
							</th>
							<th>
								添加时间
							</th>
							<th>
								最近修改
							</th>
							<th>
								状态
							</th>
							<th width="13%">
								操作
							</th>
						</tr>
					</thead>

					<tbody>
					{volist name="maglist" id="vo"}
						<tr>
							<td>{$vo.id}</td>
							<td>{$vo.username}</td>
							<td>{$vo.realname}</td>
							<td class="center ">{$vo.name}</td>
							<td class="center ">{$vo.email}</td>
							<td class="center "><img src="{$vo.img}" alt="" width="50px;" height="50px;"></td>
							<td class="center ">{$vo.login_num}</td>
							<td class="center ">{$vo['addtime']|date='Y-m-d H:i:s',###}</td>
							<td class="center ">{$vo['updatetime']|date='Y-m-d H:i:s',###}</td>
							<td class="center ">
								<label class="qd_btn_{$vo.id}">
									{if condition="$vo.stop eq null"}
                                    <input class="checkbox-slider slider-icon colored-success" type="checkbox" onclick="qdswt(this,{$vo.id});">
                                    <span class="text"></span>
                                    {else

本文标题为:tp5 auth 权限详解

基础教程推荐