Example #1
0
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
Example #2
0
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
Example #3
0
def del_msg(room_id):
    room = get_room(room_id)
    if room and is_room_admin(room_id, current_user.username):
        remove_all_messages(room_id)
        return redirect(url_for('view_room', room_id=room_id))
    else:
        return "<h2>Only room admin can delete the messages</h2>", 404
Example #4
0
def delete_room(room_id):
    room = get_room(room_id)
    if room and is_room_admin(room_id, current_user.username):
        remove_room(room_id)
        return redirect(url_for('home'))
    else:
        message = "Not the admin for this room"
        return render_template('error.html', message=message)
Example #5
0
def view_room(room_id):
    room=get_room(room_id)
    if room and is_room_member(room_id,current_user.username):
        room_members=get_room_members(room_id)
        admin=is_room_admin(room_id,current_user.username)
        messages=get_messages(room_id)
        return render_template('view_room.html',username=current_user.username,room=room,room_members=room_members,is_admin=admin,messages=messages)
    else:
        return 'room not found',404
Example #6
0
def del_room(room_id):
    room = get_room(room_id)
    if room and is_room_admin(room_id, current_user.username):
        remove_all_messages(room_id)
        remove_all_members(room_id)
        remove_all_events(room_id)
        remove_room(room_id)
        return redirect(url_for('home'))
    else:
        return "<h2>Only room admin can delete the room</h2>", 404
Example #7
0
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)
Example #8
0
def delete_room(room_id):
    room = get_room(room_id)
    message = ""
    if room and is_room_admin(room_id, current_user.username):
        if request.method == 'POST':
            room_name = request.form.get('room_name')
            room['name'] = room_name
            remove_room(room_id)
            message = "Room deleted successfully!"
        return render_template('delete_room.html', room=room, message=message)
    else:
        return "Room not found!", 404
Example #9
0
def delete_some_room(room_id):
    user_id = get_jwt_identity()

    if not is_room(room_id):
        return jsonify({'Error': 'Not Found'}), 404

    if is_room_admin(room_id, user_id):
        print('is admin')
        delete_room(room_id)
    else:
        return jsonify({'Error': 'Not authorized'}), 403

    return jsonify({'Success': '{} has been purged.'.format(room_id)})
Example #10
0
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
Example #11
0
def chat_room(room_id):
    rooms = get_rooms_for_user(current_user.username)
    room = get_room(room_id)
    email = get_email(current_user.username)
    admins = []
    not_admin = []
    if room and is_room_member(room_id, current_user.username):
        room_members = get_room_members(room_id)
        for member in room_members:
            if is_room_admin(room_id, member['_id']['username']):
                admins.append(member['_id']['username'])
            else:
                not_admin.append(member['_id']['username'])

        messages = get_messages(room_id)
        return render_template('chat.html', admins=admins, rooms=rooms, username=current_user.username, not_admin=not_admin, email=email, room=room, room_members=room_members, room_id=room_id, messages=messages)
    else:

        return render_template('404.html', message='Room does not exist')
Example #12
0
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
Example #13
0
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)