From 0ec29357275550ee9976c86d6df694bad9941be4 Mon Sep 17 00:00:00 2001 From: AIRONAX Developer Date: Fri, 16 Oct 2026 04:07:01 +0530 Subject: [PATCH 1/2] Add API key TTL, profile management, and auth.login minting. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue login keys with audited bypass and 24h expiry; require 1–30 day duration for profile and admin create; grant users own-key ACL and record rule. --- .../base/data/core_user_apikey_rule_data.xml | 16 +++ addons/base/manifest.json | 1 + .../views/core_user_apikey_form_views.xml | 7 + .../views/core_user_apikey_list_views.xml | 2 + .../templates/pages/settings_account.html | 57 +++++++- core/orm/apikey.go | 43 +++++- core/orm/setup_seed.go | 26 ++-- core/orm/user_auth.go | 6 +- core/server/web/apikey_handlers.go | 32 ++++- core/server/web/query_flash.go | 12 +- core/server/web/settings_account.go | 23 +++- core/server/web/settings_account_apikey.go | 130 ++++++++++++++++++ core/server/web/testexports.go | 4 + test/core/orm/apikey_policy_test.go | 41 ++++++ test/core/server/web/apikey_duration_test.go | 41 ++++++ 15 files changed, 418 insertions(+), 23 deletions(-) create mode 100644 addons/base/data/core_user_apikey_rule_data.xml create mode 100644 core/server/web/settings_account_apikey.go create mode 100644 test/core/orm/apikey_policy_test.go create mode 100644 test/core/server/web/apikey_duration_test.go diff --git a/addons/base/data/core_user_apikey_rule_data.xml b/addons/base/data/core_user_apikey_rule_data.xml new file mode 100644 index 00000000..ecc176af --- /dev/null +++ b/addons/base/data/core_user_apikey_rule_data.xml @@ -0,0 +1,16 @@ + + + + + Users: own API keys + core.user.apikey + [["user_id", "=", "$uid"]] + True + True + True + True + False + [(4, ref('base.group_user'))] + + + diff --git a/addons/base/manifest.json b/addons/base/manifest.json index 14ed86f4..6630b355 100644 --- a/addons/base/manifest.json +++ b/addons/base/manifest.json @@ -7,6 +7,7 @@ "application": true, "data": [ "data/partner_property_definition_data.xml", + "data/core_user_apikey_rule_data.xml", "views/core_company_actions.xml", "views/core_users_actions.xml", "views/platform_actions.xml", diff --git a/addons/base/views/core_user_apikey_form_views.xml b/addons/base/views/core_user_apikey_form_views.xml index 91a269dd..8b40e57e 100644 --- a/addons/base/views/core_user_apikey_form_views.xml +++ b/addons/base/views/core_user_apikey_form_views.xml @@ -12,10 +12,17 @@ + + + + + + diff --git a/addons/base/views/core_user_apikey_list_views.xml b/addons/base/views/core_user_apikey_list_views.xml index a22d82d3..78a8a4fa 100644 --- a/addons/base/views/core_user_apikey_list_views.xml +++ b/addons/base/views/core_user_apikey_list_views.xml @@ -5,6 +5,8 @@ + + diff --git a/core/engine/templates/pages/settings_account.html b/core/engine/templates/pages/settings_account.html index f60a89c3..a58640242 100644 --- a/core/engine/templates/pages/settings_account.html +++ b/core/engine/templates/pages/settings_account.html @@ -2,7 +2,7 @@

Account security

-

Manage your password and two-factor authentication.

+

Manage your password, API keys, and two-factor authentication.

Back to Settings
@@ -24,6 +24,61 @@

Password

+ +