Skip to content

Commit a546812

Browse files
feat: adds checks for accepting owner role invite
1 parent f192ad5 commit a546812

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

app/api/event_copy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def create_event_copy(identifier):
4444
custom_forms = CustomForms.query.filter_by(event_id=event.id).all()
4545
discount_codes = DiscountCode.query.filter_by(event_id=event.id).all()
4646
speaker_calls = SpeakersCall.query.filter_by(event_id=event.id).all()
47-
user_event_roles = UsersEventsRoles.query.filter_by(event_id=event.id).all()
47+
user_event_roles = UsersEventsRoles.query.filter_by(event_id=event.id).filter_by(deleted_at=None).all()
4848

4949
db.session.expunge(event) # expunge the object from session
5050
make_transient(event)

app/api/helpers/query.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,4 @@ def get_upcoming_events():
4545

4646
def get_user_event_roles_by_role_name(event_id, role_name):
4747
role = Role.query.filter_by(name=role_name).first()
48-
return UsersEventsRoles.query.filter_by(event_id=event_id).filter(UsersEventsRoles.role == role)
48+
return UsersEventsRoles.query.filter_by(event_id=event_id).filter_by(deleted_at=None).filter(UsersEventsRoles.role == role)

app/api/role_invites.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from flask import jsonify, request, Blueprint
2121
from app.api.helpers.errors import NotFoundError
2222
from sqlalchemy.orm.exc import NoResultFound
23+
from datetime import datetime
2324

2425

2526
role_invites_misc_routes = Blueprint('role_invites_misc', __name__, url_prefix='/v1')
@@ -154,8 +155,8 @@ def accept_invite():
154155
except NoResultFound:
155156
return NotFoundError({'source': ''}, 'Role corresponding to role invite not Found').respond()
156157
event = Event.query.filter_by(id=role_invite.event_id).first()
157-
uer = UsersEventsRoles.query.filter_by(user=user).filter_by(
158-
event=event).filter_by(role=role).first()
158+
uer = UsersEventsRoles.query.filter_by(user=user).filter_by(event=event).filter_by(
159+
role=role).filter_by(deleted_at=None).first()
159160
if not uer:
160161
role_invite.status = "accepted"
161162
save_to_db(role_invite, 'Role Invite Accepted')
@@ -164,6 +165,11 @@ def accept_invite():
164165
if not user.is_verified:
165166
user.is_verified = True
166167
save_to_db(user, 'User verified')
168+
if role_invite.role_name == 'owner':
169+
previous_uer = UsersEventsRoles.query.filter_by(event=event).filter_by(role=role).filter_by(
170+
deleted_at=None).first()
171+
previous_uer.deleted_at = datetime.utcnow()
172+
save_to_db(previous_uer, 'Past Owner deleted')
167173

168174
return jsonify({
169175
"email": user.email,

0 commit comments

Comments
 (0)