no message

This commit is contained in:
kuaifan 2021-06-15 15:08:27 +08:00
parent a644d9ec02
commit 0926c532ab
9 changed files with 169 additions and 436 deletions

View File

@ -0,0 +1,32 @@
<?php
namespace App\Exceptions;
use RuntimeException;
class ApiException extends RuntimeException
{
/**
* @var array
*/
protected $data;
/**
* ApiException constructor.
* @param string $msg
* @param array $data
* @param int $code
*/
public function __construct($msg = '', $data = [], $code = 0)
{
$this->data = $data;
parent::__construct($msg, $code);
}
/**
* @return array
*/
public function getData(): array
{
return $this->data;
}
}

View File

@ -50,8 +50,10 @@ class Handler extends ExceptionHandler
*/ */
public function render($request, Throwable $e) public function render($request, Throwable $e)
{ {
if ($e instanceof ModelNotFoundException) { if ($e instanceof ApiException) {
return response()->json(Base::retError('数据不存在')); 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); return parent::render($request, $e);
} }

View File

@ -27,12 +27,7 @@ class DialogController extends AbstractController
*/ */
public function lists() public function lists()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$list = WebSocketDialog::select(['web_socket_dialogs.*']) $list = WebSocketDialog::select(['web_socket_dialogs.*'])
->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id') ->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() public function one()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$dialog_id = intval(Request::input('dialog_id')); $dialog_id = intval(Request::input('dialog_id'));
// //
@ -81,12 +71,7 @@ class DialogController extends AbstractController
*/ */
public function open__user() public function open__user()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$userid = intval(Request::input('userid')); $userid = intval(Request::input('userid'));
if ($userid == $user->userid) { if ($userid == $user->userid) {
@ -114,12 +99,7 @@ class DialogController extends AbstractController
*/ */
public function msg__lists() public function msg__lists()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$dialog_id = intval(Request::input('dialog_id')); $dialog_id = intval(Request::input('dialog_id'));
// //
@ -164,12 +144,7 @@ class DialogController extends AbstractController
*/ */
public function msg__sendtext() public function msg__sendtext()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$dialog_id = intval(Request::input('dialog_id')); $dialog_id = intval(Request::input('dialog_id'));
$extra_int = intval(Request::input('extra_int')); $extra_int = intval(Request::input('extra_int'));
@ -209,12 +184,7 @@ class DialogController extends AbstractController
*/ */
public function msg__sendfile() public function msg__sendfile()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$dialog_id = Base::getPostInt('dialog_id'); $dialog_id = Base::getPostInt('dialog_id');
$extra_int = Base::getPostInt('extra_int'); $extra_int = Base::getPostInt('extra_int');
@ -289,12 +259,7 @@ class DialogController extends AbstractController
*/ */
public function msg__readlist() public function msg__readlist()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$msg_id = intval(Request::input('msg_id')); $msg_id = intval(Request::input('msg_id'));
// //

View File

@ -35,12 +35,7 @@ class ProjectController extends AbstractController
*/ */
public function lists() public function lists()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$list = Project::select($this->projectSelect) $list = Project::select($this->projectSelect)
->join('project_users', 'projects.id', '=', 'project_users.project_id') ->join('project_users', 'projects.id', '=', 'project_users.project_id')
@ -58,20 +53,11 @@ class ProjectController extends AbstractController
*/ */
public function one() public function one()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
// //
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -86,12 +72,7 @@ class ProjectController extends AbstractController
*/ */
public function detail() public function detail()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
// //
@ -123,12 +104,7 @@ class ProjectController extends AbstractController
*/ */
public function add() public function add()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
//项目名称 //项目名称
$name = trim(Request::input('name', '')); $name = trim(Request::input('name', ''));
$desc = trim(Request::input('desc', '')); $desc = trim(Request::input('desc', ''));
@ -193,12 +169,7 @@ class ProjectController extends AbstractController
*/ */
public function edit() public function edit()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
$name = trim(Request::input('name', '')); $name = trim(Request::input('name', ''));
@ -212,11 +183,7 @@ class ProjectController extends AbstractController
return Base::retError('项目描述最多只能设置255个字'); return Base::retError('项目描述最多只能设置255个字');
} }
// //
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -240,22 +207,13 @@ class ProjectController extends AbstractController
*/ */
public function sort() public function sort()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
$sort = Base::json2array(Request::input('sort')); $sort = Base::json2array(Request::input('sort'));
$only_column = intval(Request::input('only_column')); $only_column = intval(Request::input('only_column'));
// //
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -301,22 +259,13 @@ class ProjectController extends AbstractController
*/ */
public function user() public function user()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
$userid = Request::input('userid'); $userid = Request::input('userid');
$userid = is_array($userid) ? $userid : [$userid]; $userid = is_array($userid) ? $userid : [$userid];
// //
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -345,21 +294,12 @@ class ProjectController extends AbstractController
*/ */
public function transfer() public function transfer()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
$owner_userid = intval(Request::input('owner_userid')); $owner_userid = intval(Request::input('owner_userid'));
// //
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -392,20 +332,11 @@ class ProjectController extends AbstractController
*/ */
public function exit() public function exit()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
// //
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -428,20 +359,11 @@ class ProjectController extends AbstractController
*/ */
public function delete() public function delete()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
// //
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -463,21 +385,12 @@ class ProjectController extends AbstractController
*/ */
public function column__add() public function column__add()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$project_id = intval(Request::input('project_id')); $project_id = intval(Request::input('project_id'));
$name = trim(Request::input('name')); $name = trim(Request::input('name'));
// 项目 // 项目
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -506,12 +419,7 @@ class ProjectController extends AbstractController
*/ */
public function column__update() public function column__update()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$data = Request::all(); $data = Request::all();
$column_id = intval($data['column_id']); $column_id = intval($data['column_id']);
@ -543,12 +451,7 @@ class ProjectController extends AbstractController
*/ */
public function column__delete() public function column__delete()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$column_id = intval(Request::input('column_id')); $column_id = intval(Request::input('column_id'));
// 列表 // 列表
@ -579,25 +482,11 @@ class ProjectController extends AbstractController
*/ */
public function task__one() public function task__one()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// 任务 //
$task = ProjectTask::with(['taskUser', 'taskTag'])->whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id, ['taskUser', 'taskTag']);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -615,25 +504,11 @@ class ProjectController extends AbstractController
*/ */
public function task__sublist() public function task__sublist()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -649,25 +524,11 @@ class ProjectController extends AbstractController
*/ */
public function task__content() public function task__content()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -682,25 +543,11 @@ class ProjectController extends AbstractController
*/ */
public function task__files() public function task__files()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -722,21 +569,12 @@ class ProjectController extends AbstractController
*/ */
public function task__add() public function task__add()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
parse_str(Request::getContent(), $data); parse_str(Request::getContent(), $data);
$project_id = intval($data['project_id']); $project_id = intval($data['project_id']);
$column_id = $data['column_id']; $column_id = $data['column_id'];
// 项目 // 项目
$project = Project::select($this->projectSelect) $project = Project::userProject($project_id);
->join('project_users', 'projects.id', '=', 'project_users.project_id')
->where('projects.id', $project_id)
->where('project_users.userid', $user->userid)
->first();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -790,26 +628,12 @@ class ProjectController extends AbstractController
*/ */
public function task__addsub() public function task__addsub()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
$name = Request::input('name'); $name = Request::input('name');
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -849,26 +673,12 @@ class ProjectController extends AbstractController
*/ */
public function task__update() public function task__update()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
parse_str(Request::getContent(), $data); parse_str(Request::getContent(), $data);
$task_id = intval($data['task_id']); $task_id = intval($data['task_id']);
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -905,25 +715,11 @@ class ProjectController extends AbstractController
*/ */
public function task__upload() public function task__upload()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = Base::getPostInt('task_id'); $task_id = Base::getPostInt('task_id');
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -972,25 +768,11 @@ class ProjectController extends AbstractController
*/ */
public function task__dialog() public function task__dialog()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -1024,25 +806,11 @@ class ProjectController extends AbstractController
*/ */
public function task__archived() public function task__archived()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }
@ -1061,25 +829,11 @@ class ProjectController extends AbstractController
*/ */
public function task__delete() public function task__delete()
{ {
$user = User::authE(); user::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$task_id = intval(Request::input('task_id')); $task_id = intval(Request::input('task_id'));
// 任务 // 任务
$task = ProjectTask::whereId($task_id)->first(); list($task, $project) = ProjectTask::userTask($task_id);
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();
if (empty($project)) { if (empty($project)) {
return Base::retError('项目不存在或不在成员列表内'); return Base::retError('项目不存在或不在成员列表内');
} }

View File

@ -36,15 +36,8 @@ class SystemController extends AbstractController
if (env("SYSTEM_SETTING") == 'disabled') { if (env("SYSTEM_SETTING") == 'disabled') {
return Base::retError('当前环境禁止修改'); return Base::retError('当前环境禁止修改');
} }
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) { $user->isAdmin();
return $user;
} else {
$user = User::IDE($user['data']);
}
if (!$user->isAdmin()) {
return Base::retError('权限不足');
}
$all = Request::input(); $all = Request::input();
foreach ($all AS $key => $value) { foreach ($all AS $key => $value) {
if (!in_array($key, ['reg', 'login_code'])) { if (!in_array($key, ['reg', 'login_code'])) {
@ -79,15 +72,8 @@ class SystemController extends AbstractController
{ {
$type = trim(Request::input('type')); $type = trim(Request::input('type'));
if ($type == 'save') { if ($type == 'save') {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) { $user->isAdmin();
return $user;
} else {
$user = User::IDE($user['data']);
}
if (!$user->isAdmin()) {
return Base::retError('权限不足');
}
$list = Base::getPostValue('list'); $list = Base::getPostValue('list');
$array = []; $array = [];
if (empty($list) || !is_array($list)) { if (empty($list) || !is_array($list)) {

View File

@ -144,8 +144,6 @@ class UsersController extends AbstractController
* @apiGroup users * @apiGroup users
* @apiName info * @apiName info
* *
* @apiParam {String} [callback] jsonp返回字段
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误 * @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述) * @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据 * @apiSuccess {Object} data 返回数据
@ -168,23 +166,9 @@ class UsersController extends AbstractController
*/ */
public function info() public function info()
{ {
$callback = Request::input('callback'); $user = User::auth();
//
$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::token($user); User::token($user);
// //
if (strlen($callback) > 3) {
return $callback . '(' . json_encode(Base::retSuccess('success', $user)) . ')';
}
return Base::retSuccess('success', $user); return Base::retSuccess('success', $user);
} }
@ -206,13 +190,7 @@ class UsersController extends AbstractController
*/ */
public function editdata() public function editdata()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
//
//头像 //头像
$userimg = Request::input('userimg'); $userimg = Request::input('userimg');
if ($userimg) { if ($userimg) {
@ -265,12 +243,7 @@ class UsersController extends AbstractController
*/ */
public function editpass() public function editpass()
{ {
$user = User::authE(); $user = User::auth();
if (Base::isError($user)) {
return $user;
} else {
$user = User::IDE($user['data']);
}
// //
$oldpass = trim(Request::input('oldpass')); $oldpass = trim(Request::input('oldpass'));
$newpass = trim(Request::input('newpass')); $newpass = trim(Request::input('newpass'));

View File

@ -266,4 +266,22 @@ class Project extends AbstractModel
}); });
return Base::isSuccess($result); 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;
}
} }

View File

@ -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];
}
} }

View File

@ -3,6 +3,7 @@
namespace App\Models; namespace App\Models;
use App\Exceptions\ApiException;
use App\Module\Base; use App\Module\Base;
use Cache; use Cache;
use Carbon\Carbon; use Carbon\Carbon;
@ -108,7 +109,7 @@ class User extends AbstractModel
/** /**
* 是否在线 * 是否在线
* @return int * @return bool
*/ */
public function getOnlineStatus() public function getOnlineStatus()
{ {
@ -121,11 +122,21 @@ class User extends AbstractModel
/** /**
* 判断是否管理员 * 判断是否管理员
* @return bool
*/ */
public function isAdmin() 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() 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; global $_A;
if (isset($_A["__static_auth"])) { if (isset($_A["__static_auth"])) {
@ -277,24 +306,6 @@ class User extends AbstractModel
return $_A["__static_auth"] = false; 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 * 生成token
* @param self $userinfo * @param self $userinfo
@ -308,38 +319,6 @@ class User extends AbstractModel
return $userinfo->token; 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 * @param $identity