feat(roles): let each section decide who may assign work to others
Section access now only creates a record for yourself. Assigning it to a colleague requires a separate permission on that section. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,6 +4,7 @@ import { RouterLink, useRoute, useRouter } from 'vue-router';
|
||||
import axios from 'axios';
|
||||
import { api } from '@/lib/api';
|
||||
import { useAuthStore } from '@/stores/auth';
|
||||
import { canAssignToOthers } from '@/lib/assign-access';
|
||||
import {
|
||||
formatJalaliDayClock,
|
||||
formatJalaliNumeric,
|
||||
@@ -175,7 +176,10 @@ async function ensurePersonLoaded(pid: string) {
|
||||
}
|
||||
}
|
||||
|
||||
const canAssignOthers = computed(() => canAssignToOthers(auth.user, 'activities'));
|
||||
|
||||
function toggleAssigneeMenu() {
|
||||
if (!canAssignOthers.value) return;
|
||||
assigneeOpen.value = !assigneeOpen.value;
|
||||
if (assigneeOpen.value) {
|
||||
typeOpen.value = false;
|
||||
@@ -1263,9 +1267,11 @@ watch([id, isNew], () => void load(), { immediate: true });
|
||||
</div>
|
||||
<small class="hint">
|
||||
{{
|
||||
teamGroups.length
|
||||
? 'یک تیم یا نقش را انتخاب کنید تا همهٔ اعضایش مسئول شوند، یا چند نفر را جدا انتخاب کنید.'
|
||||
: 'یک نقش را انتخاب کنید تا همهٔ اعضای آن مسئول شوند، یا چند نفر را جدا انتخاب کنید.'
|
||||
canAssignOthers
|
||||
? teamGroups.length
|
||||
? 'یک تیم یا نقش را انتخاب کنید تا همهٔ اعضایش مسئول شوند، یا چند نفر را جدا انتخاب کنید.'
|
||||
: 'یک نقش را انتخاب کنید تا همهٔ اعضای آن مسئول شوند، یا چند نفر را جدا انتخاب کنید.'
|
||||
: 'بدون دسترسی «تخصیص فعالیت به دیگران» این فعالیت فقط برای خودتان ثبت میشود.'
|
||||
}}
|
||||
</small>
|
||||
<div v-if="selectedRoles.length || selectedTeams.length || extraAssignees.length" class="assignee-chips">
|
||||
|
||||
Reference in New Issue
Block a user