Updates to workspace role permissions, invitations

This commit is contained in:
dandds
2018-10-30 15:22:07 -04:00
parent 4255dbe292
commit 848bbf9c12
16 changed files with 232 additions and 201 deletions

View File

@@ -3,6 +3,7 @@ from sqlalchemy.orm.exc import NoResultFound
from atst.database import db
from atst.models.invitation import Invitation, Status as InvitationStatus
from atst.domain.workspace_users import WorkspaceUsers
from .exceptions import NotFoundError
@@ -30,9 +31,9 @@ class Invitations(object):
return invite
@classmethod
def create(cls, workspace, inviter, user):
def create(cls, workspace_role, inviter, user):
invite = Invitation(
workspace=workspace,
workspace_role=workspace_role,
inviter=inviter,
user=user,
status=InvitationStatus.PENDING,
@@ -43,20 +44,6 @@ class Invitations(object):
return invite
@classmethod
def create_for_owner(cls, workspace, user):
invite = Invitation(
workspace=workspace,
inviter=user,
user=user,
status=InvitationStatus.ACCEPTED,
expiration_time=Invitations.current_expiration_time(),
)
db.session.add(invite)
db.session.commit()
return invite
@classmethod
def accept(cls, token):
invite = Invitations._get(token)
@@ -72,6 +59,8 @@ class Invitations(object):
if invite.is_revoked or invite.is_rejected:
raise InvitationError(invite)
WorkspaceUsers.enable(invite.workspace_role)
return invite
@classmethod