Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
PyFund
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈涛
PyFund
Commits
7042fe41
You need to sign in or sign up before continuing.
Commit
7042fe41
authored
Jun 26, 2023
by
confusion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加翻译
parent
64aa840c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
178 deletions
+37
-178
permission.py
api/permission.py
+21
-5
dependencies.py
dependencies.py
+5
-0
permission.py
service/permission.py
+6
-6
trans.py
tools/trans.py
+5
-167
No files found.
api/permission.py
View file @
7042fe41
...
@@ -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
}})
...
...
dependencies.py
View file @
7042fe41
...
@@ -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
...
...
service/permission.py
View file @
7042fe41
...
@@ -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
...
...
tools/trans.py
View file @
7042fe41
...
@@ -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
))
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment