Skip to content

Commit b71106e

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

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-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: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
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 flask import jsonify, request, Blueprint
24+
from app.api.helpers.errors import NotFoundError
25+
from sqlalchemy.orm.exc import NoResultFound
26+
from datetime import datetime
27+
2328

2429
role_invites_misc_routes = Blueprint('role_invites_misc', __name__, url_prefix='/v1')
2530

@@ -155,8 +160,8 @@ def accept_invite():
155160
except NoResultFound:
156161
return NotFoundError({'source': ''}, 'Role corresponding to role invite not Found').respond()
157162
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()
163+
uer = UsersEventsRoles.query.filter_by(user=user).filter_by(event=event).filter_by(
164+
role=role).filter_by(deleted_at=None).first()
160165
if not uer:
161166
role_invite.status = "accepted"
162167
save_to_db(role_invite, 'Role Invite Accepted')
@@ -165,6 +170,11 @@ def accept_invite():
165170
if not user.is_verified:
166171
user.is_verified = True
167172
save_to_db(user, 'User verified')
173+
if role_invite.role_name == 'owner':
174+
previous_uer = UsersEventsRoles.query.filter_by(event=event).filter_by(role=role).filter_by(
175+
deleted_at=None).first()
176+
previous_uer.deleted_at = datetime.utcnow()
177+
save_to_db(previous_uer, 'Past Owner deleted')
168178

169179
return jsonify({
170180
"email": user.email,

0 commit comments

Comments
 (0)