mirror of
https://github.com/open-webui/open-webui
synced 2025-06-26 18:26:48 +00:00
enh: user groups/permissions endpoint
This commit is contained in:
parent
c69d1c86fe
commit
70550e41fc
@ -2,6 +2,7 @@ import logging
|
|||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from open_webui.models.auths import Auths
|
from open_webui.models.auths import Auths
|
||||||
|
from open_webui.models.groups import Groups
|
||||||
from open_webui.models.chats import Chats
|
from open_webui.models.chats import Chats
|
||||||
from open_webui.models.users import (
|
from open_webui.models.users import (
|
||||||
UserModel,
|
UserModel,
|
||||||
@ -17,7 +18,10 @@ from open_webui.constants import ERROR_MESSAGES
|
|||||||
from open_webui.env import SRC_LOG_LEVELS
|
from open_webui.env import SRC_LOG_LEVELS
|
||||||
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
from fastapi import APIRouter, Depends, HTTPException, Request, status
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from open_webui.utils.auth import get_admin_user, get_password_hash, get_verified_user
|
from open_webui.utils.auth import get_admin_user, get_password_hash, get_verified_user
|
||||||
|
from open_webui.utils.access_control import get_permissions
|
||||||
|
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
log.setLevel(SRC_LOG_LEVELS["MODELS"])
|
log.setLevel(SRC_LOG_LEVELS["MODELS"])
|
||||||
@ -45,7 +49,7 @@ async def get_users(
|
|||||||
|
|
||||||
@router.get("/groups")
|
@router.get("/groups")
|
||||||
async def get_user_groups(user=Depends(get_verified_user)):
|
async def get_user_groups(user=Depends(get_verified_user)):
|
||||||
return Users.get_user_groups(user.id)
|
return Groups.get_groups_by_member_id(user.id)
|
||||||
|
|
||||||
|
|
||||||
############################
|
############################
|
||||||
@ -54,8 +58,12 @@ async def get_user_groups(user=Depends(get_verified_user)):
|
|||||||
|
|
||||||
|
|
||||||
@router.get("/permissions")
|
@router.get("/permissions")
|
||||||
async def get_user_permissisions(user=Depends(get_verified_user)):
|
async def get_user_permissisions(request: Request, user=Depends(get_verified_user)):
|
||||||
return Users.get_user_groups(user.id)
|
user_permissions = get_permissions(
|
||||||
|
user.id, request.app.state.config.USER_PERMISSIONS
|
||||||
|
)
|
||||||
|
|
||||||
|
return user_permissions
|
||||||
|
|
||||||
|
|
||||||
############################
|
############################
|
||||||
@ -89,7 +97,7 @@ class UserPermissions(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
@router.get("/default/permissions", response_model=UserPermissions)
|
@router.get("/default/permissions", response_model=UserPermissions)
|
||||||
async def get_user_permissions(request: Request, user=Depends(get_admin_user)):
|
async def get_default_user_permissions(request: Request, user=Depends(get_admin_user)):
|
||||||
return {
|
return {
|
||||||
"workspace": WorkspacePermissions(
|
"workspace": WorkspacePermissions(
|
||||||
**request.app.state.config.USER_PERMISSIONS.get("workspace", {})
|
**request.app.state.config.USER_PERMISSIONS.get("workspace", {})
|
||||||
@ -104,7 +112,7 @@ async def get_user_permissions(request: Request, user=Depends(get_admin_user)):
|
|||||||
|
|
||||||
|
|
||||||
@router.post("/default/permissions")
|
@router.post("/default/permissions")
|
||||||
async def update_user_permissions(
|
async def update_default_user_permissions(
|
||||||
request: Request, form_data: UserPermissions, user=Depends(get_admin_user)
|
request: Request, form_data: UserPermissions, user=Depends(get_admin_user)
|
||||||
):
|
):
|
||||||
request.app.state.config.USER_PERMISSIONS = form_data.model_dump()
|
request.app.state.config.USER_PERMISSIONS = form_data.model_dump()
|
||||||
|
Loading…
Reference in New Issue
Block a user