Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
db_gpt
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
linyangyang
db_gpt
Commits
a4792627
Commit
a4792627
authored
Aug 14, 2024
by
林洋洋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
角色授权知识库
parent
4a7eb1f7
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
39 additions
and
9 deletions
+39
-9
crud.py
dbgpt/app/apps/vadmin/auth/crud.py
+16
-0
role.py
dbgpt/app/apps/vadmin/auth/models/role.py
+4
-1
__init__.py
dbgpt/app/apps/vadmin/auth/schemas/__init__.py
+1
-1
role.py
dbgpt/app/apps/vadmin/auth/schemas/role.py
+8
-1
views.py
dbgpt/app/apps/vadmin/auth/views.py
+10
-6
No files found.
dbgpt/app/apps/vadmin/auth/crud.py
View file @
a4792627
...
@@ -484,6 +484,10 @@ class RoleDal(DalBase):
...
@@ -484,6 +484,10 @@ class RoleDal(DalBase):
depts
=
await
DeptDal
(
db
=
self
.
db
)
.
get_datas
(
limit
=
0
,
id
=
(
"in"
,
data
.
dept_ids
),
v_return_objs
=
True
)
depts
=
await
DeptDal
(
db
=
self
.
db
)
.
get_datas
(
limit
=
0
,
id
=
(
"in"
,
data
.
dept_ids
),
v_return_objs
=
True
)
for
dept
in
depts
:
for
dept
in
depts
:
obj
.
depts
.
add
(
dept
)
obj
.
depts
.
add
(
dept
)
if
data
.
knowledges
:
depts
=
await
DeptDal
(
db
=
self
.
db
)
.
get_datas
(
limit
=
0
,
id
=
(
"in"
,
data
.
dept_ids
),
v_return_objs
=
True
)
for
dept
in
depts
:
obj
.
depts
.
add
(
dept
)
await
self
.
flush
(
obj
)
await
self
.
flush
(
obj
)
return
await
self
.
out_dict
(
obj
,
v_options
,
v_return_obj
,
v_schema
)
return
await
self
.
out_dict
(
obj
,
v_options
,
v_return_obj
,
v_schema
)
...
@@ -523,6 +527,14 @@ class RoleDal(DalBase):
...
@@ -523,6 +527,14 @@ class RoleDal(DalBase):
for
dept
in
depts
:
for
dept
in
depts
:
obj
.
depts
.
add
(
dept
)
obj
.
depts
.
add
(
dept
)
continue
continue
elif
key
==
"knowledge_ids"
:
if
value
:
knowledges
=
await
KnowledgeDal
(
db
=
self
.
db
)
.
get_datas
(
limit
=
0
,
id
=
(
"in"
,
value
),
v_return_objs
=
True
)
if
obj
.
knowledges
:
obj
.
knowledges
.
clear
()
for
knowledge
in
knowledges
:
obj
.
knowledges
.
add
(
knowledge
)
continue
setattr
(
obj
,
key
,
value
)
setattr
(
obj
,
key
,
value
)
await
self
.
flush
(
obj
)
await
self
.
flush
(
obj
)
return
await
self
.
out_dict
(
obj
,
None
,
v_return_obj
,
v_schema
)
return
await
self
.
out_dict
(
obj
,
None
,
v_return_obj
,
v_schema
)
...
@@ -531,6 +543,10 @@ class RoleDal(DalBase):
...
@@ -531,6 +543,10 @@ class RoleDal(DalBase):
role
=
await
self
.
get_data
(
role_id
,
v_options
=
[
joinedload
(
self
.
model
.
menus
)])
role
=
await
self
.
get_data
(
role_id
,
v_options
=
[
joinedload
(
self
.
model
.
menus
)])
return
[
i
.
id
for
i
in
role
.
menus
]
return
[
i
.
id
for
i
in
role
.
menus
]
async
def
get_role_knowledge_list
(
self
,
role_id
:
int
)
->
list
:
role
=
await
self
.
get_data
(
role_id
,
v_options
=
[
joinedload
(
self
.
model
.
knowledges
)])
return
[
i
.
id
for
i
in
role
.
knowledges
]
async
def
get_select_datas
(
self
)
->
list
:
async
def
get_select_datas
(
self
)
->
list
:
"""
"""
获取选择数据,全部数据
获取选择数据,全部数据
...
...
dbgpt/app/apps/vadmin/auth/models/role.py
View file @
a4792627
...
@@ -11,7 +11,8 @@ from dbgpt.app.apps.db.db_base import BaseModel
...
@@ -11,7 +11,8 @@ from dbgpt.app.apps.db.db_base import BaseModel
from
sqlalchemy
import
String
,
Boolean
,
Integer
from
sqlalchemy
import
String
,
Boolean
,
Integer
from
.menu
import
VadminMenu
from
.menu
import
VadminMenu
from
.dept
import
VadminDept
from
.dept
import
VadminDept
from
.m2m
import
vadmin_auth_role_menus
,
vadmin_auth_role_depts
from
.m2m
import
vadmin_auth_role_menus
,
vadmin_auth_role_depts
,
vadmin_auth_role_knowledge
from
...media.models
import
VadminCorrelation
class
VadminRole
(
BaseModel
):
class
VadminRole
(
BaseModel
):
...
@@ -28,3 +29,5 @@ class VadminRole(BaseModel):
...
@@ -28,3 +29,5 @@ class VadminRole(BaseModel):
menus
:
Mapped
[
set
[
VadminMenu
]]
=
relationship
(
secondary
=
vadmin_auth_role_menus
)
menus
:
Mapped
[
set
[
VadminMenu
]]
=
relationship
(
secondary
=
vadmin_auth_role_menus
)
depts
:
Mapped
[
set
[
VadminDept
]]
=
relationship
(
secondary
=
vadmin_auth_role_depts
)
depts
:
Mapped
[
set
[
VadminDept
]]
=
relationship
(
secondary
=
vadmin_auth_role_depts
)
knowledges
:
Mapped
[
set
[
VadminCorrelation
]]
=
relationship
(
secondary
=
vadmin_auth_role_knowledge
)
dbgpt/app/apps/vadmin/auth/schemas/__init__.py
View file @
a4792627
from
.user
import
UserOut
,
UserUpdate
,
User
,
UserIn
,
UserSimpleOut
,
ResetPwd
,
UserUpdateBaseInfo
,
UserPasswordOut
,
UpdatePwd
from
.user
import
UserOut
,
UserUpdate
,
User
,
UserIn
,
UserSimpleOut
,
ResetPwd
,
UserUpdateBaseInfo
,
UserPasswordOut
,
UpdatePwd
from
.role
import
Role
,
RoleOut
,
RoleIn
,
RoleOptionsOut
,
RoleSimpleOut
from
.role
import
Role
,
RoleOut
,
RoleIn
,
RoleOptionsOut
,
RoleSimpleOut
,
RoleKnowledgeOut
from
.menu
import
Menu
,
MenuSimpleOut
,
RouterOut
,
Meta
,
MenuTreeListOut
from
.menu
import
Menu
,
MenuSimpleOut
,
RouterOut
,
Meta
,
MenuTreeListOut
from
.dept
import
Dept
,
DeptSimpleOut
,
DeptTreeListOut
from
.dept
import
Dept
,
DeptSimpleOut
,
DeptTreeListOut
from
.knowledge
import
Knowledge
,
KnowledgeOut
from
.knowledge
import
Knowledge
,
KnowledgeOut
\ No newline at end of file
dbgpt/app/apps/vadmin/auth/schemas/role.py
View file @
a4792627
...
@@ -11,6 +11,7 @@ from pydantic import BaseModel, ConfigDict, Field
...
@@ -11,6 +11,7 @@ from pydantic import BaseModel, ConfigDict, Field
from
dbgpt.app.apps.core.data_types
import
DatetimeStr
from
dbgpt.app.apps.core.data_types
import
DatetimeStr
from
.menu
import
MenuSimpleOut
from
.menu
import
MenuSimpleOut
from
.dept
import
DeptSimpleOut
from
.dept
import
DeptSimpleOut
from
.knowledge
import
KnowledgeOut
class
Role
(
BaseModel
):
class
Role
(
BaseModel
):
...
@@ -36,11 +37,18 @@ class RoleOut(RoleSimpleOut):
...
@@ -36,11 +37,18 @@ class RoleOut(RoleSimpleOut):
menus
:
list
[
MenuSimpleOut
]
=
[]
menus
:
list
[
MenuSimpleOut
]
=
[]
depts
:
list
[
DeptSimpleOut
]
=
[]
depts
:
list
[
DeptSimpleOut
]
=
[]
knowledges
:
list
[
KnowledgeOut
]
=
[]
class
RoleKnowledgeOut
(
RoleSimpleOut
):
model_config
=
ConfigDict
(
from_attributes
=
True
)
knowledges
:
list
[
KnowledgeOut
]
=
[]
class
RoleIn
(
Role
):
class
RoleIn
(
Role
):
menu_ids
:
list
[
int
]
=
[]
menu_ids
:
list
[
int
]
=
[]
dept_ids
:
list
[
int
]
=
[]
dept_ids
:
list
[
int
]
=
[]
knowledge_ids
:
list
[
int
]
=
[]
class
RoleOptionsOut
(
BaseModel
):
class
RoleOptionsOut
(
BaseModel
):
...
@@ -49,4 +57,3 @@ class RoleOptionsOut(BaseModel):
...
@@ -49,4 +57,3 @@ class RoleOptionsOut(BaseModel):
label
:
str
=
Field
(
alias
=
'name'
)
label
:
str
=
Field
(
alias
=
'name'
)
value
:
int
=
Field
(
alias
=
'id'
)
value
:
int
=
Field
(
alias
=
'id'
)
disabled
:
bool
disabled
:
bool
dbgpt/app/apps/vadmin/auth/views.py
View file @
a4792627
...
@@ -179,10 +179,14 @@ async def get_roles(
...
@@ -179,10 +179,14 @@ async def get_roles(
params
:
RoleParams
=
Depends
(),
params
:
RoleParams
=
Depends
(),
auth
:
Auth
=
Depends
(
FullAdminAuth
(
permissions
=
[
"auth.role.list"
]))
auth
:
Auth
=
Depends
(
FullAdminAuth
(
permissions
=
[
"auth.role.list"
]))
):
):
datas
,
count
=
await
crud
.
RoleDal
(
auth
.
db
)
.
get_datas
(
**
params
.
dict
(),
v_return_count
=
True
)
model
=
models
.
VadminRole
return
SuccessResponse
(
datas
,
count
=
count
)
options
=
[
joinedload
(
model
.
knowledges
)]
schema
=
schemas
.
RoleKnowledgeOut
datas
,
count
=
await
crud
.
RoleDal
(
auth
.
db
)
.
get_datas
(
**
params
.
dict
(),
v_schema
=
schema
,
v_return_count
=
True
,
v_options
=
options
)
return
SuccessResponse
(
datas
,
count
=
count
)
# FullAdminAuth(permissions=["auth.role.list"])
@
router
.
post
(
"/roles"
,
summary
=
"创建角色信息"
)
@
router
.
post
(
"/roles"
,
summary
=
"创建角色信息"
)
async
def
create_role
(
role
:
schemas
.
RoleIn
,
auth
:
Auth
=
Depends
(
FullAdminAuth
(
permissions
=
[
"auth.role.create"
]))):
async
def
create_role
(
role
:
schemas
.
RoleIn
,
auth
:
Auth
=
Depends
(
FullAdminAuth
(
permissions
=
[
"auth.role.create"
]))):
return
SuccessResponse
(
await
crud
.
RoleDal
(
auth
.
db
)
.
create_data
(
data
=
role
))
return
SuccessResponse
(
await
crud
.
RoleDal
(
auth
.
db
)
.
create_data
(
data
=
role
))
...
@@ -218,7 +222,7 @@ async def get_role(
...
@@ -218,7 +222,7 @@ async def get_role(
auth
:
Auth
=
Depends
(
FullAdminAuth
(
permissions
=
[
"auth.role.view"
,
"auth.role.update"
]))
auth
:
Auth
=
Depends
(
FullAdminAuth
(
permissions
=
[
"auth.role.view"
,
"auth.role.update"
]))
):
):
model
=
models
.
VadminRole
model
=
models
.
VadminRole
options
=
[
joinedload
(
model
.
menus
),
joinedload
(
model
.
depts
)]
options
=
[
joinedload
(
model
.
menus
),
joinedload
(
model
.
depts
)
,
joinedload
(
model
.
knowledges
)
]
schema
=
schemas
.
RoleOut
schema
=
schemas
.
RoleOut
return
SuccessResponse
(
await
crud
.
RoleDal
(
auth
.
db
)
.
get_data
(
data_id
,
v_options
=
options
,
v_schema
=
schema
))
return
SuccessResponse
(
await
crud
.
RoleDal
(
auth
.
db
)
.
get_data
(
data_id
,
v_options
=
options
,
v_schema
=
schema
))
...
@@ -328,10 +332,10 @@ async def put_dept(
...
@@ -328,10 +332,10 @@ async def put_dept(
return
SuccessResponse
(
await
crud
.
DeptDal
(
auth
.
db
)
.
put_data
(
data_id
,
data
))
return
SuccessResponse
(
await
crud
.
DeptDal
(
auth
.
db
)
.
put_data
(
data_id
,
data
))
@
router
.
get
(
"/knowledges"
,
summary
=
"获取
全部知识库
"
)
@
router
.
get
(
"/knowledges"
,
summary
=
"获取
角色知识库权限
"
)
async
def
get_knowledges
(
auth
:
Auth
=
Depends
(
Ope
nAuth
())):
async
def
get_knowledges
(
role_id
:
int
,
auth
:
Auth
=
Depends
(
FullAdmi
nAuth
())):
schema
=
schemas
.
KnowledgeOut
schema
=
schemas
.
KnowledgeOut
knowledge_list
=
await
crud
.
KnowledgeDal
(
auth
.
db
)
.
get_datas
(
v_schema
=
schema
)
knowledge_list
=
await
crud
.
KnowledgeDal
(
auth
.
db
)
.
get_datas
(
v_schema
=
schema
)
role_knowledge_list
=
await
crud
.
KnowledgeDal
(
auth
.
db
)
.
get_datas
(
v_schema
=
schema
)
role_knowledge_list
=
await
crud
.
RoleDal
(
auth
.
db
)
.
get_role_knowledge_list
(
role_id
)
return
SuccessResponse
({
"role_knowledge_list"
:
role_knowledge_list
,
"knowledge_list"
:
knowledge_list
})
return
SuccessResponse
({
"role_knowledge_list"
:
role_knowledge_list
,
"knowledge_list"
:
knowledge_list
})
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