Flrande
2025-04-01 04:15:01 +00:00
parent 9f8cf4e2ca
commit b0b7534599
3 changed files with 62 additions and 1 deletions
@@ -1,6 +1,6 @@
import { notify } from '@affine/component';
import { UserFriendlyError } from '@affine/error';
import { type DocMode as GraphqlDocMode } from '@affine/graphql';
import { type DocMode as GraphqlDocMode, ErrorNames } from '@affine/graphql';
import { I18n, i18nTime } from '@affine/i18n';
import track from '@affine/track';
import {
@@ -432,6 +432,45 @@ export class AtMenuConfigService extends Service {
})
.catch(error => {
const err = UserFriendlyError.fromAny(error);
const canUserManage = this.guardService.can$(
'Workspace_Users_Manage'
).signal.value;
if (err.is(ErrorNames.MENTION_USER_DOC_ACCESS_DENIED)) {
if (canUserManage) {
const username = name ?? 'Unknown';
notify.error({
title: I18n.t('com.affine.editor.at-menu.access-needed'),
message: I18n[
'com.affine.editor.at-menu.access-needed-message'
]({
username,
}),
action: {
label: 'Invite',
onClick: () => {
this.dialogService.open('setting', {
activeTab: 'workspace:members',
});
},
},
});
} else {
notify.error({
title: I18n.t(
'com.affine.editor.at-menu.member-not-notified'
),
message:
I18n[
'com.affine.editor.at-menu.member-not-notified-message'
](),
});
}
return;
}
notify.error({
title: I18n[`error.${err.name}`](err.data),
});
+18
View File
@@ -7031,6 +7031,24 @@ export function useAFFiNEI18N(): {
* `Mention Members`
*/
["com.affine.editor.at-menu.mention-members"](): string;
/**
* `Member not notified`
*/
["com.affine.editor.at-menu.member-not-notified"](): string;
/**
* `This member does not have access to this doc, they are not notified.`
*/
["com.affine.editor.at-menu.member-not-notified-message"](): string;
/**
* `Access needed`
*/
["com.affine.editor.at-menu.access-needed"](): string;
/**
* `{{username}} does not have access to this doc, do you want to invite and notify them?`
*/
["com.affine.editor.at-menu.access-needed-message"](options: {
readonly username: string;
}): string;
/**
* `Show`
*/
@@ -1746,6 +1746,10 @@
"com.affine.editor.at-menu.journal": "Journal",
"com.affine.editor.at-menu.date-picker": "Select a specific date",
"com.affine.editor.at-menu.mention-members": "Mention Members",
"com.affine.editor.at-menu.member-not-notified": "Member not notified",
"com.affine.editor.at-menu.member-not-notified-message": "This member does not have access to this doc, they are not notified.",
"com.affine.editor.at-menu.access-needed": "Access needed",
"com.affine.editor.at-menu.access-needed-message": "{{username}} does not have access to this doc, do you want to invite and notify them?",
"com.affine.editor.bi-directional-link-panel.show": "Show",
"com.affine.editor.bi-directional-link-panel.hide": "Hide",
"com.affine.editor.edgeless-note-header.fold-page-block": "Fold page block",