From bea1c3306f7412703252811e46bc07a266feef63 Mon Sep 17 00:00:00 2001 From: jingrow Date: Wed, 11 Mar 2026 17:21:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0get=5Fall=5Froles=E7=AD=89?= =?UTF-8?q?=E5=90=8E=E7=AB=AFapi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jingrow/core/pagetype/user/__init__.py | 1 + .../jingrow/core/pagetype/user/user.py | 31 +++++++++++++++++++ apps/jingrow/jingrow/desk/__init__.py | 1 + apps/jingrow/jingrow/desk/form/__init__.py | 1 + apps/jingrow/jingrow/desk/form/load.py | 31 +++++++++++++++++++ .../jingrow/jingrow/desk/pagetype/__init__.py | 1 + .../desk/pagetype/dashboard_chart/__init__.py | 1 + .../dashboard_chart/dashboard_chart.py | 31 +++++++++++++++++++ .../dashboard_chart_source/__init__.py | 1 + .../dashboard_chart_source.py | 31 +++++++++++++++++++ 10 files changed, 130 insertions(+) create mode 100644 apps/jingrow/jingrow/core/pagetype/user/__init__.py create mode 100644 apps/jingrow/jingrow/core/pagetype/user/user.py create mode 100644 apps/jingrow/jingrow/desk/__init__.py create mode 100644 apps/jingrow/jingrow/desk/form/__init__.py create mode 100644 apps/jingrow/jingrow/desk/form/load.py create mode 100644 apps/jingrow/jingrow/desk/pagetype/__init__.py create mode 100644 apps/jingrow/jingrow/desk/pagetype/dashboard_chart/__init__.py create mode 100644 apps/jingrow/jingrow/desk/pagetype/dashboard_chart/dashboard_chart.py create mode 100644 apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/__init__.py create mode 100644 apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/dashboard_chart_source.py diff --git a/apps/jingrow/jingrow/core/pagetype/user/__init__.py b/apps/jingrow/jingrow/core/pagetype/user/__init__.py new file mode 100644 index 0000000..8f76c59 --- /dev/null +++ b/apps/jingrow/jingrow/core/pagetype/user/__init__.py @@ -0,0 +1 @@ +# Core pagetype user package diff --git a/apps/jingrow/jingrow/core/pagetype/user/user.py b/apps/jingrow/jingrow/core/pagetype/user/user.py new file mode 100644 index 0000000..9a30c5f --- /dev/null +++ b/apps/jingrow/jingrow/core/pagetype/user/user.py @@ -0,0 +1,31 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +User 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def get_all_roles(**kwargs): + """获取所有角色 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.core.pagetype.user.user.get_all_roles" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", []) + logger.error(f"[user.get_all_roles] SaaS error: {resp.status_code}") + return [] diff --git a/apps/jingrow/jingrow/desk/__init__.py b/apps/jingrow/jingrow/desk/__init__.py new file mode 100644 index 0000000..883c749 --- /dev/null +++ b/apps/jingrow/jingrow/desk/__init__.py @@ -0,0 +1 @@ +# Desk package diff --git a/apps/jingrow/jingrow/desk/form/__init__.py b/apps/jingrow/jingrow/desk/form/__init__.py new file mode 100644 index 0000000..41ab610 --- /dev/null +++ b/apps/jingrow/jingrow/desk/form/__init__.py @@ -0,0 +1 @@ +# Desk form package diff --git a/apps/jingrow/jingrow/desk/form/load.py b/apps/jingrow/jingrow/desk/form/load.py new file mode 100644 index 0000000..2971f12 --- /dev/null +++ b/apps/jingrow/jingrow/desk/form/load.py @@ -0,0 +1,31 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Form load 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def getdoc(**kwargs): + """获取文档 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.form.load.getdoc" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[form.load.getdoc] SaaS error: {resp.status_code}") + return {} diff --git a/apps/jingrow/jingrow/desk/pagetype/__init__.py b/apps/jingrow/jingrow/desk/pagetype/__init__.py new file mode 100644 index 0000000..3dd8811 --- /dev/null +++ b/apps/jingrow/jingrow/desk/pagetype/__init__.py @@ -0,0 +1 @@ +# Desk pagetype package diff --git a/apps/jingrow/jingrow/desk/pagetype/dashboard_chart/__init__.py b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart/__init__.py new file mode 100644 index 0000000..79d7111 --- /dev/null +++ b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart/__init__.py @@ -0,0 +1 @@ +# Dashboard chart package diff --git a/apps/jingrow/jingrow/desk/pagetype/dashboard_chart/dashboard_chart.py b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart/dashboard_chart.py new file mode 100644 index 0000000..443294a --- /dev/null +++ b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart/dashboard_chart.py @@ -0,0 +1,31 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Dashboard Chart 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def get(**kwargs): + """获取 Dashboard Chart - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.pagetype.dashboard_chart.dashboard_chart.get" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[dashboard_chart.get] SaaS error: {resp.status_code}") + return {} diff --git a/apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/__init__.py b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/__init__.py new file mode 100644 index 0000000..48adaf3 --- /dev/null +++ b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/__init__.py @@ -0,0 +1 @@ +# Dashboard chart source package diff --git a/apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/dashboard_chart_source.py b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/dashboard_chart_source.py new file mode 100644 index 0000000..fd2b0a2 --- /dev/null +++ b/apps/jingrow/jingrow/desk/pagetype/dashboard_chart_source/dashboard_chart_source.py @@ -0,0 +1,31 @@ +# Copyright (c) 2025, JINGROW and contributors +# For license information, please see license.txt + +""" +Dashboard Chart Source 相关白名单函数 - 转发到 SaaS 端 +""" + +import jingrow +import requests +import logging +from jingrow.config import Config +from jingrow.utils.auth import get_request_session_cookie + +logger = logging.getLogger(__name__) + + +@jingrow.whitelist() +def get_config(**kwargs): + """获取 Chart Source 配置 - 转发到 SaaS 端""" + url = f"{Config.jingrow_server_url}/api/action/jingrow.desk.pagetype.dashboard_chart_source.dashboard_chart_source.get_config" + headers = {"Accept": "application/json", "Content-Type": "application/json"} + + session_cookie = get_request_session_cookie() + if session_cookie: + headers["Cookie"] = f"sid={session_cookie}" + + resp = requests.post(url, headers=headers, json=kwargs, timeout=30) + if resp.status_code == 200: + return resp.json().get("message", {}) + logger.error(f"[dashboard_chart_source.get_config] SaaS error: {resp.status_code}") + return {}