Beispiel #1
0
    def mutate(self, _, email, ws_id, start_date=None):
        check_role_or_error(ws_id=ws_id, role=WorkspaceUserRoles.ADMIN)

        start_date = start_date if start_date else datetime.datetime.utcnow()

        try:
            user = _UserModel.find(email=email)
            if user is None:
                if WorkspaceInvitation.find(email=email, ws_id=ws_id) is None:
                    WorkspaceInvitation(
                        email=email,
                        ws_id=ws_id,
                        start_date=start_date,
                        status=WorkspaceInvitationStatus.PENDING).save()
            elif WorkspaceUser.find(user_id=user.id, ws_id=ws_id) is None:
                WorkspaceInvitation(
                    email=email,
                    ws_id=ws_id,
                    start_date=start_date,
                    status=WorkspaceInvitationStatus.ACCEPTED).save()

                WorkspaceUser(user_id=user.id,
                              ws_id=ws_id,
                              start_date=start_date).save()

            Persistent.commit()

            return AddMember(ok=True)
        except Exception as e:
            LOG.error(f'Could not add member into workspace. Error: {e}')
            Persistent.rollback()
            return GraphQLError('Could not add member into workspace.')
Beispiel #2
0
    def mutate(self, _, email, ws_id):
        check_role_or_error(ws_id=ws_id, role=WorkspaceUserRoles.ADMIN)

        try:
            invitation = WorkspaceInvitation.find(ws_id=ws_id, email=email)
            if invitation:
                invitation.delete()

            ws_user = None

            user = _UserModel.find(email=email)
            if user:
                ws_user = WorkspaceUser.find(ws_id=ws_id, user_id=user.id)

            if ws_user:
                ws_user.delete()

            Persistent.commit()
            return RemoveMember(ok=True)
        except Exception as e:
            LOG.error(f'Could not remove member from workspace.. Error: {e}')
            Persistent.rollback()
            return GraphQLError('Could not remove member from workspace.')
Beispiel #3
0
def logged_id_user_load_callback(identity):
    from application.auth.models import User
    return User.find(email=identity)