def edit_room(room_id): room = get_room(room_id) if room and is_room_admin(room_id, current_user.username): existing_room_members = [ member['_id']['username'] for member in get_room_members(room_id) ] room_members_str = ",".join(existing_room_members) message = '' if request.method == 'POST': room_name = request.form.get('room_name') room['name'] = room_name update_room(room_id, room_name) new_members = [ username.strip() for username in request.form.get('members').split(',') ] members_to_add = list( set(new_members) - set(existing_room_members)) members_to_remove = list( set(existing_room_members) - set(new_members)) if len(members_to_add): add_room_members(room_id, room_name, members_to_add, current_user.username) if len(members_to_remove): remove_room_members(room_id, members_to_remove) message = 'Room edited successfully' room_members_str = ",".join(new_members) return render_template('edit_room.html', room=room, room_members_str=room_members_str, message=message) else: return "Room not found", 404
def edit_room(room_id): room = get_room(room_id) if room and is_room_admin(room_id, current_user.username): existing_room_members = [ member["_id"]["username"] for member in get_room_members(room_id) ] room_members_str = ",".join(existing_room_members) message = "" if request.method == "POST": room_name = request.form.get("room_name") room["name"] = room_name update_room(room_id, room_name) new_members = [ username.strip() for username in request.form.get("members").split(",") ] members_to_add = list(set(new_members) - set(existing_room_members)) members_to_remove = list(set(existing_room_members) - set(new_members)) if len(members_to_add): add_room_members( room_id, room_name, members_to_add, current_user.username ) if len(members_to_remove): remove_room_members(room_id, members_to_remove) message = "Room edited successfully" room_members_str = ",".join(new_members) return render_template( "edit_room.html", room=room, room_members_str=room_members_str, message=message, ) else: return "Room not found", 404
def edit_room(room_id): room = get_room(room_id) if room and is_room_admin(room_id, current_user.username): existing_room_members = [ member['_id']['username'] for member in get_room_members(room_id) ] room_members_str = ",".join(existing_room_members) message = '' if request.method == 'POST': room_name = request.form.get('room_name') if (len(request.form.get('room_name'))) == 0: message = "Room name cannot be empty" return render_template('edit_room.html', room=room, room_members_str=room_members_str, message=message) room['name'] = room_name update_room(room_id, room_name) if len(request.form.get('members')) == 0: message = "Edit unsuccessful" return render_template('edit_room.html', room=room, room_members_str=room_members_str, message=message) new_members = [ username.strip() for username in request.form.get('members').split(',') ] members_to_add = list( set(new_members) - set(existing_room_members)) members_to_remove = list( set(existing_room_members) - set(new_members)) if current_user.username in members_to_remove: message = "Cannot remove admin from room" return render_template('edit_room.html', room=room, room_members_str=room_members_str, message=message) if len(members_to_add): add_room_members(room_id, room_name, members_to_add, current_user.username) if len(members_to_remove): remove_room_members(room_id, members_to_remove) message = 'Room edited successfully' room_members_str = ",".join(new_members) return redirect(url_for('view_room', room_id=room_id)) return render_template('edit_room.html', room=room, room_members_str=room_members_str, message=message) else: message = "Not the admin for this room" return render_template('error.html', message=message)
def edit_single_room(room_id): auth_user_id = get_jwt_identity() auth_user = get_user(auth_user_id) json_input = request.get_json(force=True) changed_room = json_input['room'].items() if not is_room_member(room_id, auth_user_id): return jsonify({'Error': 'Not authorized'}), 403 changeable_values = ['emoji', 'name'] for kvp in changed_room: if kvp[0] not in changeable_values: return jsonify( {'Error': 'You can only edit email, real_name, or username.'}), 400 update_room(room_id, changed_room) return jsonify({'Success': 'Room modified.'})
def edit_room(room_id): room = get_room(room_id) print(room) print(is_room_admin(room_id, current_user.username)) if room and is_room_admin(room_id, current_user.username): existing_room_members = [ member['_id']['username'] for member in get_room_members(room_id) ] message = '' if request.method == 'POST': room_name = request.form.get('room_name') update_room(room_id, room_name) new_members = [ username.strip() for username in request.form.get('members').split(',') ] print(new_members) members_to_add = list( set(new_members) - set(existing_room_members)) members_to_remove = list( set(existing_room_members) - set(new_members)) print(members_to_remove, members_to_remove) if len(members_to_add): add_room_members(room_id, room_name, members_to_add, current_user.username) if len(members_to_remove): remove_room_members(room_id, members_to_remove) return redirect(url_for('home')) room_members_str = ",".join(existing_room_members) print(room_members_str) return render_template('edit_room.html', message=message, room=room, room_members_str=room_members_str) return "Room not found", 404
def edit_room(room_id): room = [i for i in db.get_room(room_id)] if room and db.is_room_admin(room_id, current_user.username): existing_room_members = [ member for member in db.get_room_members(room_id) ] existing_members = [ str(member['_id']['username']) for member in existing_room_members[0] ] if request.method == 'POST': room_name = request.form['room_name'] db.update_room(room_id, room_name) new_members = [ username.strip() for username in request.form['members'].split(',') ] members_to_add = list(set(new_members) - set(existing_members)) members_to_remove = list(set(existing_members) - set(new_members)) if len(members_to_add): db.add_room_members(room_id, room_name, members_to_add, current_user.username) if len(members_to_remove): db.remove_room_members(room_id, members_to_remove) return redirect('/') room_members_str = ', '.join(existing_members) return render_template('edit-room.html', room=room[0], room_members_str=room_members_str) return 'Room not fould', 404
return render_template('rooms.html', table=tables['rooms'], edit_id_options=True) elif 'submit_edit_id' in data: if not (room_edit_id := check_id(data, 'edit_id', 'rooms')): return render_template('rooms.html', table=tables['rooms'], edit_id_options=True) else: cache.set('room_edit_id', room_edit_id) with conn: room_update = db.select_room(conn, room_edit_id)[0] return render_template('rooms.html', table=tables['rooms'], edit_options=True, room_file=room_update) elif 'submit_edit' in data: room_edit_id = cache.get('room_edit_id') room_update = [data['room_name'], data['building'], room_edit_id] with conn: db.update_room(conn, room_update) get_table() return render_template('rooms.html', table=tables['rooms']) elif 'delete' in data: return render_template('rooms.html', table=tables['rooms'], delete_options=True) elif 'submit_delete' in data: if not (room_delete_id := check_id(data, 'delete_id', 'rooms')): return render_template('rooms.html', table=tables['rooms'], delete_options=True) else: with conn: try: db.delete_room(conn, room_delete_id) except Exception: alert = 'Room is used in activities'
def edit_room(room_id): room = get_room(room_id) admins = [] not_admin = [] error_msg = '' message = '' if room and is_room_admin(room_id, current_user.username): members = get_room_members(room_id) members_list = [username['_id']['username'] for username in members] for member in members: if is_room_admin(room_id, member['_id']['username']): admins.append(member['_id']['username']) else: not_admin.append(member['_id']['username']) if request.method == "POST": room_name = request.form.get('room_name') room['name'] = room_name update_room(room_id, room_name) make_admin = request.form.get('makeAdmin') removeAdmin = request.form.get('removeAdmin') add_member = request.form.get('addmember') rem_mem = request.form.get('remove_user') rem_room = request.form.get('delete_room') if make_admin: try: update_admin(room_id, make_admin) message = '{} is now an Admin🥳'.format(make_admin) except: error_msg = 'Some error occured' if removeAdmin: try: if len(admins) > 1: remove_admin(room_id, removeAdmin) message = '{} is no longer an Admin'.format( removeAdmin) else: message = 'Atleast one admin should be present' except: error_msg = 'Some error occured' if add_member: try: user = check_user(add_member) if user: if add_member not in members_list: add_mems = [username.strip() for username in add_member.split(',')] add_room_members(room_id, room_name, add_mems, current_user.username) message = '\"{}\" added successfully'.format( add_member) else: message = "\"{}\" already in room".format( add_member) else: message = "\"{}\" does not exist :(".format(add_member) except: error_msg = "Some error occured" if rem_mem: is_admin = is_room_admin(room_id, rem_mem) try: if len(members_list) > 1: if is_admin and len(admins) == 1: message = 'Atleast one Admin should be present ' else: remove_room_member(room_id, rem_mem) message = '{} removed successfully'.format(rem_mem) else: message = 'Atleast one member should be present' except: error_msg = "Some error occured" if rem_room == 'Remove': try: for member in members_list: print("hi") remove_room_member(room_id, member) delete_room(room_id) return redirect(url_for('home')) except: error_msg = "Some error oocured" # return redirect(url_for('edit_room',room_id=room_id,message = message)) return render_template('edit_room.html', not_admin=not_admin, admins=admins, room=room, members=members, error_msg=error_msg, room_id=room_id, message=message) else: return render_template('404.html', message='Only admins can Edit Room', room_id=room_id)