feat(activities): let creators lock edit and delete to themselves
Add editPolicy (default creator-only), enforce it in the API, surface clear permission messages, and drop the redundant edit menu now that detail is editable. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2124,6 +2124,14 @@ export interface ActivityImageDto {
|
||||
|
||||
export type ActivityCompletionMode = "any" | "all";
|
||||
|
||||
/** چه کسانی میتوانند فعالیت را ویرایش یا حذف کنند (علاوه بر owner/admin) */
|
||||
export type ActivityEditPolicy = "creator" | "assignees";
|
||||
|
||||
export const ACTIVITY_EDIT_POLICY_LABELS: Record<ActivityEditPolicy, string> = {
|
||||
creator: "فقط ایجادکننده",
|
||||
assignees: "همهٔ مسئولان",
|
||||
};
|
||||
|
||||
export interface ActivityDto {
|
||||
id: string;
|
||||
type: ActivityType;
|
||||
@@ -2145,6 +2153,8 @@ export interface ActivityDto {
|
||||
completionMode?: ActivityCompletionMode;
|
||||
/** شناسهٔ مسئولانی که سهم خود را در حالت all ثبت کردهاند */
|
||||
completedByIds?: string[];
|
||||
/** پیشفرض creator؛ assignees یعنی همهٔ مسئولان هم میتوانند ویرایش/حذف کنند */
|
||||
editPolicy?: ActivityEditPolicy;
|
||||
/** manual یا didar؛ برای جدا کردن سابقهٔ قبلی */
|
||||
importSource?: string;
|
||||
promotedFromPriorAt?: string | null;
|
||||
@@ -2204,6 +2214,8 @@ export interface CreateActivityRequest {
|
||||
assigneeIds?: string[];
|
||||
/** پیشفرض any. فقط وقتی چند مسئول دارد معنی دارد */
|
||||
completionMode?: ActivityCompletionMode;
|
||||
/** پیشفرض creator */
|
||||
editPolicy?: ActivityEditPolicy;
|
||||
}
|
||||
|
||||
export interface UpdateActivityRequest {
|
||||
@@ -2229,6 +2241,7 @@ export interface UpdateActivityRequest {
|
||||
assigneeId?: string | null;
|
||||
assigneeIds?: string[];
|
||||
completionMode?: ActivityCompletionMode;
|
||||
editPolicy?: ActivityEditPolicy;
|
||||
}
|
||||
|
||||
export interface ActivitySummaryDto {
|
||||
|
||||
Reference in New Issue
Block a user