Skip to content

Commit 495165d

Browse files
feat: adds checks for accepting owner role invite
1 parent 8f253f5 commit 495165d

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,5 @@ 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(
49+
UsersEventsRoles.role == role)

app/api/role_invites.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
from app.models.user import User
2121
from app.models.users_events_role import UsersEventsRoles
2222
from app.settings import get_settings
23+
from datetime import datetime
24+
2325

2426
role_invites_misc_routes = Blueprint('role_invites_misc', __name__, url_prefix='/v1')
2527

@@ -155,8 +157,8 @@ def accept_invite():
155157
except NoResultFound:
156158
return NotFoundError({'source': ''}, 'Role corresponding to role invite not Found').respond()
157159
event = Event.query.filter_by(id=role_invite.event_id).first()
158-
uer = UsersEventsRoles.query.filter_by(user=user).filter_by(
159-
event=event).filter_by(role=role).first()
160+
uer = UsersEventsRoles.query.filter_by(user=user).filter_by(event=event).filter_by(
161+
role=role).filter_by(deleted_at=None).first()
160162
if not uer:
161163
role_invite.status = "accepted"
162164
save_to_db(role_invite, 'Role Invite Accepted')
@@ -165,6 +167,11 @@ def accept_invite():
165167
if not user.is_verified:
166168
user.is_verified = True
167169
save_to_db(user, 'User verified')
170+
if role_invite.role_name == 'owner':
171+
previous_uer = UsersEventsRoles.query.filter_by(event=event).filter_by(role=role).filter_by(
172+
deleted_at=None).first()
173+
previous_uer.deleted_at = datetime.utcnow()
174+
save_to_db(previous_uer, 'Past Owner deleted')
168175

169176
return jsonify({
170177
"email": user.email,

0 commit comments

Comments
 (0)