mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-10 18:02:55 +00:00
perf: 新增修改任务时间权限
This commit is contained in:
parent
050c9702d8
commit
a967493d77
@ -1692,7 +1692,7 @@ class ProjectController extends AbstractController
|
||||
//
|
||||
$task = ProjectTask::userTask($file->task_id);
|
||||
//
|
||||
ProjectPermission::userTaskPermission(Project::userProject($task->project_id), ProjectPermission::TASK_UPDATE, $task);
|
||||
ProjectPermission::userTaskPermission(Project::userProject($task->project_id), ProjectPermission::TASK_REMOVE, $task);
|
||||
//
|
||||
$task->pushMsg('filedelete', $file);
|
||||
$file->delete();
|
||||
@ -1964,11 +1964,13 @@ class ProjectController extends AbstractController
|
||||
$task = ProjectTask::userTask($task_id);
|
||||
//
|
||||
$project = Project::userProject($task->project_id);
|
||||
if (Arr::exists($param, 'flow_item_id')) {
|
||||
ProjectPermission::userTaskPermission($project, ProjectPermission::TASK_STATUS, $task);
|
||||
}else{
|
||||
ProjectPermission::userTaskPermission($project, ProjectPermission::TASK_UPDATE, $task);
|
||||
$permissionKey = ProjectPermission::TASK_UPDATE;
|
||||
if (Arr::exists($param, 'times')) {
|
||||
$permissionKey = ProjectPermission::TASK_TIME;
|
||||
} else if (Arr::exists($param, 'flow_item_id')) {
|
||||
$permissionKey = ProjectPermission::TASK_STATUS;
|
||||
}
|
||||
ProjectPermission::userTaskPermission($project, $permissionKey, $task);
|
||||
//
|
||||
$taskUser = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($task_id)->get();
|
||||
$owners = $taskUser->where('owner', 1)->pluck('userid')->toArray();
|
||||
@ -2625,8 +2627,9 @@ class ProjectController extends AbstractController
|
||||
ProjectPermission::TASK_LIST_SORT,
|
||||
ProjectPermission::TASK_ADD,
|
||||
ProjectPermission::TASK_UPDATE,
|
||||
ProjectPermission::TASK_REMOVE,
|
||||
ProjectPermission::TASK_TIME,
|
||||
ProjectPermission::TASK_STATUS,
|
||||
ProjectPermission::TASK_REMOVE,
|
||||
ProjectPermission::TASK_ARCHIVED,
|
||||
ProjectPermission::TASK_MOVE,
|
||||
]);
|
||||
|
||||
@ -10,7 +10,7 @@ use App\Module\Base;
|
||||
*
|
||||
* @property int $id
|
||||
* @property int|null $project_id 项目ID
|
||||
* @property string $permissions 权限
|
||||
* @property array|string $permissions 权限
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|AbstractModel cancelAppend()
|
||||
@ -38,6 +38,7 @@ class ProjectPermission extends AbstractModel
|
||||
const TASK_LIST_SORT = 'task_list_sort'; // 列表排序
|
||||
const TASK_ADD = 'task_add'; // 任务添加
|
||||
const TASK_UPDATE = 'task_update'; // 任务更新
|
||||
const TASK_TIME = 'task_time'; // 任务时间
|
||||
const TASK_STATUS = 'task_status'; // 任务状态
|
||||
const TASK_REMOVE = 'task_remove'; // 任务删除
|
||||
const TASK_ARCHIVED = 'task_archived'; // 任务归档
|
||||
@ -69,7 +70,7 @@ class ProjectPermission extends AbstractModel
|
||||
/**
|
||||
* 权限
|
||||
* @param $value
|
||||
* @return string
|
||||
* @return array
|
||||
*/
|
||||
public function getPermissionsAttribute($value)
|
||||
{
|
||||
@ -110,7 +111,8 @@ class ProjectPermission extends AbstractModel
|
||||
self::TASK_LIST_REMOVE => [self::PERMISSIONS['project_leader']],
|
||||
self::TASK_LIST_SORT => $projectTaskList,
|
||||
self::TASK_ADD => $projectTaskList,
|
||||
self::TASK_UPDATE => [self::PERMISSIONS['project_leader'], self::PERMISSIONS['task_leader'], self::PERMISSIONS['task_assist']],
|
||||
self::TASK_UPDATE => $taskUpdate = [self::PERMISSIONS['project_leader'], self::PERMISSIONS['task_leader'], self::PERMISSIONS['task_assist']],
|
||||
self::TASK_TIME => $taskUpdate,
|
||||
self::TASK_STATUS => $taskStatus = [self::PERMISSIONS['project_leader'], self::PERMISSIONS['task_leader']],
|
||||
self::TASK_REMOVE => $taskStatus,
|
||||
self::TASK_ARCHIVED => $taskStatus,
|
||||
@ -153,13 +155,14 @@ class ProjectPermission extends AbstractModel
|
||||
$userid = User::userid();
|
||||
$permissions = self::getPermission($project->id, $action);
|
||||
switch ($action) {
|
||||
// 任务添加,任务更新, 任务状态, 任务删除, 任务完成, 任务归档, 任务移动
|
||||
// 任务添加,任务更新, 任务状态, 任务删除, 任务完成, 任务归档, 任务移动
|
||||
case self::TASK_LIST_ADD:
|
||||
case self::TASK_LIST_UPDATE:
|
||||
case self::TASK_LIST_REMOVE:
|
||||
case self::TASK_LIST_SORT:
|
||||
case self::TASK_ADD:
|
||||
case self::TASK_UPDATE:
|
||||
case self::TASK_TIME:
|
||||
case self::TASK_STATUS:
|
||||
case self::TASK_REMOVE:
|
||||
case self::TASK_ARCHIVED:
|
||||
|
||||
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
use App\Models\ProjectPermission;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class UpdateProjectPermissions extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
ProjectPermission::orderBy('id')->chunk(100, function ($rows) {
|
||||
/** @var ProjectPermission $row */
|
||||
foreach ($rows as $row) {
|
||||
$permissions = $row->permissions;
|
||||
if (!isset($permissions[ProjectPermission::TASK_TIME])) {
|
||||
$permissions[ProjectPermission::TASK_TIME] = $permissions[ProjectPermission::TASK_UPDATE];
|
||||
$row->permissions = \App\Module\Base::array2json($permissions);
|
||||
$row->save();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
@ -51,6 +51,14 @@
|
||||
<Checkbox :label="2">{{ $L('项目成员') }}</Checkbox>
|
||||
</CheckboxGroup>
|
||||
</FormItem>
|
||||
<FormItem :label="$L('修改时间')">
|
||||
<CheckboxGroup v-model="formData.task_time">
|
||||
<Checkbox :label="1" disabled>{{ $L('项目负责人') }}</Checkbox>
|
||||
<Checkbox :label="3">{{ $L('任务负责人') }}</Checkbox>
|
||||
<Checkbox :label="4">{{ $L('任务协助人') }}</Checkbox>
|
||||
<Checkbox :label="2">{{ $L('项目成员') }}</Checkbox>
|
||||
</CheckboxGroup>
|
||||
</FormItem>
|
||||
<FormItem :label="$L('修改状态')">
|
||||
<CheckboxGroup v-model="formData.task_status">
|
||||
<Checkbox :label="1" disabled>{{ $L('项目负责人') }}</Checkbox>
|
||||
@ -109,6 +117,7 @@ export default {
|
||||
project_task_list: [],
|
||||
task_add: [],
|
||||
task_update: [],
|
||||
task_time: [],
|
||||
task_status: [],
|
||||
task_archived: [],
|
||||
task_remove: [],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user