enh: file upload user permission

This commit is contained in:
Timothy Jaeryang Baek 2024-11-16 21:41:34 -08:00
parent cf2dcf1dc3
commit f5df0625e3
2 changed files with 6 additions and 3 deletions

View File

@ -1,10 +1,11 @@
from typing import Optional, Union, List, Dict, Any from typing import Optional, Union, List, Dict, Any
from open_webui.apps.webui.models.groups import Groups from open_webui.apps.webui.models.groups import Groups
import json
def get_permissions( def get_permissions(
user_id: str, user_id: str,
default_permissions: Dict[str, Any] = {}, default_permissions: Dict[str, Any],
) -> Dict[str, Any]: ) -> Dict[str, Any]:
""" """
Get all permissions for a user by combining the permissions of all groups the user is a member of. Get all permissions for a user by combining the permissions of all groups the user is a member of.
@ -29,7 +30,9 @@ def get_permissions(
return permissions return permissions
user_groups = Groups.get_groups_by_member_id(user_id) user_groups = Groups.get_groups_by_member_id(user_id)
permissions = default_permissions.copy()
# deep copy default permissions to avoid modifying the original dict
permissions = json.loads(json.dumps(default_permissions))
for group in user_groups: for group in user_groups:
group_permissions = group.permissions group_permissions = group.permissions

View File

@ -92,7 +92,7 @@
}; };
const uploadFileHandler = async (file) => { const uploadFileHandler = async (file) => {
if (!($user?.permissions?.chat?.file_upload ?? true)) { if ($user?.role !== 'admin' && !($_user?.permissions?.chat?.file_upload ?? true)) {
toast.error($i18n.t('You do not have permission to upload files.')); toast.error($i18n.t('You do not have permission to upload files.'));
return null; return null;
} }