|
@@ -46,18 +46,18 @@ class Admin extends BaseController
|
|
|
$admin_permission = Db::name('admin')->where('id', $id)->value('permission');
|
|
|
// halt($unit_name);
|
|
|
$param = get_params();
|
|
|
-
|
|
|
+
|
|
|
if (!empty($param['keywords'])) {
|
|
|
$where[] = ['id|username|nickname|desc|mobile', 'like', '%' . $param['keywords'] . '%'];
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$where = array();
|
|
|
$permission = array();
|
|
|
$where[] = ['status', '>=', 0];
|
|
|
if($admin_permission == 0){
|
|
|
$permission[] = ['unit_name', '=',$unit_name];
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$rows = empty($param['limit']) ? get_config('app.page_size') : $param['limit'];
|
|
|
$admin = AdminList::where($where)->with('Department')
|
|
|
->where($permission)
|
|
@@ -80,13 +80,16 @@ class Admin extends BaseController
|
|
|
return view();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
//添加
|
|
|
public function add()
|
|
|
- {
|
|
|
- if (request()->isAjax()) {
|
|
|
- $param = get_params();
|
|
|
+ {
|
|
|
+ if (request()->isAjax()) {
|
|
|
+ $param = get_params();
|
|
|
+ if (!preg_match('/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/', $param['pwd'])) {
|
|
|
+ return to_assign(1, '密码必须至少包含8个字符,含有大小写字母、数字和特殊字符!');
|
|
|
+ }
|
|
|
// halt($param);
|
|
|
if (!empty($param['id']) && $param['id'] > 0) { //对已存在账号的编辑
|
|
|
try {
|
|
@@ -100,7 +103,7 @@ class Admin extends BaseController
|
|
|
if (empty($param['edit_pwd_confirm']) or $param['edit_pwd_confirm'] !== $param['edit_pwd']) {
|
|
|
return to_assign(1, '两次密码不一致');
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$param['salt'] = set_salt(20);
|
|
|
$param['pwd'] = set_password($param['edit_pwd'], $param['salt']);
|
|
|
}
|
|
@@ -109,6 +112,7 @@ class Admin extends BaseController
|
|
|
Db::startTrans();
|
|
|
try {
|
|
|
// halt($param);
|
|
|
+ $param['last_password_change'] = time();
|
|
|
Db::name('Admin')->where(['id' => $param['id']])->strict(false)->field(true)->update($param); //更新密码
|
|
|
Db::name('AdminGroupAccess')->where(['uid' => $param['id']])->delete(); //先删除权限组
|
|
|
foreach ($param['group_id'] as $k => $v) {
|
|
@@ -128,14 +132,14 @@ class Admin extends BaseController
|
|
|
$char = mb_substr($param['nickname'], 0, 1, 'utf-8');
|
|
|
Db::name('Admin')->where('id', $param['id'])->update(['thumb' => $this->to_avatars($char)]);
|
|
|
}
|
|
|
- //
|
|
|
+ //
|
|
|
if($param['is_principal'] == 1){
|
|
|
-
|
|
|
+
|
|
|
// $res = Db::name('Department')->where('id', $param['did'])->value('leader_id');
|
|
|
// halt($res);
|
|
|
$res = Db::name('Department')->where('id', $param['did'])->update(['leader_id' => $param['id']]);
|
|
|
// $this->Department->where('id', $param['did'])->force()->save(['leader_id' => $param['id']]);
|
|
|
-
|
|
|
+
|
|
|
// halt($res);
|
|
|
}
|
|
|
|
|
@@ -172,10 +176,12 @@ class Admin extends BaseController
|
|
|
}
|
|
|
$param['salt'] = set_salt(20);
|
|
|
$param['pwd'] = set_password($param['pwd'], $param['salt']);
|
|
|
+ $param['last_password_change'] = time();
|
|
|
+
|
|
|
// 启动事务
|
|
|
Db::startTrans();
|
|
|
try {
|
|
|
-
|
|
|
+
|
|
|
foreach ($param['group_id'] as $k => $v) {
|
|
|
$param['admin_group_id'] = $v;
|
|
|
}
|
|
@@ -197,6 +203,7 @@ class Admin extends BaseController
|
|
|
'group_id' => $v,
|
|
|
];
|
|
|
}
|
|
|
+
|
|
|
Db::name('AdminGroupAccess')->strict(false)->field(true)->insertAll($data);
|
|
|
if (!isset($param['thumb']) || $param['thumb'] == '') {
|
|
|
$char = mb_substr($param['nickname'], 0, 1, 'utf-8');
|
|
@@ -224,9 +231,9 @@ class Admin extends BaseController
|
|
|
}
|
|
|
}
|
|
|
return to_assign(0,"操作成功");
|
|
|
- }else{
|
|
|
-
|
|
|
- $id = empty(get_params('id')) ? 0 : get_params('id');
|
|
|
+ }else{
|
|
|
+
|
|
|
+ $id = empty(get_params('id')) ? 0 : get_params('id');
|
|
|
// dump($id);
|
|
|
$permission = Db::name('admin')->where('id', get_login_admin('id'))->value('permission');
|
|
|
$unit_name = Db::name('admin')->where('id', get_login_admin('id'))->value('unit_name');
|
|
@@ -243,22 +250,22 @@ class Admin extends BaseController
|
|
|
|
|
|
];
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
$department = Db::name('Department')
|
|
|
- ->where('status', '>=', 0)
|
|
|
- ->where($where_d)
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
+ ->where('status', '>=', 0)
|
|
|
+ ->where($where_d)
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
// dump($department);
|
|
|
$department = set_recursion($department);
|
|
|
// dump($department);
|
|
|
$position = Db::name('Position')
|
|
|
- ->where('status', '>=', 0)
|
|
|
- ->where($where_p)
|
|
|
- ->order('create_time asc')
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
+ ->where('status', '>=', 0)
|
|
|
+ ->where($where_p)
|
|
|
+ ->order('create_time asc')
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
|
|
|
foreach($position as $key => $value){
|
|
|
|
|
@@ -267,29 +274,29 @@ class Admin extends BaseController
|
|
|
$position[$key]['did_title'] = $dep;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
$group = Db::name('AdminGroup')
|
|
|
- ->where($where_g)
|
|
|
- ->select()->toarray();
|
|
|
-
|
|
|
+ ->where($where_g)
|
|
|
+ ->select()->toarray();
|
|
|
+
|
|
|
if($permission == 1){
|
|
|
$group = Db::name('AdminGroup')
|
|
|
->where('unit_name', '=', $unit_name)
|
|
|
->select()->toarray();
|
|
|
- // dump($group);
|
|
|
+ // dump($group);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$group_mine = Db::name('AdminGroup')->where('id', $group_id)->select()->toArray();
|
|
|
// dump($permission);
|
|
|
if(get_login_admin('user_type') == -1){
|
|
|
unset($group[0]); //移除超管权限组
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$group = array_merge($group_mine, $group);
|
|
|
-
|
|
|
- if ($id > 0) {
|
|
|
- $admin = get_admin(get_params('id'));
|
|
|
- // dump($admin);
|
|
|
+
|
|
|
+ if ($id > 0) {
|
|
|
+ $admin = get_admin(get_params('id'));
|
|
|
+ // dump($admin);
|
|
|
// $did = get_login_admin('did');
|
|
|
$leader_id = Db::name('Department')->where('id', $admin['did'])->value('leader_id');
|
|
|
// dump($leader_id);
|
|
@@ -298,19 +305,19 @@ class Admin extends BaseController
|
|
|
}else{
|
|
|
$is_principal = 0;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
View::assign('is_principal', $is_principal);
|
|
|
- View::assign('admin', $admin);
|
|
|
- }
|
|
|
+ View::assign('admin', $admin);
|
|
|
+ }
|
|
|
// dump($group);
|
|
|
// dump($department);
|
|
|
View::assign('permission', $permission);
|
|
|
- View::assign('department', $department);
|
|
|
+ View::assign('department', $department);
|
|
|
View::assign('position', $position);
|
|
|
View::assign('group', $group);
|
|
|
- View::assign('id', $id);
|
|
|
- return view();
|
|
|
- }
|
|
|
+ View::assign('id', $id);
|
|
|
+ return view();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public function to_avatars($char)
|
|
@@ -366,35 +373,35 @@ class Admin extends BaseController
|
|
|
//查看
|
|
|
public function view()
|
|
|
{
|
|
|
- $id = get_params('id');
|
|
|
- $rule = get_admin_rule();
|
|
|
-
|
|
|
- $user_groups = Db::name('AdminGroupAccess')
|
|
|
- ->alias('a')
|
|
|
- ->join("AdminGroup g", "a.group_id=g.id", 'LEFT')
|
|
|
- ->where("a.uid='{$id}' and g.status='1'")
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
- $groups = $user_groups ?: [];
|
|
|
-
|
|
|
- $rules = [];
|
|
|
- foreach ($groups as $g) {
|
|
|
- $rules = array_merge($rules, explode(',', trim($g['rules'], ',')));
|
|
|
- }
|
|
|
- $rules = array_unique($rules);
|
|
|
+ $id = get_params('id');
|
|
|
+ $rule = get_admin_rule();
|
|
|
+
|
|
|
+ $user_groups = Db::name('AdminGroupAccess')
|
|
|
+ ->alias('a')
|
|
|
+ ->join("AdminGroup g", "a.group_id=g.id", 'LEFT')
|
|
|
+ ->where("a.uid='{$id}' and g.status='1'")
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ $groups = $user_groups ?: [];
|
|
|
+
|
|
|
+ $rules = [];
|
|
|
+ foreach ($groups as $g) {
|
|
|
+ $rules = array_merge($rules, explode(',', trim($g['rules'], ',')));
|
|
|
+ }
|
|
|
+ $rules = array_unique($rules);
|
|
|
|
|
|
- $role_rule = create_tree_list(0, $rule, $rules);
|
|
|
+ $role_rule = create_tree_list(0, $rule, $rules);
|
|
|
|
|
|
$role_rule = $this->Role->remove_checked_false($role_rule);
|
|
|
|
|
|
- $department = get_department();
|
|
|
+ $department = get_department();
|
|
|
// dump($department);
|
|
|
$position = Db::name('Position')->where('status', '>=', 0)->order('create_time asc')->select();
|
|
|
- View::assign('department', $department);
|
|
|
+ View::assign('department', $department);
|
|
|
View::assign('position', $position);
|
|
|
View::assign('role_rule', $role_rule);
|
|
|
- View::assign('admin', get_admin($id));
|
|
|
- add_log('view', get_params('id'));
|
|
|
+ View::assign('admin', get_admin($id));
|
|
|
+ add_log('view', get_params('id'));
|
|
|
return view('', ['admin' => get_admin(get_params('id'))]);
|
|
|
}
|
|
|
//删除
|
|
@@ -440,19 +447,19 @@ class Admin extends BaseController
|
|
|
foreach ($content as $k => $v) {
|
|
|
$data = $v;
|
|
|
$param_array = json_decode($v['param'], true);
|
|
|
- if(is_array($param_array)){
|
|
|
- $param_value = '';
|
|
|
- foreach ($param_array as $key => $value) {
|
|
|
- if (is_array($value)) {
|
|
|
- $value = implode(',', $value);
|
|
|
- }
|
|
|
- $param_value .= $key . ':' . $value . ' | ';
|
|
|
- }
|
|
|
- $data['param'] = $param_value;
|
|
|
- }
|
|
|
- else{
|
|
|
- $data['param'] = $param_array;
|
|
|
- }
|
|
|
+ if(is_array($param_array)){
|
|
|
+ $param_value = '';
|
|
|
+ foreach ($param_array as $key => $value) {
|
|
|
+ if (is_array($value)) {
|
|
|
+ $value = implode(',', $value);
|
|
|
+ }
|
|
|
+ $param_value .= $key . ':' . $value . ' | ';
|
|
|
+ }
|
|
|
+ $data['param'] = $param_value;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ $data['param'] = $param_array;
|
|
|
+ }
|
|
|
$content->offsetSet($k, $data);
|
|
|
}
|
|
|
return table_assign(0, '', $content);
|
|
@@ -467,17 +474,17 @@ class Admin extends BaseController
|
|
|
$did = Db::name('Admin')->where('id', $id)->value('did');
|
|
|
|
|
|
$pid = $did;
|
|
|
-
|
|
|
- while($pid != 0){
|
|
|
+
|
|
|
+ while($pid != 0){
|
|
|
|
|
|
$value = Db::name('department')->where('id', $pid)->column('id,pid,title')[0];
|
|
|
$id = $value['id'];
|
|
|
$pid = $value['pid'];
|
|
|
- $title = $value['title'];
|
|
|
+ $title = $value['title'];
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// halt($value);
|
|
|
return $id;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
}
|