Thinkphp3.2 cms之角色开发
一、角色管理开发
<?php namespace Admin\Controller;
use Think\Controller; class SystemController extends CommonController{ public function Role_Index(){
$Role_list=D('role')->select();
$this->assign('Role_list',$Role_list);
$this->display("role");
} /***
* 角色添加
*/
public function Role_Add(){
$data['r_name']=I('post.r_name','','htmlspecialchars');
$data['r_pid']=I('post.r_name','0','htmlspecialchars'); $Role_add=D('role')->add($data); if(isset($Role_add)){
$this->success("添加成功");
}else{
$this->error("添加失败");
}
} /**
* @param int $id
* 删除角色
*/
public function Role_Del($id=0){ $r_del=D('role')->where(array('r_id'=>$id))->delete();
if(isset($r_del)){
$this->success("删除成功");
}else{
$this->error("删除失败");
}
} public function Role_Update($id=0){
if(IS_POST) {
$data['r_name'] = I('post.r_name', '', 'htmlspecialchars');
$data['r_pid'] = I('post.r_name', '0', 'htmlspecialchars');
$r_save = D('role')->where(array('r_id' => I('post.id')))->save($data);
if(isset($r_save)){
$this->success("修改成功");
}else{
$this->error("修改失败");
} }else{
$role_update=D('role')->where(array('r_id'=>$id))->find();
$this->assign('role_update',$role_update);
$this->display('RoleEdit');
} } /**
* 权限管理
*/
public function Auth_Index(){
$Auth_node=D('node')->select();
$this->assign('auth_node',$Auth_node);
$this->display('auth');
} /**
* 权限添加
*/ public function Auth_Add(){ $data=$this->Auth_Data();
$auth_add=D('node')->add($data);
if($auth_add){
$this->success("添加成功");
}else{
$this->error("添加失败");
} } public function Auth_Data(){
$data['n_name']=I('post.n_name','','htmlspecialchars');
$data['n_g']=ucfirst(I('post.n_g','','htmlspecialchars'));
$data['n_m']=ucfirst(I('post.n_m','','htmlspecialchars'));
$data['n_a']=ucfirst(I('post.n_a','','htmlspecialchars'));
$data['n_pid']=I('post.n_pid');
$data['n_sort']=I('post.n_sort'); return $data; } /**
* 角色权限设置
*/
public function AuthRole_Setting($id=0){
$Auth_node=D('node')->select();
$Role_list=D('role')->where(array('r_id'=>$id))->find();
$Node_Access=M('node_access')->where(array('r_id'=>$id))->find();
$this->assign('auth_node',$Auth_node);
$this->assign('role_list',$Role_list);
$this->assign('node_access',$Node_Access);
$this->display('AuthSetting');
} /**
* 角色权限添加
*/
public function AuthRoleSetting_Add(){
$data['r_id']=I('post.r_id');
$n_id=I('post.new_rules');
$data['n_id'] = implode(',', $n_id);
$Node_role_find=D('node_access')->where(array('r_id'=>$data['r_id']))->find();
$Node_role_access=empty($Node_role_find)?D('node_access')->add($data):D('node_access')->where(array('r_id'=>$data['r_id']))->save($data);
if($Node_role_access!=false){
$this->success("配置成功");
}else{
$this->error("配置失败");
} } /**
* 权限的删除
*/
public function Auth_Del($id=0){
$auth_del=M('node')->where(array('n_id'=>$id))->delete();
} /**
* 权限修改
*/
public function Auth_SaveIndex()
{
$this->display("authsave"); } /**
* 测试
*/
// public function disubs(){
// $data=D('node')->field('n_id,n_name')->where('n_pid=0')->select();
// foreach($data as $k=>$v){
// $data[$k]['sub']=D('node')->field('n_id,n_name')->where('n_pid='.$v['n_id'])->select();
// }
// var_dump($data);
//
// } public function User_Index(){
$Role_list=D('role')->select(); //角色id
$User_list=M('login')->select(); //用户id
$Role_user=M('role_user')->select(); //角色和用户共同id
foreach($User_list as $k=>$v){
$role=M('role_user')->where(array('user_id'=>$v['uid']))->join('m_role on m_role_user.role_id=m_role.r_id')->select();
$User_list[$k]['role_name']=$role[0]['r_name'];
}
$this->assign('role_list',$Role_list);
$this->assign('user_list',$User_list);
$this->assign('role_user',$Role_user);
$this->display("UserIndex"); } public function User_Data(){
$data['uname']=I('post.uname','','htmlspecialchars');
$data['upasswd']=I('post.upasswd','','htmlspecialchars');
$data['state']=I('post.state','0','htmlspecialchars'); return $data;
} public function User_Add(){ if(IS_POST){
$data=$this->User_Data();
$User_Add=M('login')->add($data);
if($User_Add){
$role['role_id']= I('post.role_id');
$role['user_id']=$User_Add;
M('role_user')->add($role);
$this->success("添加成功");
}
}
} public function User_Del($id=0){
$User_del=M('login')->where(array('uid'=>I('get.uid')))->delete(); if($User_del){
$this->success("删除成功");
}else{
$this->error("删除失败");
}
} public function ceshi(){
$User_list=M('login')->select(); //用户id
foreach($User_list as $k=>$v){
$role=M('role_user')->where(array('user_id'=>$v['uid']))->join('m_role on m_role_user.role_id=m_role.r_id')->select();
$User_list[$k]['role_name']=$role[0]['r_name'];
}
$this->admin=M('node_access')->where(array('r_id'=>2))->find();
foreach($this->admin as $val){
$map=explode(",",$val);
} for($i=0;$i<count($map);$i++)
{
$menu[]=D('node')->where(array("n_id"=>$map[$i]))->select(); } } }
Thinkphp3.2 cms之角色开发的更多相关文章
- 简易版CMS后台管理系统开发流程
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
- ThinkPHP项目CMS内容管理系统开发视频教程【20课】(3.02GB)
ThinkPHP背景介绍: ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业级应用开发而诞生的. ...
- 【Q】类和对象:游戏角色开发(角色介绍)
案例情景:某公司要开发新游戏,请用面向对象的思想设计英雄类.怪物类和武器类. 编写测试类,创建英雄对象.怪物对象和武器对象,并输出各自的信息. 其中设定分别如下: 1.英雄类 属性:英雄名字.生命值. ...
- Day01_搭建环境&CMS服务端开发
学成在线 第1天 讲义-项目概述 CMS接口开发 1 项目的功能构架 1.1 项目背景 受互联网+概念的催化,当今中国在线教育市场的发展可谓是百花齐放.如火如荼. 按照市场领域细分为:学前教育.K12 ...
- Thinkphp3.2 cms之权限管理
五.权限管理 <?php namespace Admin\Controller; use Think\Controller; class CommonController extends Con ...
- 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_01-项目概述-功能构架-项目背景
这个就是博学谷下的 在线教育平台
- Thinkphp3.2 cms之分类管理
四.分类管理 <?php namespace Admin\Controller; use Think\Controller; class CateController extends Contr ...
- Thinkphp3.2 cms之登陆模块
<?php /** * Created by dreamcms. * User: Administrator * Date: 2016/9/5 * Time: 17:15 */ namespac ...
- Thinkphp3.2 cms之文章模块
二.文章模块 <?php namespace Admin\Controller; use Think\Controller; class NewController extends Common ...
随机推荐
- Linux批量查找与替换
Linux批量查找并替换文件夹下所有文件的内容 经常要使用到 Linux的批量查找与替换,这里为大家介绍使用 sed 命令和 grep 命令的结合来实现查找文件中的内容并替换. 语法格式: sed - ...
- SpringBoot+单机redis
spring boot-redis集成 看教程来的,看起来很简单,但是集成后发现启动失败? WARN 2556 --- [ restartedMain] ationConfigEmbeddedWebA ...
- linux系统上用户态pppoe收发包过程
花了几天看了一下ppp/pppoe有关的东西,画了一下用户态pppoe收发包的示意图.
- 多测师讲解_肖sir _rf报错归纳(1):
错误一: 报错原因:文件格式 解决方案: 修改文件格式,将txt改成robot格式 错误二: rf 运行以后出现乱码现象 解决方案: 打开python的安装路径下:C:\python37\Lib\ ...
- C# 范型约束 new() 你必须要知道的事
C# 范型约束 new() 你必须要知道的事 注意:本文不会讲范型如何使用,关于范型的概念和范型约束的使用请移步谷歌. 本文要讲的是关于范型约束无参构造函数 new 的一些底层细节和注意事项.写这篇文 ...
- java9系列第二篇-资源自动关闭的语法增强
我计划在后续的一段时间内,写一系列关于java 9的文章,虽然java 9 不像Java 8或者Java 11那样的核心java版本,但是还是有很多的特性值得关注.期待您能关注我,我将把java 9 ...
- MeteoInfoLab脚本示例:站点填图
打开包含站点填图的站点数据文件(比如micaps 1)之后,用文件对象的smodeldata函数获取StationModel数据对象,然后用stationmodel函数绘制站点填图图层.脚本程序: # ...
- 发布TrajStat 1.4.4
发布TrajStat 1.4.4 (MeteoInfo Java版插件),在PSCF和CWT源区分析中增加了依据格点中的气团轨迹条数为权重进行结果处理的功能.之前的仅有按照轨迹节点数目进行权重处理的功 ...
- day26 Pyhton 面向对象复习
一 class 类名(): pass 对象 object 对象 = 类名() class Person: pass print(Person)#<class '__main__.Person'& ...
- pytest使用小结
一.pytest简洁和好处 自动发现测试用例 testloader 断言方便 ,自定义错误提示 assert 正则匹配 灵活运行指定的测试用例,指定模块,制定测试类,测试用例 -k 标签化,回归 正向 ...