Skip to content

Commit 4f9285a

Browse files
committed
fix: generate API Key and Secret
1 parent a6464c5 commit 4f9285a

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

frontend/src/components/Settings/AdvancedSettings.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const showSecret = ref(false)
3232
const apiSecret = ref('')
3333
3434
const generateKeys = createResource({
35-
url: 'frappe.core.doctype.user.user.generate_keys',
35+
url: 'mail.utils.user.generate_user_keys',
3636
makeParams: () => ({ user: user.data?.name }),
3737
onSuccess: (data) => {
3838
if (!user.data?.api_key) user.reload()

mail/utils/user.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
from urllib.parse import urljoin
22

33
import frappe
4+
from frappe.core.doctype.user.user import generate_keys
45
from frappe.utils.caching import request_cache
56

7+
from mail.utils import user_context
68
from mail.utils.cache import get_account_for_user, get_aliases_for_user, get_tenant_for_user
79

810

@@ -95,6 +97,18 @@ def has_role(user: str, roles: str | list) -> bool:
9597
return False
9698

9799

100+
@frappe.whitelist(methods=["POST"])
101+
def generate_user_keys(user: str) -> dict:
102+
"""Generates API and Secret keys for the user."""
103+
104+
session_user = frappe.session.user
105+
if is_system_manager(session_user) or session_user == user:
106+
with user_context("Administrator"):
107+
return generate_keys(user)
108+
109+
frappe.throw("Not permitted", frappe.PermissionError)
110+
111+
98112
def get_caldav_settings(user: str) -> dict:
99113
"""Returns the CalDAV settings for the user."""
100114

0 commit comments

Comments
 (0)