用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

用户管理系统(RBAC)

2015-01-15 作者: 云代码会员举报

[php]代码库

<?php
class RbacAction extends CommonAction{

	public function addRole(){
		$this->display();
	}

	//添加角色表单处理
	public function addRoleHandle(){
		if(M('Role')->add($_POST)){
			$this->success('添加成功!',U('rbac/addrole'));
		}
	}

	//角色管理(角色列表)
	public function roleList(){
		$this->role=M('Role')->select();
		$this->display();
	}

	// 添加权限(节点)
	public function addNode(){
		$this->node=M('Node')->where('level!=3')->order('sort')->select();
		$this->display();
	}

	// 添加节点表单处理
	public function addNodeHandle(){
		$node=M('Node');
		$node->create();
		if($node->add()){
			$this->success('添加成功!',U('rbac/nodeList'));
		}
	}

	// 权限管理(节点列表)
	public function nodeList(){
		import('ORG.Util.Tree');
		$node=M('Node')->order('sort')->select();
		$this->node=Tree::create($node);
		$this->display();
	}

	//删除权限(节点)
	public function deletenode(){
		if(M('Node')->where('id='.I('id','',int))->delete()){
			$this->success('删除成功!',U('rbac/nodeList'));
		}
	}

	public function addUser(){
		$this->role=M('Role')->select();
		$this->display();
	}

	//添加用户处理
	public function addUserHandle(){
		$data['username']=I('username');
		$data['password']=I('password','','md5');
		$data['logintime']=time();
		$data['loginip']=get_client_ip();
		$data['status']=1;
		$uid=M('User')->add($data);
		if($uid){
			//用户添加成功后添加用户角色表
			$role['role_id']=I('role_id','',int);
			$role['user_id']=$uid;
			$this->success('添加成功!',U('rbac/addUser'));
		}else{
			$this->error('添加失败!');
		}
	}

	//用户列表
	public function userList(){
		$this->user=D('User')->field('password',true)->relation(true)->select();
		$this->display();
	}

	//配置权限
	public function access(){
		import('ORG.Util.Tree');
		$rid=I('rid','',int);
		$node=M('Node')->order('sort')->select();
		$this->node=Tree::create($node);

		$data=array();//$data用于存放最新数组,里面包含当前用户组是否有每一个权限
		$access=M('Access');
		foreach ($node as $value) {
			$count=$access->where('role_id='.$rid.' and node_id='.$value['id'])->count();
			if($count){
				$value['access']=1;
			}else{
				$value['access']=0;
			}
			$data[]=$value;
		}
		$this->nodelist=$data;
		$this->rid=$rid;
		$this->name=M('Role')->getFieldById($rid,'name');
		$this->display();
	}

	//添加角色-权限表(节点表)
	public function setAccess(){
		$rid=I('rid','',int);
		$access=M('Access');
		$access->where('role_id='.$rid)->delete();//清空当前角色的所有权限
		
		if(isset($_POST['access'])){
			$data=array();
			foreach($_POST['access'] as $value){
				$tmp=explode('_', $value);
				$data[]=array(
					'role_id'=> $rid,
					'node_id'=> $tmp[0],
					'level'  => $tmp[1],
				);
			}
			if($access->addAll($data)){
				$this->success('修改成功!',U('rbac/addRole'));
			}else{
				$this->error('修改失败!',U('rbac/access'),60);
			}
		}else{
			$this->error('修改失败!');
		}
	}














}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...