示例#1
0
def auth_login():

    error_message = []

    user_name = request.forms.get('user_name')
    input_password = request.forms.get('password')

    u = User.get_by_name(user_name)
    print(u)

    # O utilizador nao existe?
    # if u is None or auth.password_matches(input_password, u['password']):
    if u is None:
        error_message.append('Credenciais incorrectas')
    if user_name == '':
        error_message.append('O nome de utilizador esta vazio')
    if input_password == '':
        error_message.append('O campo password esta vazio')
    if len(error_message) > 0:
        return jresp.reply(
                payload=None,
                success=False,
                error_message=error_message
            )
    else:
        db_password = u['password']

        # Validar palavra-passe
        if not auth.password_matches(input_password, db_password):
            error_message.append('Credenciais incorrectas')
            return jresp.reply(
                    payload=None,
                    success=False,
                    error_message=error_message
                )
        # User existe e password esta correcta:
        # criar e gravar token de sessao
        # enviar mensagem com o token de sessao

        new_session_token = auth.generate_session_token()

        new_session = UserSession(
                user_id=u['id'],
                token=new_session_token
            )
        new_session.save()

        # Tudo correu bem:
        payload = {
                'token': new_session_token
                }
        return jresp.reply(
                payload=payload,
                error_message=None,
                success=True
            )
示例#2
0
def singlePlaylist(id):
    payload = [
                {'name': 'Musica 1', 'artist': 'Artista 1'},
                {'name': 'Musica 2', 'artist': 'Artista 2'},
                {'name': 'Musica 3', 'artist': 'Artista 3'},
                {'name': 'Musica 4', 'artist': 'Artista 4'},
                {'name': 'Musica 5', 'artist': 'Artista 5'},
                {'name': 'Musica 6', 'artist': 'Artista 6'},
                {'name': 'Musica 7', 'artist': 'Artista 7'},
                {'name': 'Musica 8', 'artist': 'Artista 8'},
                {'name': 'Musica 9', 'artist': 'Artista 9'},
                {'name': 'Musica 1', 'artist': 'Artista 1'},
                {'name': 'Musica 2', 'artist': 'Artista 2'},
                {'name': 'Musica 3', 'artist': 'Artista 3'},
                {'name': 'Musica 4', 'artist': 'Artista 4'},
                {'name': 'Musica 5', 'artist': 'Artista 5'},
                {'name': 'Musica 6', 'artist': 'Artista 6'},
                {'name': 'Musica 7', 'artist': 'Artista 7'},
                {'name': 'Musica 8', 'artist': 'Artista 8'},
                {'name': 'Musica 9', 'artist': 'Artista 9'},
                {'name': 'Musica 1', 'artist': 'Artista 1'},
                {'name': 'Musica 2', 'artist': 'Artista 2'},
                {'name': 'Musica 3', 'artist': 'Artista 3'},
                {'name': 'Musica 4', 'artist': 'Artista 4'},
                {'name': 'Musica 5', 'artist': 'Artista 5'},
                {'name': 'Musica 6', 'artist': 'Artista 6'},
                {'name': 'Musica 7', 'artist': 'Artista 7'},
                {'name': 'Musica 8', 'artist': 'Artista 8'},
                {'name': 'Musica 9', 'artist': 'Artista 9'},
            ]
    return jresp.reply(response, payload)
示例#3
0
def auth_logout():

    token = request.forms.get('token')

    if not UserSession.token_exists(token):
        error_message.append('A sessao nao existe')
        return jresp.reply(
                payload=None,
                success=False,
                error_message=error_message
            )
    else:
        UserSession.delete_session(token)
示例#4
0
def playlists(id):
    musics_in_playlist = Music.get_all_by_playlist_id(id)

    payload = {'musics': []}

    for m in musics_in_playlist:
        music = {'id': m['id'], 'name': m['name'], 'file_name': m['file_name']}
        payload['musics'].append(music)

    return jresp.reply(
            payload=payload,
            error_message=None,
            success=True
        )
示例#5
0
def check_token():
    token = request.forms.get('token')

    if UserSession.token_exists(token):

        user_id = UserSession.get_user_id_by_token(token)
        user = User.get_by_id(user_id)

        payload = {
                'message': 'A sessao encontra-se activa.',
                'user': {
                    'name': user.name,
                }
                }
        return jresp.reply(
                payload=payload,
                )
    else:
        error_message = [['A sessao nao esta activa']]
        return jresp.reply(
                payload=None,
                success=False,
                error_message=error_message
            )
示例#6
0
def playlists_add():
    token = request.forms.get('token')
    user_id = UserSession.get_user_id_by_token(token)

    playlist_name = request.forms.get('playlist_name')

    playlist = Playlist(name=playlist_name, user_id=user_id)
    playlist.save()

    payload = {'message': ['Playlist adicionada com sucesso']}

    return jresp.reply(
            payload=payload,
            error_message=None,
            success=True
        )
示例#7
0
def musics():
    token = request.forms.get('token')

    musics = Music.get_all()

    payload = {'musics': []}

    for music in musics:
        m = {'id': music.id, 'name': music.name, 'file_name': music.file_name}
        payload['musics'].append(m)

    return jresp.reply(
            payload=payload,
            error_message=None,
            success=True
        )
示例#8
0
def musics():

    token = request.forms.get('token')
    user_id = UserSession.get_user_id_by_token(token)
    playlists = Playlist.get_all_by_user_id(user_id)

    payload = {'playlists': []}

    for playlist in playlists:
        p = {'id': playlist.id, 'name': playlist.name}
        payload['playlists'].append(p)

    return jresp.reply(
            payload=payload,
            error_message=None,
            success=True
        )
示例#9
0
def create_account():
    print('create account')
    error_message = []

    name = request.forms.get('name', '')
    password = request.forms.get('password', '')
    password_confirmation = request.forms.get('password_confirmation', '')
    email = request.forms.get('email', '')

    # Validaçao:
    if name == '':
        error_message.append('O nome de Utilizador esta vazio')
    if password == '':
        error_message.append('O campo password esta vazio')
    if password is not None and len(password) > 6:
        error_message.append('A password tem de ter pelo menos 6 caracteres')
    if password_confirmation == '':
        error_message.append('O campo confirmaçao de password esta vazio')
    if password != password_confirmation:
        error_message.append('As passwords nao sao iguais')

    # http://stackoverflow.com/questions/8022530/
    # python-check-for-valid-email-address/8022584#8022584
    if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
        error_message.append('O endereço de email nao e valido')

    # Ja existe algum utilizador na base de dados com este nome?
    if name != '':
        u = User.get_by_name(name)
        if u is not None:
            error_message.append('O nome de utilizador ja existe')
    # Ja existe algum utilizador na base de dados com este Email?
    if email != '':
        u = User.get_by_email(email)
        if u is not None:
            error_message.append('O email ja existe')

    # Alguma das Validaç~oes devolveu erro?
    if len(error_message) > 0:
        return jresp.reply(
                payload=None,
                success=False,
                error_message=error_message
            )
    else:
        # 1->Inserir o novo utilizador
        # 2->Enviar o email
        hashed_password = auth.hash_password(password)

        try:
            user = User(name=name, email=email, password=hashed_password)
            user.save()
        except:
            error_message.append('Erro ao comunicar com a base de dados!')
            return jresp.reply(
                    response=response,
                    payload=None,
                    success=False,
                    error_message=error_message,
                    status=500
                )
        '''
        from services import mailgun as mail
        try:
            mail.send(template='account_confirmation', name=name, email=email)
        except:
            error_message.append('Erro ao enviar email!')
            return jresp.reply(
                    response=response,
                    payload=None,
                    success=False,
                    error_message=error_message
                )
        '''
        # Tudo correu bem:
        payload = [{
                'message': 'Conta de utilizador criada com sucesso.'
                }]

        return jresp.reply(payload=payload)