Merge branch 'pro' into okr

# Conflicts:
#	app/Http/Controllers/Api/DialogController.php
#	app/Models/User.php
#	docker-compose.yml
#	docker/nginx/default.conf
#	language/original-web.txt
#	language/translate.json
#	public/docs/assets/main.bundle.js
#	public/docs/index.html
#	resources/assets/js/pages/manage.vue
#	resources/assets/js/pages/manage/components/ChatInput/index.vue
#	resources/assets/sass/pages/_.scss
This commit is contained in:
weifashi
2023-08-17 09:28:38 +08:00
929 changed files with 16122 additions and 8316 deletions
+66 -27
View File
@@ -759,8 +759,7 @@ class UsersController extends AbstractController
$builder->whereNull('disable_at');
$builder->where('bot', 0);
}
$builder = $keys['department'] == '0' ? $builder->orderByDesc('userid') : $builder;
$list = $builder->paginate(Base::getPaginate(50, 20));
$list = $builder->orderByDesc('userid')->paginate(Base::getPaginate(50, 20));
//
if ($getCheckinMac) {
$list->transform(function (User $user) use ($getCheckinMac) {
@@ -1733,21 +1732,36 @@ class UsersController extends AbstractController
}
$userBot = UserBot::whereBotId($botUser->userid)->whereUserid($user->userid)->first();
if (empty($userBot)) {
return Base::retError('不是你的机器人');
if (UserBot::systemBotName($botUser->email)) {
// 系统机器人(仅限管理员)
if (!$user->isAdmin()) {
return Base::retError('权限不足');
}
} else {
// 其他用户的机器人(仅限主人)
return Base::retError('不是你的机器人');
}
}
return Base::retSuccess('success', [
//
$data = [
'id' => $botUser->userid,
'name' => $botUser->nickname,
'avatar' => $botUser->userimg,
'clear_day' => $userBot->clear_day,
'webhook_url' => $userBot->webhook_url,
]);
'clear_day' => 0,
'webhook_url' => '',
'system_name' => UserBot::systemBotName($botUser->email),
];
if ($userBot) {
$data['clear_day'] = $userBot->clear_day;
$data['webhook_url'] = $userBot->webhook_url;
}
return Base::retSuccess('success', $data);
}
/**
* @api {post} api/users/bot/edit 30. 编辑机器人
*
* @apiDescription 需要token身份,编辑我的机器人信息
* @apiDescription 需要token身份,编辑 我的机器人 或 管理员修改系统机器人 信息
* @apiVersion 1.0.0
* @apiGroup users
* @apiName bot__edit
@@ -1755,8 +1769,8 @@ class UsersController extends AbstractController
* @apiParam {Number} id 机器人ID
* @apiParam {String} [name] 机器人名称
* @apiParam {String} [avatar] 机器人头像
* @apiParam {Number} [clear_day] 清理天数
* @apiParam {String} [webhook_url] Webhook地址
* @apiParam {Number} [clear_day] 清理天数(仅 我的机器人)
* @apiParam {String} [webhook_url] Webhook地址(仅 我的机器人)
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
@@ -1773,7 +1787,15 @@ class UsersController extends AbstractController
}
$userBot = UserBot::whereBotId($botUser->userid)->whereUserid($user->userid)->first();
if (empty($userBot)) {
return Base::retError('不是你的机器人');
if (UserBot::systemBotName($botUser->email)) {
// 系统机器人(仅限管理员)
if (!$user->isAdmin()) {
return Base::retError('权限不足');
}
} else {
// 其他用户的机器人(仅限主人)
return Base::retError('不是你的机器人');
}
}
//
$data = Request::input();
@@ -1802,18 +1824,24 @@ class UsersController extends AbstractController
$botUser->updateInstance($upUser);
$botUser->save();
}
if ($upBot) {
if ($upBot && $userBot) {
$userBot->updateInstance($upBot);
$userBot->save();
}
//
return Base::retSuccess('修改成功', [
$data = [
'id' => $botUser->userid,
'name' => $botUser->nickname,
'avatar' => $botUser->userimg,
'clear_day' => $userBot->clear_day,
'webhook_url' => $userBot->webhook_url,
]);
'clear_day' => 0,
'webhook_url' => '',
'system_name' => UserBot::systemBotName($botUser->email),
];
if ($userBot) {
$data['clear_day'] = $userBot->clear_day;
$data['webhook_url'] = $userBot->webhook_url;
}
return Base::retSuccess('修改成功', $data);
}
/**
@@ -1823,6 +1851,10 @@ class UsersController extends AbstractController
* @apiGroup users
* @apiName share__list
*
* @apiParam {String} [type] 分享类型:file-文件,text-列表 默认file
* @apiParam {Number} [pid] 父级文件id,用于获取子目录和上传到指定目录的id
* @apiParam {Number} [upload_file_id] 上传文件id
*
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
@@ -1830,6 +1862,7 @@ class UsersController extends AbstractController
public function share__list()
{
$user = User::auth();
$type = Request::input('type', 'file');
$pid = intval(Request::input('pid', -1));
$uploadFileId = intval(Request::input('upload_file_id', -1));
// 上传文件
@@ -1841,7 +1874,7 @@ class UsersController extends AbstractController
}
// 获取数据
$lists = [];
if ($pid !== -1) {
if ($type == 'file' && $pid !== -1) {
$fileList = (new File)->getFileList($user, $pid, 'dir', false);
foreach ($fileList as $file) {
if ($file['id'] != $pid) {
@@ -1854,15 +1887,16 @@ class UsersController extends AbstractController
];
}
}
} else {
$lists[] = [
'type' => 'children',
'url' => Base::fillUrl("api/users/share/list") . "?pid=0",
'icon' => url("images/file/light/folder.png"),
'extend' => ['upload_file_id' => 0],
'name' => Doo::translate('文件'),
];
if($type == 'file'){
$lists[] = [
'type' => 'children',
'url' => Base::fillUrl("api/users/share/list") . "?pid=0",
'icon' => url("images/file/light/folder.png"),
'extend' => ['upload_file_id' => 0],
'name' => Doo::translate('文件'),
];
}
$dialogList = (new WebSocketDialog)->getDialogList($user->userid);
foreach ($dialogList['data'] as $dialog) {
if ($dialog['avatar']) {
@@ -1881,8 +1915,13 @@ class UsersController extends AbstractController
'type' => 'item',
'name' => $dialog['name'],
'icon' => $avatar,
'url' => Base::fillUrl("api/dialog/msg/sendfiles"),
'extend' => ['dialog_ids' => $dialog['id']]
'url' => $type == "file" ? Base::fillUrl("api/dialog/msg/sendfiles") : Base::fillUrl("api/dialog/msg/sendtext"),
'extend' => [
'dialog_ids' => $dialog['id'],
'text_type' => 'text',
'reply_id' => 0,
'silence' => 'no'
]
];
}
}