コード例 #1
0
def validate_remove(data, token, messageId):
    if token in data['tokens']:
        pass
    else:
        raise ValueError("invalid token")
    channel_id = 0
    messagereal = False
    for channel in data['channels']:
        for message in channel['messages']:
            if message['message_id'] == messageId:
                channel_id = channel['channel_id']
                messagereal = True
    if messagereal == False:
        raise ValueError("cant find message")
    u_id = getUserFromToken(token)
    #userIsInChannel(data, channel_id, getUserFromToken(token))
    if isUserinChannelbool(data, channel_id, u_id) == False:
        raise AccessError("User is not in that channel 184msg helper")
    exists = False
    ownmessage = False
    #adminCalling = False
    adminCalling = isAdminOrOwner(data, u_id)
    for channel in data['channels']:
        for message in channel['messages']:
            if message['message_id'] == messageId:
                exists = True
                if message['u_id'] == u_id:
                    ownmessage = True
    if exists == False:
        raise ValueError("Invalid IDs")
    if ownmessage == False:
        if adminCalling == False:
            raise AccessError("Not an admin or owner or own message")
コード例 #2
0
def admin_userpermission_change(data, token, u_id, permission_id):
    # Decode token to match user
    auth_u_id = getUserFromToken(token)

    # Check whether auth_u_id has the permission to change
    for auth_user in data['users']:
        if auth_user['u_id'] == auth_u_id:
            if not auth_user['is_admin'] == PERMISSION1 and \
                not auth_user['is_admin'] == PERMISSION2:

                raise AccessError(
                    'The authorised user is not an admin or owner')

    # Check permission_id
    if permission_id != PERMISSION1 and \
        permission_id != PERMISSION2 and \
        permission_id != PERMISSION3:

        raise ValueError('permission_id does not refer to a value permission')

    # Check if u_id (the one that needs to be modified) exists
    exist = False
    for user in data['users']:
        if user['u_id'] == u_id:
            exist = True
            user['is_admin'] = permission_id

    # Raise error if u_id does not exist
    if exist == False:
        raise ValueError("u_id does not refer to a valid user")
コード例 #3
0
ファイル: channels_helper.py プロジェクト: Mike-SGit/Slackr
def userIsInChannel(data, channel_id, auth_u_id):
    for channel in data['channels']:
        if channel_id == channel['channel_id']:
            if str(auth_u_id) in channel['members']:
            # if str(auth_u_id) in channel['members'] or int(auth_u_id) in channel['members']:
                return True
            else:
                raise AccessError ('Requesting user is not an authorised  member of the channel')
    raise ValueError ('Channel does not exist.')
コード例 #4
0
ファイル: channels_helper.py プロジェクト: Mike-SGit/Slackr
def joinChannel(data, channel_id, u_id):
    for channel in data['channels']:
        if channel_id == channel['channel_id']:
            if u_id in channel['members']:
                raise ValueError ('User is already a member of the channel!')
            elif channel['is_public'] is False and isAdmin(data, u_id) is False:
                raise AccessError ('Channel is private and you do not have admin permission access.')
            else:
                channel['members'].append(u_id)
                return True
    raise ValueError ('Channel does not exist.') 
コード例 #5
0
ファイル: channels_helper.py プロジェクト: Mike-SGit/Slackr
def removeOwnerFromChannel(data, channel_id, auth_u_id, target_u_id):
    for channel in data['channels']:
        if channel_id == channel['channel_id']:
            if target_u_id not in channel['owners']:
                raise ValueError ('User is not an owner of the channel!')
            elif auth_u_id not in channel['owners'] or isServerOwner(data, auth_u_id):
                raise AccessError ('Invalid permission level; you are not an owner of this channel or server.')
            else:
                channel['owners'].remove(target_u_id)
                return True
    raise ValueError ('Channel does not exist.') 
コード例 #6
0
ファイル: channels_helper.py プロジェクト: Mike-SGit/Slackr
def addOwnerToChannel(data, channel_id, auth_u_id, u_id):
    for channel in data['channels']:
        if channel_id == channel['channel_id']:
            if u_id in channel['owners']:
                raise ValueError ('User is already an owner of the channel!')
            elif auth_u_id not in channel['owners'] or isServerOwner(data, auth_u_id):
                raise AccessError ('Invalid permission level; you are not an owner of this channel or server.')
            else:
                channel['owners'].append(u_id)
                return True
    raise ValueError ('Channel does not exist.') 
コード例 #7
0
def unpinMessage(data, token, messageId):
    if not messageExists(data, messageId):
        raise ValueError("That message does not exist")
    u_id = getUserFromToken(token)
    # Check whether user has the permission to pin
    for channels in data['channels']:
        for message in channels['messages']:
            if message['message_id'] == messageId:
                cid = channels['channel_id']
    present = False
    for channels in data['channels']:
        #if channels['channel_id'] == cid:
        #print(channels['members'])
        #print("and we have")
        #print(u_id)
        for members in channels['members']:
            if members == str(u_id):
                #print("found him")
                present = True
            #print(members)
    if present == False:
        raise AccessError("user is not a part of that channel")
    for user in data['users']:
        if user['u_id'] == u_id:
            if user['is_admin'] == 3:
                raise ValueError(
                    'The authorised user is not an admin or owner')
    ispinned = isPinned(data, messageId)
    if ispinned == False:
        raise ValueError('That message is not yet pinned')
    #get the channels id
    for channel in data['channels']:
        for message in channel['messages']:
            if messageId == message['message_id']:
                cId = channel['channel_id']
                #userIsInChannel(data, cId, u_id)
                if isUserinChannelbool(data, cId, u_id) == False:
                    raise AccessError(
                        "User is not in that channel 184msg helper")
                #end of error checking
                message['is_pinned'] = 0
コード例 #8
0
def validate_message(data, message, channelid, token, u_id):
    exists = False
    for channel in data['channels']:
        if str(channel['channel_id']) == str(channelid):
            exists = True
    if exists == False:
        raise ValueError("bad channel Id")
    u_id = getUserFromToken(token)
    #userIsInChannel(data, channelid, u_id)
    if isUserinChannelbool(data, channelid, u_id) == False:
        raise AccessError("User is not in that channel 184msg helper")
    if len(message) > 1000:
        raise ValueError(
            "ValueError when:Message is more than 1000 characters")
コード例 #9
0
def validate_messageLater(data, message, channelid, token, timeSend, Realtime):
    if channelid in data['channels']:
        pass
    else:
        raise ValueError("invalid token")
    u_id = getUserFromToken(token)
    #userIsInChannel(data, channelid, u_id)
    if isUserinChannelbool(data, channelid, u_id) == False:
        raise AccessError("User is not in that channel 184msg helper")

    #value error: Time sent is a time in the past
    #Value Error time sent is in past
    if len(message) > 1000:
        raise ValueError(
            "ValueError when:Message is more than 1000 characters")
コード例 #10
0
def standupSendFunc(data, token, channel_id, message):
    u_id = getUserFromToken(token)
    if channelExists(data, channel_id) is False:
        raise ValueError("Channel ID is not a valid channel.")
    if userIsInChannel(data, channel_id, u_id) is False:
        return AccessError("User is not in the channel.")
    if len(message) > 1000:
        raise ValueError ("Message exceeds 1000 char limit.")
    if standupStillActive(data, channel_id, u_id):
        alteredMessage = str(u_id) + ":" + message
        for channel in data['channels']:
            if channel == channel_id:
                channel['standup_message'].append(alteredMessage)
    else:
        raise ValueError ("An active standup is not currently running in this channel.")
コード例 #11
0
ファイル: search.py プロジェクト: Mike-SGit/Slackr
def search(data, token, query_str):
    # Decode token to match user
    u_id = getUserFromToken(token)

    matched_mesg = {
        'messages': []
    }

    for ser_chan in data['channels']:
        # Check if user in the channel
        if str(u_id) in str(ser_chan['members']):

            # Find matched message
            # ser_mesg['message'] is the content of a message
            for ser_mesg in ser_chan['messages']:
                raise AccessError('2nd')
                # Match found
                if query_str in ser_mesg['message']:
                    matched_mesg['messages'].append(ser_mesg)

    return matched_mesg
コード例 #12
0
def unreactMessage(data, messageId, reactId, token):
    valid = False
    for channel in data['channels']:
        for message in channel['messages']:
            if messageId == message['message_id']:
                cId = channel['channel_id']
                valid = True
    if valid == False:
        raise ValueError("Didnt find message")
    u_id = getUserFromToken(token)
    #userIsInChannel(data, cId, u_id)
    if isUserinChannelbool(data, cId, u_id) == False:
        raise AccessError("User is not in that channel 184msg helper")
    if reactId != 1:
        raise ValueError("invalid reactId")
    # reacted = False
    for channel in data['channels']:
        for message in channel['messages']:
            if message['message_id'] == messageId:
                if message['is_reacted'] != reactId:
                    raise ValueError("does not have that react id")
                message['is_reacted'] = 0
コード例 #13
0
def pinMessage(data, token, messageId):
    if not messageExists(data, messageId):
        raise ValueError("That message does not exist")
    u_id = str(getUserFromToken(token))
    # Check whether user has the permission to pin
    #print("PINNN THISSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS")
    useradmin = False
    #print(u_id)
    for user in data['users']:
        #print(user['u_id'])
        #print("compared to")
        #print(u_id)
        if str(user['u_id']) == str(u_id):
            #print("how'd we get in here lol")
            #print(user['is_admin'])
            if user['is_admin'] == 1:
                useradmin = True
                #print("you're a wizard harry")
            if user['is_admin'] == 2:
                useradmin = True
    #print(useradmin)
    if useradmin == False:
        raise ValueError('user is not an admin')
    ipinned = isPinned(data, messageId)
    if ipinned == True:
        raise ValueError('That message is already pinned')
    #print(ipinned)
    #get the channels id
    for channel in data['channels']:
        for message in channel['messages']:
            if messageId == message['message_id']:
                cId = channel['channel_id']
                #userIsInChannel(data, cId, u_id)
                if isUserinChannelbool(data, cId, u_id) == False:
                    raise AccessError(
                        "User is not in that channel 184msg helper")
                #end of error checking
                message['is_pinned'] = 1
コード例 #14
0
def reactToMessage(data, messageId, reactId, token):
    valid = False
    # channelId = "what the f**k"
    # for channel in data['channels']:
    #     for message in channel['messages']:
    #         if message['message_id'] == messageId:
    #             channelId = channel['channel_id']
    for channel in data['channels']:
        for message in channel['messages']:
            # print("comparing..")
            # print(messageId)
            # print(" ...and ... ")
            # print(message['message_id'])
            if messageId == message['message_id']:
                cId = channel['channel_id']
                valid = True
    if valid == False:
        raise ValueError("Didnt find message")
    u_id = getUserFromToken(token)
    #userIsInChannel(data, cId, u_id)
    if isUserinChannelbool(data, cId, u_id) == False:
        raise AccessError("User is not in that channel 184msg helper")

    #print("AFTER THE DUMB THING ===============================")
    #print(cId)
    if valid == False:
        raise ValueError("Invalid IDs")
    if reactId != 1:
        raise ValueError("invalid reactId")
    # reacted = False
    for channel in data['channels']:
        for message in channel['messages']:
            if message['message_id'] == messageId:
                if message['is_reacted'] == 1:
                    raise ValueError("Already reacted")
                message['is_reacted'] = 1
コード例 #15
0
def checkTokenValidity(token, data):
    if token in data['tokens']:
        return True
    else:
        raise AccessError('Invalid Token!')
コード例 #16
0
ファイル: auth.py プロジェクト: Mike-SGit/Slackr
def checkTokenValidity(token, data):
    if token in data['tokens']:
        if getUserFromToken(request.args.get('token')) is not None:
            return True
    else:
        raise AccessError('Invalid Token!')
コード例 #17
0
 def wrapper(*args, **kwargs):
     raise AccessError('Method unavailable yet')