| 2082 | |
| 2083 | name = db.Column(db.String, primary_key=True) |
| 2084 | |
| 2085 | |
| 2086 | class InvitedUser(db.Model): |
| 2087 | __tablename__ = "invited_users" |
| 2088 | |
| 2089 | id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) |
| 2090 | email_address = db.Column(db.String(255), nullable=False) |
| 2091 | user_id = db.Column(UUID(as_uuid=True), db.ForeignKey("users.id"), index=True, nullable=False) |
| 2092 | from_user = db.relationship("User") |
| 2093 | service_id = db.Column(UUID(as_uuid=True), db.ForeignKey("services.id"), index=True, unique=False) |
| 2094 | service = db.relationship("Service") |
| 2095 | created_at = db.Column(db.DateTime, index=False, unique=False, nullable=False, default=datetime.datetime.utcnow) |
| 2096 | status = db.Column( |
| 2097 | db.Enum(*INVITED_USER_STATUS_TYPES, name="invited_users_status_types"), nullable=False, default=INVITE_PENDING |
| 2098 | ) |
| 2099 | permissions = db.Column(db.String, nullable=False) |
| 2100 | auth_type = db.Column(db.String, db.ForeignKey("auth_type.name"), index=True, nullable=False, default=SMS_AUTH_TYPE) |
| 2101 | folder_permissions = db.Column(JSONB(none_as_null=True), nullable=False, default=[]) |
| 2102 | |
| 2103 | __extended_statistics__ = ( |
| 2104 | # dependencies |
| 2105 | ("st_dep_inv_users_user_id_service_id", ("user_id", "service_id"), ("dependencies",)), |
| 2106 | ) |
| 2107 | |
| 2108 | # would like to have used properties for this but haven't found a way to make them |
| 2109 | # play nice with marshmallow yet |
| 2110 | def get_permissions(self): |
| 2111 | return self.permissions.split(",") |
| 2112 |
no outgoing calls