Ejemplo n.º 1
0
def createGroup(groupname):
    if not groupname.isalnum():
        raise UserError("Invalid Groupname, Must Be Alphanumeric")
    elif GROUPS.groupnameExists(groupname):
        raise UserError("Group Exists")

    group = Group(groupname)
    GROUPS.addGroup(group)
    return group.serialize()
Ejemplo n.º 2
0
def createUser(username):
    if not username.isalnum():
        raise UserError("Invalid Username, Must Be Alphanumeric")
    elif USERS.usernameExists(username):
        raise UserError("User Exists")

    user = User(username)
    USERS.addUser(user)
    return user.serialize()
Ejemplo n.º 3
0
def addUserToGroup(groupname, username):
    group = GROUPS.getGroup(groupname)
    if group is None:
        raise UserError("Missing Group")

    if not USERS.usernameExists(username):
        raise UserError("User does not exist")

    group.addUser(USERS.getUser(username))
    return group.serialize()
Ejemplo n.º 4
0
def decodeMessage(request):
    message = RequestProtoBuf.Message()

    try:
        message.ParseFromString(request.data)
    except DecodeError:
        raise UserError("Invaid Message Protocol Buffer")

    if message.msg is None or message.msg == '':
        raise UserError("Invaid Message Body")

    fromUser = USERS.getUser(message.frm)
    if fromUser is None:
        raise UserError("Invalid from User")

    return message.msg, fromUser
Ejemplo n.º 5
0
def deleteUser(username):
    if not USERS.usernameExists(username):
        raise UserError("Missing User")

    USERS.deleteUser(username)
    GROUPS.pruneUser(username)

    return None
Ejemplo n.º 6
0
def sendGroupMessage(groupname):
    msg, fromUser = decodeMessage(request)
    toGroup = GROUPS.getGroup(groupname)
    if toGroup is None:
        raise UserError("Missing To Group")

    message = GroupMessage(fromUser, toGroup, msg)
    toGroup.receiveMessage(message, USERS)
    return message.serialize()
Ejemplo n.º 7
0
def sendDirectMessage(username):
    msg, fromUser = decodeMessage(request)
    toUser = USERS.getUser(username)
    if toUser is None:
        raise UserError("Missing To User")

    message = DirectMessage(fromUser, toUser, msg)
    toUser.receiveMessage(message)
    return message.serialize()
Ejemplo n.º 8
0
def listGroups():
    query = request.args.get('q')
    if query:
        starless = query.replace('*', '')
        if starless and not starless.isalnum():
            raise UserError("Invalid Query")

        return GROUPS.filter(query).serialize()
    else:
        return GROUPS.serialize()
Ejemplo n.º 9
0
def listMessages(username):
    user = USERS.getUser(username)
    if user is None:
        raise UserError("Missing User")

    return user.flushMessages()