//前台页面
<button style="float: right" class="btn btn-info" onclick="curd('{:U('Admin/add')}')"><i class="fa fa-plus"></i>添加</button>
<td class="col-md-3"> <button class="btn btn-info btn-xs" type="button" οnclick="curd('{:U('Admin/detail',array('id'=>$a['id']))}')"><i class="fa fa-eye"></i>详情</button> <button class="btn btn-info btn-xs" type="button" οnclick="curd('{:U('Admin/add',array('id'=>$a['id']))}')"><i class="fa fa-pencil-square-o"></i>编辑</button> <button class="btn btn-info btn-xs" type="button" οnclick="curd('{:U('Admin/del',array('id'=>$a['id']))}')"><i class="fa fa-times"></i>删除</button></td>
<script>
function curd(url) {
location.href=url;
}
</script>
//后台Controller
public function add(){
$id=I('get.id');
$sdept=D('Sdept');
$rel=$sdept->findASdept();
if($id){
$sub="修改";
$admin=D('Admin');
$re=$admin->findu($id);
if(is_array($re)&&is_array($rel)){
$this->assign('meta_title','管理员管理');
$this->assign('role',$this->getAuth());
$this->assign('sub',$sub);
$this->assign('sdept',$rel);
$this->assign('user',$re);
$this->display('add');
}else{
$this->error('id失败',U('Admin/add'),1);
}
}else{
$sub="添加";
$this->assign('role',$this->getAuth());
$this->assign('sdept',$rel);
$this->assign('meta_title','管理员管理');
$this->assign('sub',$sub);
$this->display('add');
}
}
public function updata(){
$id=I('post.id');
$users=D('Admin');
$data=I('post.');
foreach ($data as $key=>$val){
if($val==''){
unset($data[$key]);
}
}
$file=$_FILES;
if($file['file']['error']==0){
$setting = array(
'maxSize'=>3145728,
'savePath' =>'picture/',
'saveName'=>array('uniqid',''),
'exts'=>array('jpg', 'gif', 'png', 'jpeg'),
'autoSub'=>true,
);
$picture = D('Upload');
$info=$picture->upload($file,$setting);
if(is_array($info)){
$data['photo_id']=$info['file']['savepath'].$info['file']['savename'];
$flag=true;
}else
$this->error('头像修改失败,请重新修改',U(' Admin/add'),1);
}elseif ($file['file']['error']==4){
$flag=true;
}else{
$this->error('图片上传失败,请重新上传',U('Info/updata'),1);
}
if($flag){
if ($id) {
$re = $users->updata($data);
if ($re) {
$Auth=M('auth_group_access');
$where='uid='.$id;
$data1['group_id']=$data['role'];
$rel=$Auth->where($where)->save($data1);
if(!$rel){
$this->error('权限修改失败');
}else{
$this->success('信息修改成功,查看管理员列表', U('Admin/index'), 1);
}
} else {
$this->error('信息修改失败,请重新修改', U('Admin/add'), 1);
}
}else{
$re = $users->addu($data);
if ($re) {
$Auth=M('auth_group_access');
$data1['uid']=$re;
$data1['group_id']=$data['role'];
$rel=$Auth->add($data1);
if(!$rel){
$this->error('添加权限出错');
}else{
$this->success('添加成功,查看详细信息', U('Admin/index'), 1);
}
} else {
$this->error('添加信息失败,请重新修改', U('Admin/add'), 1);
}
}
}
}
public function detail(){
$id=I('get.id');
$users=D('Admin');
$sdept=D('Sdept');
$re = $users->findu($id);
if(is_array($re)){
$rel=$sdept->findOSdept( $re['sdept']);
$app=$this->getPage('Appointment',array('did'=>$id));
if(is_array($rel)){
$re['sdept']=$rel['name'];
$this->assign('meta_title','管理员管理');
$this->assign('user',$re);
$this->assign('record',$app);
$this->display('detail');
}
}else{
$this->error('id失败',U('Index/index'),1);
}
}
public function del(){
$id=I('get.id');
$users=D('Admin');
$re=$users->del($id);
if(!$re){
$this->error('删除人员信息出错!');
}else{
$Auth=M('auth_group_access');
$where='uid='.$id;
$re1=$Auth->where($where)->delete();
if(!$re1){
$this->error('删除权限出错');
}else {
$this->success('删除成功!');
}
}
}
public function getAuth(){
$Auth=M('auth_group');
return $Auth->where('status = 1')->select();
}
//Model
class AdminModel extends RelationModel {
/*自动验证*/
protected $_validate = array(
/*验证规则*/
);
/* 自动完成规则 */
protected $_auto = array(
/*完成规则*/
array('password','md5',3,'function')
);
/* 字段映射 */
protected $_map = array(
'zhanghao' =>'tec_id'
);
protected $_link = array(
'AuthGroupAccess'=>array(
'mapping_type'=>self::HAS_ONE,
'foreign_key'=>'uid',
'mapping_fields'=>'group_id',
'as_fields'=>'group_id:role_id'
),
);
public function login($user,$pass){
$user=$this->where(array('tec_id'=>$user,'status'=>1))->field('id,name,tec_id,password,photo_id')->find();
if($user){
if($user['password']==md5($pass)){
$user['type']='tec';
$user['zhanghao']=$user['tec_id'];
unset($user['password']);
$user['role']=D(C('AUTH_CONFIG.AUTH_GROUP_ACCESS'))->getRole($user['id']);
$re=cookiearr('user',$user);
if($re){
return true;
}
}
}
return false;
}
public function getInfo($id,$field){
return $this->relation('AuthGroupAccess')->field($field)->find($id);
}
public function findu($id){
$user=$this->table('admin a')->where(array('a.id'=>$id,'a.status'=>1))->field('a.*,b.group_id as groupid')->join('__AUTH_GROUP_ACCESS__ b on a.id = b.uid')->find();
if($user){
$user['zhanghao']=$user['tec_id'];
return $user;
}else
return false;
}
public function findAll(){
$user=$this->table('admin a')->where(array('a.status'=>1))->field('a.*,b.name as sdeptname,c.group_id as groupid')->join('__SDEPT__ b ON a.sdept = b.id')->join('__AUTH_GROUP_ACCESS__ c on a.id = c.uid')->relation(true)->select();
if($user){
return $user;
}else
return false;
}
public function updata($data){
$this->create($data);
if(is_null($this->data['password'])){
unset($this->data['password']);
}
$re=$this->save();
if($re){
return true;
}else
return false;
}
public function addu($data){
$this->create($data);
$re=$this->add();
if($re){
return $re;
}else
return false;
}
public function del($id){
$re=$this->where(array('id'=>$id,'status'=>1))->delete();
if($re){
return true;
}else
return false;
}
public function getRole($role_id=null){
$admin=$this->findAll();
if(!is_null($role_id)){
foreach($admin as $key=>$val){
if($val['role_id']!=$role_id){
unset($admin[$key]);
}
}
}
return $admin;
}
}
class UploadModel extends Model {
public function upload($files, $setting, $driver = 'Local', $config = null){
$Upload = new Upload($setting, $driver, $config);
$info = $Upload->upload($files);
if($info){
return $info;
} else {
return false;
}
}
}