mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: re-eng roles
This commit is contained in:
parent
4e5f6cf966
commit
a134316f7a
4 changed files with 16 additions and 5 deletions
|
|
@ -9,6 +9,7 @@ from src.security.security import security_hash_password
|
|||
from src.services.courses.chapters import CourseChapter, create_coursechapter
|
||||
from src.services.courses.activities.activities import Activity, create_activity
|
||||
from src.services.courses.thumbnails import upload_thumbnail
|
||||
from src.services.users.schemas.users import UserRolesInOrganization
|
||||
from src.services.users.users import PublicUser, User, UserInDB, UserWithPassword
|
||||
|
||||
from src.services.orgs import OrganizationInDB, Organization, create_org
|
||||
|
|
@ -36,7 +37,7 @@ async def create_initial_data(request: Request):
|
|||
user_id="user_admin",
|
||||
creation_date=str(datetime.now()),
|
||||
update_date=str(datetime.now()),
|
||||
roles=["role_admin"],
|
||||
roles= [],
|
||||
orgs=[],
|
||||
username=f"admin",
|
||||
email=f"admin@admin.admin",
|
||||
|
|
|
|||
|
|
@ -88,6 +88,10 @@ async def create_org(request: Request, org_object: Organization, current_user: P
|
|||
await user.update_one({"user_id": current_user.user_id}, {
|
||||
"$addToSet": {"orgs": user_organization.dict()}})
|
||||
|
||||
# add role admin to org
|
||||
await user.update_one({"user_id": current_user.user_id}, {
|
||||
"$addToSet": {"roles": {"org_id": org_id, "role_id": "role_admin"}}})
|
||||
|
||||
if not org_in_db:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_503_SERVICE_UNAVAILABLE, detail="Unavailable database")
|
||||
|
|
|
|||
|
|
@ -9,6 +9,12 @@ class UserOrganization(BaseModel):
|
|||
def __getitem__(self, item):
|
||||
return getattr(self, item)
|
||||
|
||||
class UserRolesInOrganization(BaseModel):
|
||||
org_id: str
|
||||
role_id: str
|
||||
|
||||
def __getitem__(self, item):
|
||||
return getattr(self, item)
|
||||
|
||||
|
||||
|
||||
|
|
@ -31,7 +37,7 @@ class UserInDB(User):
|
|||
verified: bool | None = False
|
||||
disabled: bool | None = False
|
||||
orgs: list[UserOrganization] = []
|
||||
roles: list[str] = []
|
||||
roles: list[UserRolesInOrganization] = []
|
||||
creation_date: str
|
||||
update_date: str
|
||||
|
||||
|
|
@ -41,7 +47,7 @@ class UserInDB(User):
|
|||
class PublicUser(User):
|
||||
user_id: str
|
||||
orgs: list[UserOrganization] = []
|
||||
roles: list[str] = []
|
||||
roles: list[UserRolesInOrganization] = []
|
||||
creation_date: str
|
||||
update_date: str
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from uuid import uuid4
|
|||
from fastapi import HTTPException, Request, status
|
||||
from src.services.roles.schemas.roles import Role
|
||||
from src.security.security import security_hash_password, security_verify_password
|
||||
from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserOrganization, UserWithPassword, UserInDB
|
||||
from src.services.users.schemas.users import PasswordChangeForm, PublicUser, User, UserOrganization, UserRolesInOrganization, UserWithPassword, UserInDB
|
||||
|
||||
|
||||
async def create_user(request: Request, current_user: PublicUser | None, user_object: UserWithPassword, org_slug: str):
|
||||
|
|
@ -52,7 +52,7 @@ async def create_user(request: Request, current_user: PublicUser | None, user_o
|
|||
orgs = [UserOrganization(org_id=org_id, org_role="member")]
|
||||
|
||||
# Give role
|
||||
roles = ["role_member"]
|
||||
roles = [UserRolesInOrganization(role_id="role_member", org_id=org_id)]
|
||||
|
||||
# Create the user
|
||||
user = UserInDB(user_id=user_id, creation_date=str(datetime.now()),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue