You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.4 KiB
84 lines
2.4 KiB
10 months ago
|
<?php
|
||
|
|
||
|
namespace app\admin\controller\general;
|
||
|
|
||
|
use app\admin\model\Admin;
|
||
|
use app\common\controller\Backend;
|
||
|
use fast\Random;
|
||
|
use think\Session;
|
||
|
use think\Validate;
|
||
|
|
||
|
/**
|
||
|
* 个人配置
|
||
|
*
|
||
|
* @icon fa fa-user
|
||
|
*/
|
||
|
class Profile extends Backend
|
||
|
{
|
||
|
|
||
|
protected $searchFields = 'id,title';
|
||
|
|
||
|
/**
|
||
|
* 查看
|
||
|
*/
|
||
|
public function index()
|
||
|
{
|
||
|
//设置过滤方法
|
||
|
$this->request->filter(['strip_tags', 'trim']);
|
||
|
if ($this->request->isAjax()) {
|
||
|
$this->model = model('AdminLog');
|
||
|
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||
|
|
||
|
$list = $this->model
|
||
|
->where($where)
|
||
|
->where('admin_id', $this->auth->id)
|
||
|
->order($sort, $order)
|
||
|
->paginate($limit);
|
||
|
|
||
|
$result = array("total" => $list->total(), "rows" => $list->items());
|
||
|
|
||
|
return json($result);
|
||
|
}
|
||
|
return $this->view->fetch();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 更新个人信息
|
||
|
*/
|
||
|
public function update()
|
||
|
{
|
||
|
if ($this->request->isPost()) {
|
||
|
$this->token();
|
||
|
$params = $this->request->post("row/a");
|
||
|
$params = array_filter(array_intersect_key(
|
||
|
$params,
|
||
|
array_flip(array('email', 'nickname', 'password', 'avatar'))
|
||
|
));
|
||
|
unset($v);
|
||
|
if (!Validate::is($params['email'], "email")) {
|
||
|
$this->error(__("Please input correct email"));
|
||
|
}
|
||
|
if (isset($params['password'])) {
|
||
|
if (!Validate::is($params['password'], "/^[\S]{6,30}$/")) {
|
||
|
$this->error(__("Please input correct password"));
|
||
|
}
|
||
|
$params['salt'] = Random::alnum();
|
||
|
$params['password'] = md5(md5($params['password']) . $params['salt']);
|
||
|
}
|
||
|
$exist = Admin::where('email', $params['email'])->where('id', '<>', $this->auth->id)->find();
|
||
|
if ($exist) {
|
||
|
$this->error(__("Email already exists"));
|
||
|
}
|
||
|
if ($params) {
|
||
|
$admin = Admin::get($this->auth->id);
|
||
|
$admin->save($params);
|
||
|
//因为个人资料面板读取的Session显示,修改自己资料后同时更新Session
|
||
|
Session::set("admin", $admin->toArray());
|
||
|
$this->success();
|
||
|
}
|
||
|
$this->error();
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
}
|