new workspace members are provisional until they log in for the first time

This commit is contained in:
dandds
2018-10-25 11:25:58 -04:00
parent 8f146b2fee
commit 49f5edfe29
7 changed files with 76 additions and 1 deletions

View File

@@ -89,3 +89,12 @@ class Users(object):
db.session.commit()
return user
@classmethod
def finalize(cls, user):
user.provisional = False
db.session.add(user)
db.session.commit()
return user

View File

@@ -86,6 +86,7 @@ class Workspaces(object):
last_name=data["last_name"],
email=data["email"],
atat_role_name="default",
provisional=True,
)
return Workspaces.add_member(workspace, new_user, data["workspace_role"])

View File

@@ -1,4 +1,4 @@
from sqlalchemy import String, ForeignKey, Column, Date
from sqlalchemy import String, ForeignKey, Column, Date, Boolean
from sqlalchemy.orm import relationship
from sqlalchemy.dialects.postgresql import UUID
@@ -26,6 +26,8 @@ class User(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
designation = Column(String)
date_latest_training = Column(Date)
provisional = Column(Boolean)
@property
def atat_permissions(self):
return self.atat_role.permissions

View File

@@ -101,6 +101,10 @@ def login_redirect():
auth_context = _make_authentication_context()
auth_context.authenticate()
user = auth_context.get_user()
if user.provisional:
Users.finalize(user)
session["user_id"] = user.id
return redirect(redirect_after_login_url())