ui enhancement company
This commit is contained in:
parent
cc3f3f3de5
commit
c01914736b
14 changed files with 876 additions and 159 deletions
|
|
@ -141,3 +141,41 @@ async def create_org_member(
|
|||
session.add(member)
|
||||
await session.flush()
|
||||
return await member_read(session, member)
|
||||
|
||||
|
||||
async def update_org_member_role(
|
||||
session: AsyncSession,
|
||||
*,
|
||||
manager: Account,
|
||||
member_id,
|
||||
org_role: str,
|
||||
) -> OrgMemberRead:
|
||||
company_domain = manager.company_domain
|
||||
if company_domain is None:
|
||||
raise ValueError("Company domain is required.")
|
||||
|
||||
if not await account_is_domain_owner(
|
||||
session,
|
||||
manager.id,
|
||||
company_domain,
|
||||
):
|
||||
raise ValueError("Only the domain owner can assign roles.")
|
||||
|
||||
member = await session.scalar(
|
||||
select(Account).where(
|
||||
Account.id == member_id,
|
||||
Account.company_domain == company_domain,
|
||||
)
|
||||
)
|
||||
if member is None:
|
||||
raise ValueError("User not found in your organization.")
|
||||
|
||||
if await account_is_domain_owner(session, member.id, company_domain):
|
||||
raise ValueError("The domain owner role cannot be changed.")
|
||||
|
||||
if member.id == manager.id:
|
||||
raise ValueError("You cannot change your own role.")
|
||||
|
||||
member.org_role = org_role
|
||||
await session.flush()
|
||||
return await member_read(session, member)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue