mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
fix: sign up with usergroups issue
This commit is contained in:
parent
f4794ebaf2
commit
db46c94896
2 changed files with 15 additions and 9 deletions
|
|
@ -16,7 +16,7 @@ from src.db.usergroup_resources import UserGroupResource
|
||||||
from src.db.usergroup_user import UserGroupUser
|
from src.db.usergroup_user import UserGroupUser
|
||||||
from src.db.organizations import Organization
|
from src.db.organizations import Organization
|
||||||
from src.db.usergroups import UserGroup, UserGroupCreate, UserGroupRead, UserGroupUpdate
|
from src.db.usergroups import UserGroup, UserGroupCreate, UserGroupRead, UserGroupUpdate
|
||||||
from src.db.users import AnonymousUser, PublicUser, User, UserRead
|
from src.db.users import AnonymousUser, InternalUser, PublicUser, User, UserRead
|
||||||
|
|
||||||
|
|
||||||
async def create_usergroup(
|
async def create_usergroup(
|
||||||
|
|
@ -275,7 +275,7 @@ async def delete_usergroup_by_id(
|
||||||
async def add_users_to_usergroup(
|
async def add_users_to_usergroup(
|
||||||
request: Request,
|
request: Request,
|
||||||
db_session: Session,
|
db_session: Session,
|
||||||
current_user: PublicUser | AnonymousUser,
|
current_user: PublicUser | AnonymousUser | InternalUser,
|
||||||
usergroup_id: int,
|
usergroup_id: int,
|
||||||
user_ids: str,
|
user_ids: str,
|
||||||
) -> str:
|
) -> str:
|
||||||
|
|
@ -486,10 +486,13 @@ async def remove_resources_from_usergroup(
|
||||||
async def rbac_check(
|
async def rbac_check(
|
||||||
request: Request,
|
request: Request,
|
||||||
usergroup_uuid: str,
|
usergroup_uuid: str,
|
||||||
current_user: PublicUser | AnonymousUser,
|
current_user: PublicUser | AnonymousUser | InternalUser,
|
||||||
action: Literal["create", "read", "update", "delete"],
|
action: Literal["create", "read", "update", "delete"],
|
||||||
db_session: Session,
|
db_session: Session,
|
||||||
):
|
):
|
||||||
|
if isinstance(current_user, InternalUser):
|
||||||
|
return True
|
||||||
|
|
||||||
await authorization_verify_if_user_is_anon(current_user.id)
|
await authorization_verify_if_user_is_anon(current_user.id)
|
||||||
|
|
||||||
await authorization_verify_based_on_roles_and_authorship(
|
await authorization_verify_based_on_roles_and_authorship(
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ from src.security.rbac.rbac import (
|
||||||
from src.db.organizations import Organization, OrganizationRead
|
from src.db.organizations import Organization, OrganizationRead
|
||||||
from src.db.users import (
|
from src.db.users import (
|
||||||
AnonymousUser,
|
AnonymousUser,
|
||||||
|
InternalUser,
|
||||||
PublicUser,
|
PublicUser,
|
||||||
User,
|
User,
|
||||||
UserCreate,
|
UserCreate,
|
||||||
|
|
@ -147,19 +148,21 @@ async def create_user_with_invite(
|
||||||
# Usage check
|
# Usage check
|
||||||
check_limits_with_usage("members", org_id, db_session)
|
check_limits_with_usage("members", org_id, db_session)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
user = await create_user(request, db_session, current_user, user_object, org_id)
|
||||||
|
|
||||||
# Check if invite code contains UserGroup
|
# Check if invite code contains UserGroup
|
||||||
if inviteCode.usergroup_id:
|
if inviteCode.get("usergroup_id"):
|
||||||
# Add user to UserGroup
|
# Add user to UserGroup
|
||||||
await add_users_to_usergroup(
|
await add_users_to_usergroup(
|
||||||
request,
|
request,
|
||||||
db_session,
|
db_session,
|
||||||
current_user,
|
InternalUser(id=0),
|
||||||
inviteCode.usergroup_id,
|
int(inviteCode.get("usergroup_id")), # Convert to int since usergroup_id is expected to be int
|
||||||
user_object.username,
|
str(user.id),
|
||||||
)
|
)
|
||||||
|
|
||||||
user = await create_user(request, db_session, current_user, user_object, org_id)
|
|
||||||
|
|
||||||
increase_feature_usage("members", org_id, db_session)
|
increase_feature_usage("members", org_id, db_session)
|
||||||
|
|
||||||
return user
|
return user
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue