From 0926c532ab4158060569595ea0dfa16a52a39fa2 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 15 Jun 2021 15:08:27 +0800 Subject: [PATCH] no message --- app/Exceptions/ApiException.php | 32 ++ app/Exceptions/Handler.php | 6 +- app/Http/Controllers/Api/DialogController.php | 49 +-- .../Controllers/Api/ProjectController.php | 334 +++--------------- app/Http/Controllers/Api/SystemController.php | 22 +- app/Http/Controllers/Api/UsersController.php | 33 +- app/Models/Project.php | 18 + app/Models/ProjectTask.php | 24 ++ app/Models/User.php | 87 ++--- 9 files changed, 169 insertions(+), 436 deletions(-) create mode 100644 app/Exceptions/ApiException.php diff --git a/app/Exceptions/ApiException.php b/app/Exceptions/ApiException.php new file mode 100644 index 00000000..a06e70fa --- /dev/null +++ b/app/Exceptions/ApiException.php @@ -0,0 +1,32 @@ +data = $data; + parent::__construct($msg, $code); + } + + /** + * @return array + */ + public function getData(): array + { + return $this->data; + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 2842f775..7c52374b 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -50,8 +50,10 @@ class Handler extends ExceptionHandler */ public function render($request, Throwable $e) { - if ($e instanceof ModelNotFoundException) { - return response()->json(Base::retError('数据不存在')); + if ($e instanceof ApiException) { + return response()->json(Base::retError($e->getMessage(), $e->getData(), $e->getCode())); + } elseif ($e instanceof ModelNotFoundException) { + return response()->json(Base::retError('Interface error')); } return parent::render($request, $e); } diff --git a/app/Http/Controllers/Api/DialogController.php b/app/Http/Controllers/Api/DialogController.php index 4e7c8cea..61f63d87 100755 --- a/app/Http/Controllers/Api/DialogController.php +++ b/app/Http/Controllers/Api/DialogController.php @@ -27,12 +27,7 @@ class DialogController extends AbstractController */ public function lists() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $list = WebSocketDialog::select(['web_socket_dialogs.*']) ->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id') @@ -53,12 +48,7 @@ class DialogController extends AbstractController */ public function one() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $dialog_id = intval(Request::input('dialog_id')); // @@ -81,12 +71,7 @@ class DialogController extends AbstractController */ public function open__user() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $userid = intval(Request::input('userid')); if ($userid == $user->userid) { @@ -114,12 +99,7 @@ class DialogController extends AbstractController */ public function msg__lists() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $dialog_id = intval(Request::input('dialog_id')); // @@ -164,12 +144,7 @@ class DialogController extends AbstractController */ public function msg__sendtext() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $dialog_id = intval(Request::input('dialog_id')); $extra_int = intval(Request::input('extra_int')); @@ -209,12 +184,7 @@ class DialogController extends AbstractController */ public function msg__sendfile() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $dialog_id = Base::getPostInt('dialog_id'); $extra_int = Base::getPostInt('extra_int'); @@ -289,12 +259,7 @@ class DialogController extends AbstractController */ public function msg__readlist() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $msg_id = intval(Request::input('msg_id')); // diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 4abdd4c4..3990cf2d 100755 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -35,12 +35,7 @@ class ProjectController extends AbstractController */ public function lists() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $list = Project::select($this->projectSelect) ->join('project_users', 'projects.id', '=', 'project_users.project_id') @@ -58,20 +53,11 @@ class ProjectController extends AbstractController */ public function one() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $project_id = intval(Request::input('project_id')); // - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -86,12 +72,7 @@ class ProjectController extends AbstractController */ public function detail() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $project_id = intval(Request::input('project_id')); // @@ -123,12 +104,7 @@ class ProjectController extends AbstractController */ public function add() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); //项目名称 $name = trim(Request::input('name', '')); $desc = trim(Request::input('desc', '')); @@ -193,12 +169,7 @@ class ProjectController extends AbstractController */ public function edit() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $project_id = intval(Request::input('project_id')); $name = trim(Request::input('name', '')); @@ -212,11 +183,7 @@ class ProjectController extends AbstractController return Base::retError('项目描述最多只能设置255个字'); } // - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -240,22 +207,13 @@ class ProjectController extends AbstractController */ public function sort() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $project_id = intval(Request::input('project_id')); $sort = Base::json2array(Request::input('sort')); $only_column = intval(Request::input('only_column')); // - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -301,22 +259,13 @@ class ProjectController extends AbstractController */ public function user() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $project_id = intval(Request::input('project_id')); $userid = Request::input('userid'); $userid = is_array($userid) ? $userid : [$userid]; // - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -345,21 +294,12 @@ class ProjectController extends AbstractController */ public function transfer() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $project_id = intval(Request::input('project_id')); $owner_userid = intval(Request::input('owner_userid')); // - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -392,20 +332,11 @@ class ProjectController extends AbstractController */ public function exit() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $project_id = intval(Request::input('project_id')); // - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -428,20 +359,11 @@ class ProjectController extends AbstractController */ public function delete() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $project_id = intval(Request::input('project_id')); // - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -463,21 +385,12 @@ class ProjectController extends AbstractController */ public function column__add() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $project_id = intval(Request::input('project_id')); $name = trim(Request::input('name')); // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -506,12 +419,7 @@ class ProjectController extends AbstractController */ public function column__update() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $data = Request::all(); $column_id = intval($data['column_id']); @@ -543,12 +451,7 @@ class ProjectController extends AbstractController */ public function column__delete() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $column_id = intval(Request::input('column_id')); // 列表 @@ -579,25 +482,11 @@ class ProjectController extends AbstractController */ public function task__one() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); - // 任务 - $task = ProjectTask::with(['taskUser', 'taskTag'])->whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + // + list($task, $project) = ProjectTask::userTask($task_id, ['taskUser', 'taskTag']); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -615,25 +504,11 @@ class ProjectController extends AbstractController */ public function task__sublist() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -649,25 +524,11 @@ class ProjectController extends AbstractController */ public function task__content() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -682,25 +543,11 @@ class ProjectController extends AbstractController */ public function task__files() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -722,21 +569,12 @@ class ProjectController extends AbstractController */ public function task__add() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); parse_str(Request::getContent(), $data); $project_id = intval($data['project_id']); $column_id = $data['column_id']; // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $project_id) - ->where('project_users.userid', $user->userid) - ->first(); + $project = Project::userProject($project_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -790,26 +628,12 @@ class ProjectController extends AbstractController */ public function task__addsub() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); $name = Request::input('name'); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -849,26 +673,12 @@ class ProjectController extends AbstractController */ public function task__update() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // parse_str(Request::getContent(), $data); $task_id = intval($data['task_id']); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -905,25 +715,11 @@ class ProjectController extends AbstractController */ public function task__upload() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $task_id = Base::getPostInt('task_id'); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -972,25 +768,11 @@ class ProjectController extends AbstractController */ public function task__dialog() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -1024,25 +806,11 @@ class ProjectController extends AbstractController */ public function task__archived() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } @@ -1061,25 +829,11 @@ class ProjectController extends AbstractController */ public function task__delete() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + user::auth(); // $task_id = intval(Request::input('task_id')); // 任务 - $task = ProjectTask::whereId($task_id)->first(); - if (empty($task)) { - return Base::retError('任务不存在'); - } - // 项目 - $project = Project::select($this->projectSelect) - ->join('project_users', 'projects.id', '=', 'project_users.project_id') - ->where('projects.id', $task->project_id) - ->where('project_users.userid', $user->userid) - ->first(); + list($task, $project) = ProjectTask::userTask($task_id); if (empty($project)) { return Base::retError('项目不存在或不在成员列表内'); } diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php index d19f71ba..ef20217f 100755 --- a/app/Http/Controllers/Api/SystemController.php +++ b/app/Http/Controllers/Api/SystemController.php @@ -36,15 +36,8 @@ class SystemController extends AbstractController if (env("SYSTEM_SETTING") == 'disabled') { return Base::retError('当前环境禁止修改'); } - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } - if (!$user->isAdmin()) { - return Base::retError('权限不足'); - } + $user = User::auth(); + $user->isAdmin(); $all = Request::input(); foreach ($all AS $key => $value) { if (!in_array($key, ['reg', 'login_code'])) { @@ -79,15 +72,8 @@ class SystemController extends AbstractController { $type = trim(Request::input('type')); if ($type == 'save') { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } - if (!$user->isAdmin()) { - return Base::retError('权限不足'); - } + $user = User::auth(); + $user->isAdmin(); $list = Base::getPostValue('list'); $array = []; if (empty($list) || !is_array($list)) { diff --git a/app/Http/Controllers/Api/UsersController.php b/app/Http/Controllers/Api/UsersController.php index bfc5e092..be9e108c 100755 --- a/app/Http/Controllers/Api/UsersController.php +++ b/app/Http/Controllers/Api/UsersController.php @@ -144,8 +144,6 @@ class UsersController extends AbstractController * @apiGroup users * @apiName info * - * @apiParam {String} [callback] jsonp返回字段 - * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息(错误描述) * @apiSuccess {Object} data 返回数据 @@ -168,23 +166,9 @@ class UsersController extends AbstractController */ public function info() { - $callback = Request::input('callback'); - // - $user = User::authE(); - if (Base::isError($user)) { - if (strlen($callback) > 3) { - return $callback . '(' . json_encode($user) . ')'; - } - return $user; - } else { - $user = User::IDE($user['data']); - } - // + $user = User::auth(); User::token($user); // - if (strlen($callback) > 3) { - return $callback . '(' . json_encode(Base::retSuccess('success', $user)) . ')'; - } return Base::retSuccess('success', $user); } @@ -206,13 +190,7 @@ class UsersController extends AbstractController */ public function editdata() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } - // + $user = User::auth(); //头像 $userimg = Request::input('userimg'); if ($userimg) { @@ -265,12 +243,7 @@ class UsersController extends AbstractController */ public function editpass() { - $user = User::authE(); - if (Base::isError($user)) { - return $user; - } else { - $user = User::IDE($user['data']); - } + $user = User::auth(); // $oldpass = trim(Request::input('oldpass')); $newpass = trim(Request::input('newpass')); diff --git a/app/Models/Project.php b/app/Models/Project.php index 3eea3cfd..dfacf8fa 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -266,4 +266,22 @@ class Project extends AbstractModel }); return Base::isSuccess($result); } + + /** + * 根据用户获取项目信息(用于判断会员是否存在项目内) + * @param int $project_id + * @return self + */ + public static function userProject($project_id) + { + $project = Project::select([ 'projects.*', 'project_users.owner' ]) + ->join('project_users', 'projects.id', '=', 'project_users.project_id') + ->where('projects.id', intval($project_id)) + ->where('project_users.userid', User::token2userid()) + ->first(); + if (empty($project)) { + return null; + } + return $project; + } } diff --git a/app/Models/ProjectTask.php b/app/Models/ProjectTask.php index dd319907..7076f2aa 100644 --- a/app/Models/ProjectTask.php +++ b/app/Models/ProjectTask.php @@ -569,4 +569,28 @@ class ProjectTask extends AbstractModel } }); } + + /** + * 根据会员ID获取任务、项目信息(用于判断会员是否存在项目内) + * @param int $task_id + * @param array $with + * @return array + */ + public static function userTask($task_id, $with = []) + { + $task = ProjectTask::with($with)->whereId(intval($task_id))->first(); + if (empty($task)) { + return null; + } + // 项目 + $project = Project::select([ 'projects.*', 'project_users.owner' ]) + ->join('project_users', 'projects.id', '=', 'project_users.project_id') + ->where('projects.id', $task->project_id) + ->where('project_users.userid', User::token2userid()) + ->first(); + if (empty($project)) { + return null; + } + return [$task, $project]; + } } diff --git a/app/Models/User.php b/app/Models/User.php index 998f9658..0de3fb6d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -3,6 +3,7 @@ namespace App\Models; +use App\Exceptions\ApiException; use App\Module\Base; use Cache; use Carbon\Carbon; @@ -108,7 +109,7 @@ class User extends AbstractModel /** * 是否在线 - * @return int + * @return bool */ public function getOnlineStatus() { @@ -121,11 +122,21 @@ class User extends AbstractModel /** * 判断是否管理员 - * @return bool */ public function isAdmin() { - return in_array('admin', $this->identity); + $this->identity('admin'); + } + + /** + * 判断用户权限(身份) + * @param $identity + */ + public function identity($identity) + { + if (!in_array($identity, $this->identity)) { + throw new ApiException('权限不足'); + } } @@ -241,9 +252,27 @@ class User extends AbstractModel /** * 用户身份认证(获取用户信息) - * @return array|mixed + * @return self */ public static function auth() + { + $user = self::authInfo(); + if (!$user) { + $authorization = Base::getToken(); + if ($authorization) { + throw new ApiException('身份已失效,请重新登录', $user, -1); + } else { + throw new ApiException('请登录后继续...', [], -1); + } + } + return $user; + } + + /** + * 用户身份认证(获取用户信息) + * @return self|false + */ + private static function authInfo() { global $_A; if (isset($_A["__static_auth"])) { @@ -277,24 +306,6 @@ class User extends AbstractModel return $_A["__static_auth"] = false; } - /** - * 用户身份认证(获取用户信息) - * @return array - */ - public static function authE() - { - $user = self::auth(); - if (!$user) { - $authorization = Base::getToken(); - if ($authorization) { - return Base::retError('身份已失效,请重新登录', $user, -1); - } else { - return Base::retError('请登录后继续...', [], -1); - } - } - return Base::retSuccess("auth", $user); - } - /** * 生成token * @param self $userinfo @@ -308,38 +319,6 @@ class User extends AbstractModel return $userinfo->token; } - /** - * 判断用户权限(身份) - * @param $identity - * @return array - */ - public static function identity($identity) - { - $user = self::auth(); - if (is_array($user->identity) - && in_array($identity, $user->identity)) { - return Base::retSuccess("success"); - } - return Base::retError("权限不足"); - } - - /** - * 判断用户权限(身份) - * @param $identity - * @return bool - */ - public static function identityCheck($identity) - { - if (is_array($identity)) { - foreach ($identity as $id) { - if (!Base::isError(self::identity($id))) - return true; - } - return false; - } - return Base::isSuccess(self::identity($identity)); - } - /** * 判断用户权限(身份) * @param $identity