Files
sentcms/app/controller/api/User.php
2022-04-29 20:26:03 +08:00

278 lines
6.9 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace app\controller\api;
use app\model\auth\Member;
use app\model\auth\MemberLog;
use app\model\auth\Role;
use app\model\auth\RoleAccess;
use xin\helper\Str;
/**
* @title 用户管理
*/
class User extends Base {
/**
* @title 用户列表
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function index(Member $user) {
$list = $user->getUserList($this->request);
$this->data['code'] = 1;
$this->data['data'] = $list;
return $this->data;
}
/**
* @title 用户详情
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function detail(Member $user) {
$info = $user->getUserDetail($this->request);
$this->data['code'] = 1;
$this->data['data'] = $info;
return $this->data;
}
/**
* @title 用户添加
* @method POST
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function add(Member $user) {
$data = $this->request->post();
$data['salt'] = Str::random(6);
$result = $user->save($data);
if (false !== $result) {
$this->data['code'] = 1;
$this->data['msg'] = '添加成功!';
} else {
$this->data['code'] = 0;
$this->data['msg'] = '添加失败!';
}
return $this->data;
}
/**
* @title 用户编辑
* @method POST
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function edit(Member $user) {
$data = $this->request->post();
unset($data['password']);
if (isset($data['repassword']) && $data['repassword'] != '') {
$data['password'] = $data['repassword'];
$data['salt'] = Str::random(6);
}
$result = $user->update($data, ['uid' => $data['uid']]);
if (false !== $result) {
$this->data['code'] = 1;
$this->data['msg'] = '修改成功!';
} else {
$this->data['code'] = 0;
$this->data['msg'] = '修改失败!';
}
return $this->data;
}
/**
* @title 用户删除
* @method GET
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function delete(Member $user) {
$param = $this->request->param();
if (isset($param['id']) && $param['id'] != '') {
$result = $user->where('uid', $param['id'])->update(['status' => -1]);
if (false !== $result) {
$this->data['code'] = 1;
$this->data['msg'] = '成功删除!';
} else {
$this->data['code'] = 0;
$this->data['msg'] = '删除失败!';
}
} else {
$this->data['code'] = 0;
$this->data['msg'] = '非法操作!';
}
return $this->data;
}
/**
* @title 密码修改
* @method POST
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function editpasswd(Member $user) {
$data = $this->request->post();
$uid = (isset($data['uid']) && $data['uid']) ? $data['uid'] : $this->request->user['uid'];
$userInfo = $user->where('uid', $uid)->find();
if ($userInfo['password'] !== md5($data['oldpassword'] . $userInfo['salt'])) {
$this->data['code'] = 0;
$this->data['msg'] = "旧密码不正确!";
return $this->data;
}
$save = [
'salt' => Str::random(6),
'password' => $data['password']
];
$result = $user->update($save, ['uid' => $uid]);
if (false !== $result) {
$this->data['code'] = 1;
$this->data['msg'] = '修改成功!';
} else {
$this->data['code'] = 0;
$this->data['msg'] = '修改失败!';
}
return $this->data;
}
/**
* @title 权限信息
* @method GET
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function authinfo(Member $user, Role $role) {
$this->data['data'] = $role->getUserAuthInfo($this->request);
$this->data['data']['userInfo'] = $user->getUserDetail($this->request);
$this->data['data']['roles'] = $this->data['data']['module'];
$this->data['data']['permission'] = [];
$this->data['code'] = 1;
return $this->data;
}
/**
* @title 更新权限
* @method POST
* @param CustomerM $customer [description]
* @return [type] [description]
*/
public function auth(Member $user, RoleAccess $role) {
$data = $this->request->post();
//更新部门信息
$user->update(['department' => $data['department']], ['uid' => $data['uid']]);
//更新角色信息
$role->where('uid', $data['uid'])->delete();
$role->save(['uid' => $data['uid'], 'group_id' => $data['role']]);
$this->data['code'] = 1;
$this->data['msg'] = "更新成功!";
return $this->data;
}
/**
* 用户日志
* @param MemberLog $log [description]
* @return [type] [description]
*/
public function log(MemberLog $log) {
$list = $log->getMemberLogList($this->request)->each(function ($item, $key) {
$item['params'] = json_encode($item['param']);
return $item;
});
$this->data['data'] = $list;
return $this->data;
}
/**
* 用户日志
* @param MemberLog $log [description]
* @return [type] [description]
*/
public function clearlog(MemberLog $log) {
$result = $log->where('create_time', '<', time())->delete();
if (false !== $result) {
$this->data['msg'] = '已清空!';
$this->data['code'] = 1;
} else {
$this->data['msg'] = '未清空!';
$this->data['code'] = 0;
}
return $this->data;
}
/**
* 左侧菜单
* @param MemberLog $log [description]
* @return [type] [description]
*/
public function getMenu(MemberLog $log) {
$this->data['data'] = [
[
'label' => "客户管理",
'path' => "/customer",
'icon' => 'el-icon-document',
'meta' => [
'i18n' => 'customer',
],
'children' => [
[
'label' => "客户列表",
'path' => "/index",
'component' => 'views/customer/index',
'icon' => 'el-icon-document',
'meta' => [
'i18n' => 'customer',
],
],
[
'label' => "厂商列表",
'path' => "/firm",
'component' => 'views/customer/index',
'icon' => 'el-icon-document',
'meta' => [
'i18n' => 'customer',
],
],
[
'label' => "标注列表",
'path' => "/named",
'component' => 'views/customer/index',
'icon' => 'el-icon-document',
'meta' => [
'i18n' => 'customer',
],
],
]
]
];
return $this->data;
}
/**
* 顶部菜单
* @param MemberLog $log [description]
* @return [type] [description]
*/
public function getTopMenu() {
return $this->data;
}
}