You need to sign in or sign up before continuing.
Commit 7042fe41 authored by confusion's avatar confusion

添加翻译

parent 64aa840c
...@@ -3,7 +3,7 @@ from typing import List ...@@ -3,7 +3,7 @@ from typing import List
from motor.core import AgnosticCollection from motor.core import AgnosticCollection
from dependencies import get_current_user, get_permission_user_collect, get_permission_role_collect, \ from dependencies import get_current_user, get_permission_user_collect, get_permission_role_collect, \
get_all_permission_collect get_all_permission_collect, get_accept_language
from exception.token import FundPermissionError from exception.token import FundPermissionError
from model import BaseResponse, Response from model import BaseResponse, Response
from fastapi import APIRouter, Depends from fastapi import APIRouter, Depends
...@@ -16,6 +16,16 @@ from tools.jwt_tools import User ...@@ -16,6 +16,16 @@ from tools.jwt_tools import User
router = APIRouter() router = APIRouter()
def lang_to_label(lang):
if lang == 'en':
label = 'en_label'
elif lang == 'zh':
label = 'label'
else:
label = 'en_label'
return label
@router.post('/user/', @router.post('/user/',
response_model=BaseResponse, response_model=BaseResponse,
summary='给用户添加角色', summary='给用户添加角色',
...@@ -67,16 +77,19 @@ async def delete_permission( ...@@ -67,16 +77,19 @@ async def delete_permission(
async def query_account_permission( async def query_account_permission(
fund_id: str, fund_id: str,
user: User = Depends(get_current_user), user: User = Depends(get_current_user),
lang: str = Depends(get_accept_language),
permission_user_collect: AgnosticCollection = Depends(get_permission_user_collect), permission_user_collect: AgnosticCollection = Depends(get_permission_user_collect),
permission_role_collect: AgnosticCollection = Depends(get_permission_role_collect) permission_role_collect: AgnosticCollection = Depends(get_permission_role_collect)
): ):
label = lang_to_label(lang)
permissions, roles = await find_user_permission(fund_id=fund_id, permissions, roles = await find_user_permission(fund_id=fund_id,
email=user.email, email=user.email,
permission_user_collect=permission_user_collect, permission_user_collect=permission_user_collect,
permission_role_collect=permission_role_collect) permission_role_collect=permission_role_collect)
role_db_data = await permission_role_collect.find({'fund_id': fund_id, "name": {"$in": roles}}).to_list(length=None) role_db_data = await permission_role_collect.find({'fund_id': fund_id, "name": {"$in": roles}}).to_list(length=None)
result_role_data = [{"name": item["name"], "label": item["label"]} for item in role_db_data] result_role_data = [{"name": item["name"], "label": item[label]} for item in role_db_data]
permissions_tree = build_permission_tree(permissions) permissions_tree = build_permission_tree(permissions, label)
return Response(data={'permission': permissions_tree, "roles": result_role_data}) return Response(data={'permission': permissions_tree, "roles": result_role_data})
...@@ -88,6 +101,7 @@ async def query_account_permission( ...@@ -88,6 +101,7 @@ async def query_account_permission(
async def query_fund_id_permission( async def query_fund_id_permission(
fund_id: str, fund_id: str,
user: User = Depends(get_current_user), user: User = Depends(get_current_user),
lang: str = Depends(get_accept_language),
all_permission_collect: AgnosticCollection = Depends(get_all_permission_collect), all_permission_collect: AgnosticCollection = Depends(get_all_permission_collect),
permission_user_collect: AgnosticCollection = Depends(get_permission_user_collect), permission_user_collect: AgnosticCollection = Depends(get_permission_user_collect),
permission_role_collect: AgnosticCollection = Depends(get_permission_role_collect) permission_role_collect: AgnosticCollection = Depends(get_permission_role_collect)
...@@ -102,9 +116,11 @@ async def query_fund_id_permission( ...@@ -102,9 +116,11 @@ async def query_fund_id_permission(
roles_data = [item for item in roles_data if item["name"] != 'admin'] roles_data = [item for item in roles_data if item["name"] != 'admin']
permissions_tree = await find_all_sys_permission(fund_id=fund_id, all_permission_collect=all_permission_collect) permissions_tree = await find_all_sys_permission(fund_id=fund_id, all_permission_collect=all_permission_collect)
label = lang_to_label(lang)
return Response(data={'permission': permissions_tree['data'], return Response(data={'permission': permissions_tree['data'],
'roles': {item['name']: {"label": item["label"], "remark": item["remark"], 'roles': {item['name']: {"label": item[label], "remark": item["remark"],
"permissions": build_permission_tree(item["permissions"])} for item "permissions": build_permission_tree(item["permissions"], label)} for item
in roles_data}}) in roles_data}})
......
...@@ -27,6 +27,11 @@ def get_current_user(credentials: HTTPAuthorizationCredentials = Security(jwt_to ...@@ -27,6 +27,11 @@ def get_current_user(credentials: HTTPAuthorizationCredentials = Security(jwt_to
return jwt_tools.get_current_user(credentials) return jwt_tools.get_current_user(credentials)
def get_accept_language(request: Request) -> str:
lang = request.headers.get('Accept-Language', 'en')
return lang
def get_mongodb_manager(request: Request) -> AioMongodbManager: def get_mongodb_manager(request: Request) -> AioMongodbManager:
return request.app.state.mongodb_manager return request.app.state.mongodb_manager
......
...@@ -306,11 +306,11 @@ def make_all_permission_data(): ...@@ -306,11 +306,11 @@ def make_all_permission_data():
data = [] data = []
label_map = {} label_map = {}
for item, value in sys_default_permission.items(): for item, value in sys_default_permission.items():
label_map[item] = value['label'] label_map[item] = {'label': value['label'], 'en_label': value['en_label']}
for i, v in value['children'].items(): for i, v in value['children'].items():
label_map[i] = v['label'] label_map[i] = {'label': v['label'], 'en_label': v['en_label']}
for x, y in v['children'].items(): for x, y in v['children'].items():
label_map[x] = y['label'] label_map[x] = {'label': y['label'], 'en_label': y['en_label']}
data.append(x) data.append(x)
return data, label_map return data, label_map
...@@ -385,7 +385,7 @@ async def find_user_permission(fund_id, email, permission_user_collect, permissi ...@@ -385,7 +385,7 @@ async def find_user_permission(fund_id, email, permission_user_collect, permissi
return permission_list, this_fund_role['roles'] return permission_list, this_fund_role['roles']
def build_permission_tree(permission_list): def build_permission_tree(permission_list, label):
final = { final = {
"data_permission": {"label": "数据管理权限", "children": {}}, "data_permission": {"label": "数据管理权限", "children": {}},
"member_permission": {"label": "人员管理权限", "children": {}}, "member_permission": {"label": "人员管理权限", "children": {}},
...@@ -394,10 +394,10 @@ def build_permission_tree(permission_list): ...@@ -394,10 +394,10 @@ def build_permission_tree(permission_list):
for permission in permission_list: for permission in permission_list:
parts = permission.split('.') parts = permission.split('.')
final[parts[0]]['children'].setdefault(f'{parts[0]}.{parts[1]}', final[parts[0]]['children'].setdefault(f'{parts[0]}.{parts[1]}',
{'label': label_map[f'{parts[0]}.{parts[1]}'], {'label': label_map[f'{parts[0]}.{parts[1]}'][label],
'children': {}}) 'children': {}})
final[parts[0]]['children'][f'{parts[0]}.{parts[1]}']['children'][permission] = { final[parts[0]]['children'][f'{parts[0]}.{parts[1]}']['children'][permission] = {
'label': label_map[permission]} 'label': label_map[permission][label]}
return final return final
......
...@@ -20,170 +20,8 @@ def add_en_label(data): ...@@ -20,170 +20,8 @@ def add_en_label(data):
add_en_label(item['children']) add_en_label(item['children'])
data = { # # 添加 en_label 字段
"data_permission": { # add_en_label(data)
"label": "数据管理权限", #
"children": { # # 输出结果
"data_permission.fund": { # print(json.dumps(data, indent=4, ensure_ascii=False))
"label": "基金管理",
"children": {
"data_permission.fund.query_info": {
"label": "查询基金基础信息"
},
"data_permission.fund.update_info": {
"label": "更新基金基础信息"
},
"data_permission.fund.query_asset": {
"label": "查询资产"
}
}
},
"data_permission.node": {
"label": "质押节点",
"children": {
"data_permission.node.bind_node": {
"label": "绑定节点"
},
"data_permission.node.untie_node": {
"label": "解绑节点"
},
"data_permission.node.query_node": {
"label": "查询节点"
}
}
},
"data_permission.sub_redeem_bill": {
"label": "账目-申购/赎回",
"children": {
"data_permission.sub_redeem_bill.add": {
"label": "添加"
},
"data_permission.sub_redeem_bill.delete": {
"label": "删除"
},
"data_permission.sub_redeem_bill.edit": {
"label": "修改"
},
"data_permission.sub_redeem_bill.query": {
"label": "查询"
}
}
},
"data_permission.swap_bill": {
"label": "账目-换币",
"children": {
"data_permission.swap_bill.add": {
"label": "添加"
},
"data_permission.swap_bill.delete": {
"label": "删除"
},
"data_permission.swap_bill.edit": {
"label": "修改"
},
"data_permission.swap_bill.query": {
"label": "查询"
}
}
},
"data_permission.staking_bill": {
"label": "账目-质押",
"children": {
"data_permission.staking_bill.add": {
"label": "添加"
},
"data_permission.staking_bill.delete": {
"label": "删除"
},
"data_permission.staking_bill.edit": {
"label": "修改"
},
"data_permission.staking_bill.query": {
"label": "查询"
}
}
},
"data_permission.adjust_bill": {
"label": "账目-调整账户",
"children": {
"data_permission.adjust_bill.add": {
"label": "添加"
},
"data_permission.adjust_bill.delete": {
"label": "删除"
},
"data_permission.adjust_bill.edit": {
"label": "修改"
},
"data_permission.adjust_bill.query": {
"label": "查询"
}
}
},
"data_permission.nav": {
"label": "净值管理",
"children": {
"data_permission.nav.recalculate": {
"label": "基金重新计算净值"
},
"data_permission.nav.add": {
"label": "新增"
},
"data_permission.nav.delete": {
"label": "删除"
},
"data_permission.nav.edit": {
"label": "修改"
},
"data_permission.nav.query": {
"label": "查询"
}
}
}
}
},
"member_permission": {
"label": "人员管理权限",
"children": {
"member_permission.fund_manager": {
"label": "基金经理",
"children": {
"member_permission.fund_manager.add": {
"label": "添加"
},
"member_permission.fund_manager.delete": {
"label": "删除"
},
"member_permission.fund_manager.edit": {
"label": "修改"
},
"member_permission.fund_manager.query": {
"label": "查询"
}
}
},
"member_permission.fund_manager_assistant": {
"label": "基金经理助理",
"children": {
"member_permission.fund_manager_assistant.add": {
"label": "添加"
},
"member_permission.fund_manager_assistant.delete": {
"label": "删除"
},
"member_permission.fund_manager_assistant.edit": {
"label": "修改"
},
"member_permission.fund_manager_assistant.query": {
"label": "查询"
}
}
}
}
}
}
# 添加 en_label 字段
add_en_label(data)
# 输出结果
print(json.dumps(data, indent=4, ensure_ascii=False))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment