示例#1
0
    def get(self, new_data, user_id):
        """Reveal another user detail - [PROTECTED]

        Args:
            user_id (int): [The User id]
        """

        request_id = get_jwt_identity()
        user = user_crud.get(request_id)
        if not user.is_superuser:
            abort(401,
                  message="You do not have permission to view this endpoint")
        user = user_crud.get(user_id)

        return user
示例#2
0
    def delete(self, agenda_id):
        """Delete an Agenda [Protected]

        Args:
            new_data ([type]): [description]
            agenda_id (int): The Agenda id
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        agenda = agenda_crud.get(agenda_id)
        if not agenda:
            abort(404, message="Agenda does not exist")
        meeting_id = agenda_crud.get_meeting_id(agenda=agenda)
        if not user.is_superuser:
            meeting_id = agenda_crud.get_meeting_id(agenda=agenda)
            meeting = meeting_crud.get(meeting_id)
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(
                    401,
                    message="You don't have permission to remove this agenda")
        meeting_crud.update_meeting_endtime(meeting_id, -(agenda.set_duration))
        agenda_crud.remove(agenda_id)
        return {'msg': 'Agenda Removed'}
示例#3
0
    def get(self, new_data):
        """[Admin] Reveal of users in the system - [PROTECTED]

        Args:
            Skip (int): number of entries to skip
            [defaults to '0' if not provided],
            Limit (int): the limit of number of data released
            [defaults to '100' if not provided]
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        if not user.is_superuser:
            abort(401,
                  message="You do not have permission to view this endpoint")
        if 'limit' in new_data and 'skip' in new_data:
            users = user_crud.get_multi(skip=new_data['skip'],
                                        limit=new_data['limit'])
        elif 'limit' in new_data:
            users = user_crud.get_multi(limit=new_data['limit'])
        elif 'skip' in new_data:
            users = user_crud.get_multi(skip=new_data['skip'])
        else:
            users = user_crud.get_multi()

        return users
示例#4
0
    def put(self, new_data, meeting_id):
        """Update a Meeting [Protected]

        Args:
            new_data ([type]): [description]
            meeting_id (int): The Meeting id

        Only send what has changed
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        meeting = meeting_crud.get(meeting_id)
        if not user.is_superuser:
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(
                    401,
                    message="You don't have permission to update this Meeting")
        if not meeting:
            abort(404, message="Meeting does not exist")

        meeting = meeting_crud.get(meeting_id)
        meeting = meeting_crud.update(meeting, new_data)
        if not meeting['added']:
            abort(409, message="Meeting with this name exits for this user")
        meeting = meeting['db_obj']

        return meeting
示例#5
0
    def post(self, new_data):
        """End A Meeting [Protected]

        Args:
            new_data ([type]): [description]

        Returns:
            [type]: [description]
        """
        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        meeting_id = new_data['meeting_id']
        meeting = meeting_crud.get(meeting_id)
        if not user.is_superuser:
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(401, message="You don't have permission to get agendas")
        if not meeting:
            abort(404, message="Meeting does not exist")

        if not meeting_crud.is_meeting_started(meeting):
            abort(409, message="This meeting has not started")

        if meeting.completed:
            abort(409, message="This meeting has ended")

        meeting = meeting_crud.end_meeting(meeting_id, new_data['end_time'])
        return meeting
示例#6
0
    def post(self, new_data):
        """Start A Meeting [Protected]

        Args:
            new_data ([type]): [description]

        Returns:
            [type]: [description]
        """
        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        meeting_id = new_data['meeting_id']
        meeting = meeting_crud.get(meeting_id)
        if not user.is_superuser:
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(
                    401,
                    message="You don't have permission to start this meeting")
        if not meeting:
            abort(404, message="Meeting does not exist")

        if meeting_crud.is_meeting_started(meeting):
            abort(409, message="You already started the meeting")
        meeting = meeting_crud.start_meeting(new_data)
        return meeting
示例#7
0
    def put(self, new_data, agenda_id):
        """Marks an Agenda as Completeted

        Args:
            new_data ([type]): [description]
            agenda_id (int): The agenda unique id

        Returns:
            Agenda: an agenda object
        """
        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        agenda = agenda_crud.get(agenda_id)
        meeting_id = agenda_crud.get_meeting_id(agenda=agenda)
        if not user.is_superuser:
            meeting = meeting_crud.get(meeting_id)
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(
                    401,
                    message="You don't have permission to complete this agenda"
                )
        _meeting = meeting_crud.get(meeting_id)
        if not meeting_crud.is_meeting_started(_meeting):
            abort(409, message="Start the meeting first")
        if agenda.completed:
            abort(409, message="Agenda Already Completed")
        agenda = agenda_crud.completed(agenda, new_data['final_duration'])
        meeting_crud.update_meeting_final_endtime(_meeting,
                                                  new_data['final_duration'])
        if agenda_crud.is_all_agenda_completed(meeting_id=meeting_id):
            meeting_crud.completed(meeting_id=meeting_id)
        return agenda
示例#8
0
    def get(self):
        """Reveal a user own detail - [PROTECTED]
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        if not user:
            abort(404, message="User not Found")

        return user
示例#9
0
    def put(self, new_data, user_id):
        """[Admin] Update another user detail - [PROTECTED]

        Args:
            user_id (int): [The User id]

        Only send what has changed
        """

        request_id = get_jwt_identity()
        user = user_crud.get(request_id)
        if not user.is_superuser:
            abort(401,
                  message="You do not have permission to view this endpoint")
        user = user_crud.get(user_id)
        user = user_crud.update(user, new_data)
        if not user['added']:
            abort(409, message="User with this email exist")
        user = user['db_obj']
        return user
示例#10
0
    def put(self, new_data):
        """Update a user own details - [PROTECTED]
        Only send what has changed
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        if not user:
            abort(404, message="User not Found")
        user = user_crud.update(user, new_data)
        if not user['added']:
            abort(409, message="User with this email exits")
        user = user['db_obj']
        return user
示例#11
0
    def delete(self):
        """Delete a user own details - [PROTECTED]
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        if not user:
            abort(404, message="User not Found")
        all_tokens = auth_crud.get_user_tokens(user_id)
        tokens = [token.to_dict() for token in all_tokens]
        for token in tokens:
            auth_crud.revoke_token(token['id'], user_id)
        user = user_crud.remove(user_id)

        return {'msg': 'User Removed'}
示例#12
0
    def get(self, meeting_id: int):
        """Get  A Meeting Agenda(s) [Protected]
        """
        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        meeting = meeting_crud.get(meeting_id)
        if not user.is_superuser:
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(401, message="You don't have permission to get agendas")
        if not meeting:
            abort(404, message="Meeting does not exist")

        agendas = meeting_crud.get_meeting_agendas(meeting=meeting)

        return agendas
示例#13
0
    def put(self, new_data, agenda_id):
        """Update an Agenda [Protected]

        Args:
            new_data ([type]): [description]
            agenda_id (int): The Agenda id

        Only send what has changed
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        agenda = agenda_crud.get(agenda_id)
        set_duration = agenda.set_duration
        meeting_id = agenda_crud.get_meeting_id(agenda=agenda)
        meeting = meeting_crud.get(meeting_id)
        if not user.is_superuser:
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(
                    401,
                    message="You don't have permission to update this agenda")
        if not agenda:
            abort(404, message="Agenda does not exist")

        if meeting_crud.is_meeting_started(meeting):
            abort(409, message="Can't update an agenda in an ungoing meeting")

        new_agenda = agenda_crud.update(agenda, new_data)
        if not new_agenda['added']:
            abort(409, message="Agenda with same name exits in this meeting")
        new_agenda = new_agenda['db_obj']

        if new_data['set_duration']:
            data = {
                "set_duration": ((meeting.set_duration - set_duration) +
                                 new_agenda.set_duration),
                "set_end_time":
                time_plus(time_subtract(meeting.set_end_time, set_duration),
                          new_agenda.set_duration)
            }

            meeting_crud.update(meeting, data)

        return new_agenda
示例#14
0
    def get(self, meeting_id):
        """Get a Meeting [Protected]

        Args:
            new_data ([type]): [description]
            meeting_id (int): The Meeting id
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        meeting = meeting_crud.get(meeting_id)
        if not user.is_superuser:
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(401,
                      message="You don't have permission to view this Meeting")
        if not meeting:
            abort(404, message="Meeting does not exist")

        return meeting
示例#15
0
    def get(self, agenda_id):
        """Get an Agenda [Protected]

        Args:
            new_data ([type]): [description]
            agenda_id (int): The Agenda id
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        agenda = agenda_crud.get(agenda_id)
        if not agenda:
            abort(404, message="Agenda does not exist")
        if not user.is_superuser:
            meeting_id = agenda_crud.get_meeting_id(agenda=agenda)
            meeting = meeting_crud.get(meeting_id)
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(401,
                      message="You don't have permission to view this agenda")
        return agenda
示例#16
0
    def put(self, new_data):
        """Password Change [PROTECTED]

        Args:
            old_passowrd (str): [The current password]
            new_password (int): [The new password]
        """

        current_user = get_jwt_identity()
        user = user_crud.get(current_user)
        if not user:
            abort(404, message="User not Found")

        verified = verify_password(new_data['old_password'],
                                   user.hashed_password)
        if not verified:
            abort(401, message='Wrong old Password')

        data = {'password': new_data['new_password']}
        user_crud.update(user, data)

        return {'msg': 'Password Changed'}
示例#17
0
    def delete(self, meeting_id):
        """Delete a Meeting [Protected]

        Args:
            new_data ([type]): [description]
            meeting_id (int): The Meeting id
        """

        user_id = get_jwt_identity()
        user = user_crud.get(user_id)
        meeting = meeting_crud.get(meeting_id)
        if not user.is_superuser:
            if not meeting_crud.is_user_meeting(user_id=user_id,
                                                meeting=meeting):
                abort(
                    401,
                    message="You don't have permission to remove this Meeting")
        if not meeting:
            abort(404, message="Meeting does not exist")

        meeting_crud.remove(meeting_id)
        return {'msg': 'User Removed'}
示例#18
0
    def delete(self, new_data, user_id):
        """[ADMIN] Deletes another user from the system [PROTECTED]

        Args:
            user_id (int): [The User id]

        Returns:
            msg: [if it was sucessful or not]
        """
        print(new_data)
        request_id = get_jwt_identity()
        user = user_crud.get(request_id)
        if not user.is_superuser:
            abort(401,
                  message="You do not have permission to view this endpoint")
        all_tokens = auth_crud.get_user_tokens(user_id)
        tokens = [token.to_dict() for token in all_tokens]
        for token in tokens:
            auth_crud.revoke_token(token['id'], user_id)
        user = user_crud.remove(user_id)

        return {'msg': 'User Removed'}