workspace role marked as accepted when user accepts invitation

This commit is contained in:
dandds
2018-10-25 13:21:17 -04:00
parent 49f5edfe29
commit 3e19c75c80
8 changed files with 71 additions and 3 deletions

View File

@@ -63,7 +63,7 @@ class WorkspaceUsers(object):
new_workspace_role.role = role
except NoResultFound:
new_workspace_role = WorkspaceRole(
user=user, role_id=role.id, workspace_id=workspace_id
user=user, role_id=role.id, workspace_id=workspace_id, accepted=False
)
user.workspace_roles.append(new_workspace_role)

View File

@@ -25,9 +25,19 @@ class WorkspacesQuery(Query):
db.session.query(Workspace)
.join(WorkspaceRole)
.filter(WorkspaceRole.user == user)
.filter(WorkspaceRole.accepted == True)
.all()
)
@classmethod
def create_workspace_role(cls, user, role, workspace):
return WorkspaceRole(user=user, role=role, workspace=workspace)
@classmethod
def get_role_for_workspace_and_user(cls, workspace, user):
return (
db.session.query(WorkspaceRole)
.filter(WorkspaceRole.user == user)
.filter(WorkspaceRole.workspace == workspace)
.one()
)

View File

@@ -119,3 +119,11 @@ class Workspaces(object):
workspace.name = new_data["name"]
WorkspacesQuery.add_and_commit(workspace)
@classmethod
def accept_workspace_role(cls, user, workspace):
workspace_role = WorkspacesQuery.get_role_for_workspace_and_user(
workspace, user
)
workspace_role.accepted = True
WorkspacesQuery.add_and_commit(workspace_role)