diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index e3a90dbcf5..d528f5ad39 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -2813,6 +2813,10 @@ USER_PERMISSIONS_FEATURES_AUTOMATIONS = os.getenv('USER_PERMISSIONS_FEATURES_AUT USER_PERMISSIONS_FEATURES_CALENDAR = os.getenv('USER_PERMISSIONS_FEATURES_CALENDAR', 'True').lower() == 'true' +USER_PERMISSIONS_FEATURES_USER_WEBHOOKS = ( + os.getenv('USER_PERMISSIONS_FEATURES_USER_WEBHOOKS', 'False').lower() == 'true' +) + USER_PERMISSIONS_SETTINGS_INTERFACE = os.getenv('USER_PERMISSIONS_SETTINGS_INTERFACE', 'True').lower() == 'true' @@ -2888,6 +2892,7 @@ DEFAULT_USER_PERMISSIONS = { 'memories': USER_PERMISSIONS_FEATURES_MEMORIES, 'automations': USER_PERMISSIONS_FEATURES_AUTOMATIONS, 'calendar': USER_PERMISSIONS_FEATURES_CALENDAR, + 'user_webhooks': USER_PERMISSIONS_FEATURES_USER_WEBHOOKS, }, 'settings': { 'interface': USER_PERMISSIONS_SETTINGS_INTERFACE, diff --git a/backend/open_webui/routers/users.py b/backend/open_webui/routers/users.py index ef1c989773..cb60e4cb33 100644 --- a/backend/open_webui/routers/users.py +++ b/backend/open_webui/routers/users.py @@ -239,6 +239,7 @@ class FeaturesPermissions(BaseModel): memories: bool = True automations: bool = False calendar: bool = True + user_webhooks: bool = False class SettingsPermissions(BaseModel): diff --git a/src/lib/components/admin/Users/Groups/Permissions.svelte b/src/lib/components/admin/Users/Groups/Permissions.svelte index bb07931efd..aef991cdfa 100644 --- a/src/lib/components/admin/Users/Groups/Permissions.svelte +++ b/src/lib/components/admin/Users/Groups/Permissions.svelte @@ -1001,6 +1001,22 @@ {/if} + +
+
+
+ {$i18n.t('User Webhooks')} +
+ +
+ {#if defaultPermissions?.features?.user_webhooks && !permissions.features.user_webhooks} +
+
+ {$i18n.t('This is a default user permission and will remain enabled.')} +
+
+ {/if} +

diff --git a/src/lib/components/chat/Settings/Account.svelte b/src/lib/components/chat/Settings/Account.svelte index 7f88f1dee7..fb826dbe39 100644 --- a/src/lib/components/chat/Settings/Account.svelte +++ b/src/lib/components/chat/Settings/Account.svelte @@ -227,7 +227,7 @@ - {#if $config?.features?.enable_user_webhooks} + {#if $config?.features?.enable_user_webhooks && ($user?.role === 'admin' || ($user?.permissions?.features?.user_webhooks ?? false))}
{$i18n.t('Notification Webhook')}
diff --git a/src/lib/constants/permissions.ts b/src/lib/constants/permissions.ts index af52a04bf0..8b9813bddc 100644 --- a/src/lib/constants/permissions.ts +++ b/src/lib/constants/permissions.ts @@ -66,7 +66,8 @@ export const DEFAULT_PERMISSIONS = { code_interpreter: true, memories: true, automations: false, - calendar: true + calendar: true, + user_webhooks: false }, settings: { interface: true