mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-19 04:10:26 -05:00
refac
This commit is contained in:
@@ -1287,6 +1287,17 @@ DEFAULT_GROUP_ID = PersistentConfig(
|
|||||||
os.environ.get("DEFAULT_GROUP_ID", ""),
|
os.environ.get("DEFAULT_GROUP_ID", ""),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Controls the default "Who can share to this group" setting for new groups.
|
||||||
|
# Env var values: "true" (anyone), "false" (no one), "members" (only group members).
|
||||||
|
_default_group_share = os.environ.get(
|
||||||
|
"DEFAULT_GROUP_SHARE_PERMISSION", "members"
|
||||||
|
).strip().lower()
|
||||||
|
DEFAULT_GROUP_SHARE_PERMISSION = (
|
||||||
|
"members"
|
||||||
|
if _default_group_share == "members"
|
||||||
|
else _default_group_share == "true"
|
||||||
|
)
|
||||||
|
|
||||||
PENDING_USER_OVERLAY_TITLE = PersistentConfig(
|
PENDING_USER_OVERLAY_TITLE = PersistentConfig(
|
||||||
"PENDING_USER_OVERLAY_TITLE",
|
"PENDING_USER_OVERLAY_TITLE",
|
||||||
"ui.pending_user_overlay_title",
|
"ui.pending_user_overlay_title",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import uuid
|
|||||||
|
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from open_webui.internal.db import Base, JSONField, get_db, get_db_context
|
from open_webui.internal.db import Base, JSONField, get_db, get_db_context
|
||||||
|
from open_webui.config import DEFAULT_GROUP_SHARE_PERMISSION
|
||||||
|
|
||||||
from open_webui.models.files import FileMetadataResponse
|
from open_webui.models.files import FileMetadataResponse
|
||||||
|
|
||||||
@@ -130,13 +131,26 @@ class GroupListResponse(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class GroupTable:
|
class GroupTable:
|
||||||
|
def _ensure_default_share_config(self, group_data: dict) -> dict:
|
||||||
|
"""Ensure the group data dict has a default share config if not already set."""
|
||||||
|
if "data" not in group_data or group_data["data"] is None:
|
||||||
|
group_data["data"] = {}
|
||||||
|
if "config" not in group_data["data"]:
|
||||||
|
group_data["data"]["config"] = {}
|
||||||
|
if "share" not in group_data["data"]["config"]:
|
||||||
|
group_data["data"]["config"]["share"] = DEFAULT_GROUP_SHARE_PERMISSION
|
||||||
|
return group_data
|
||||||
|
|
||||||
def insert_new_group(
|
def insert_new_group(
|
||||||
self, user_id: str, form_data: GroupForm, db: Optional[Session] = None
|
self, user_id: str, form_data: GroupForm, db: Optional[Session] = None
|
||||||
) -> Optional[GroupModel]:
|
) -> Optional[GroupModel]:
|
||||||
with get_db_context(db) as db:
|
with get_db_context(db) as db:
|
||||||
|
group_data = self._ensure_default_share_config(
|
||||||
|
form_data.model_dump(exclude_none=True)
|
||||||
|
)
|
||||||
group = GroupModel(
|
group = GroupModel(
|
||||||
**{
|
**{
|
||||||
**form_data.model_dump(exclude_none=True),
|
**group_data,
|
||||||
"id": str(uuid.uuid4()),
|
"id": str(uuid.uuid4()),
|
||||||
"user_id": user_id,
|
"user_id": user_id,
|
||||||
"created_at": int(time.time()),
|
"created_at": int(time.time()),
|
||||||
@@ -504,6 +518,11 @@ class GroupTable:
|
|||||||
user_id=user_id,
|
user_id=user_id,
|
||||||
name=group_name,
|
name=group_name,
|
||||||
description="",
|
description="",
|
||||||
|
data={
|
||||||
|
"config": {
|
||||||
|
"share": DEFAULT_GROUP_SHARE_PERMISSION,
|
||||||
|
}
|
||||||
|
},
|
||||||
created_at=int(time.time()),
|
created_at=int(time.time()),
|
||||||
updated_at=int(time.time()),
|
updated_at=int(time.time()),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
<div class="flex items-center gap-2 p-1">
|
<div class="flex items-center gap-2 p-1">
|
||||||
<select
|
<select
|
||||||
class="text-sm bg-transparent outline-hidden rounded-lg px-2"
|
class="text-sm bg-transparent outline-hidden rounded-lg px-2"
|
||||||
value={data?.config?.share ?? true}
|
value={data?.config?.share ?? 'members'}
|
||||||
on:change={(e) => {
|
on:change={(e) => {
|
||||||
const value = e.target.value;
|
const value = e.target.value;
|
||||||
let shareValue;
|
let shareValue;
|
||||||
|
|||||||
Reference in New Issue
Block a user