コード例 #1
0
def admin_remover(identifier: int):
    usuario = Usuario()
    usuario.select(identifier)
    auth = Auth()
    if usuario.identifier > 0:
        if auth.is_allowed('remove.usuario', usuario):
            if usuario.delete():
                Logs(
                    0, auth.user.identifier, auth.user.nome + '(' +
                    auth.user.cpf + ')' + ' removeu o usuário ' +
                    usuario.nome + ' (' + usuario.cpf + ')', 'usuario',
                    usuario.identifier,
                    datetime.datetime.now().strftime(
                        "%Y-%m-%d %H:%M:%S")).insert()
                return json_response(message='Usuário removido!',
                                     data=[],
                                     redirect=url_for('usuarios.admin_lista'))
            else:
                return json_response(
                    message='Não foi possível remover o usuário', data=[]), 400
        else:
            return json_response(
                message='Você não tem permissão para realizar esta ação',
                data=[]), 403
    else:
        return json_response(message='Usuário não encontrado', data=[]), 404
コード例 #2
0
def admin_editar(identifier: int):
    """ Edição de usuários """
    usuario = Usuario()
    usuario.select(identifier)
    auth = Auth()
    if usuario.identifier > 0:
        if auth.is_allowed('edita.usuario', usuario):
            populate_from_request(usuario)
            # Apenas usuários que podem editar qualquer usuário (e não apenas si mesmo) podem alterar o nível de perm.
            if auth.is_allowed('edita.usuario') and 'nivel' in request.form:
                usuario.nivel = int(request.form['nivel'])

            # Se estiver alterando o próprio perfil, solicita senha
            if auth.user.identifier == usuario.identifier:
                if 'antiga' not in request.form or len(
                        request.form['antiga']) == 0:
                    return json_response(message='Informe sua senha atual',
                                         data=[]), 400
                elif not Usuario.check_hash(request.form['antiga'],
                                            usuario.senha):
                    return json_response(message='Senha atual incorreta',
                                         data=[]), 400

            if usuario.login_exists(usuario.cpf, usuario.identifier):
                return json_response(
                    message='O CPF já está em uso, utilize outro',
                    data=[]), 400

            # Altera senha apenas se for enviado um valor novo
            if 'senha' in request.form and len(request.form['senha']) > 0:
                if not Usuario.valid_pass(request.form['senha']):
                    return json_response(
                        message='A senha deve ter pelo menos 6 dígitos',
                        data=[]), 400
                else:
                    usuario.senha = Usuario.hash(request.form['senha'])
                    usuario.update_password()

            usuario.data_atualizacao = datetime.datetime.now().strftime(
                "%Y-%m-%d %H:%M:%S")
            if usuario.update():
                Logs(
                    0, auth.user.identifier, auth.user.nome + '(' +
                    auth.user.cpf + ')' + ' editou o usuário ' + usuario.nome +
                    ' (' + usuario.cpf + ')', 'usuario', usuario.identifier,
                    datetime.datetime.now().strftime(
                        "%Y-%m-%d %H:%M:%S")).insert()
                return json_response(message='Usuário atualizado!',
                                     data=[usuario])
            else:
                return json_response(
                    message='Não foi possível editar o usuário', data=[]), 400
        else:
            return json_response(
                message='Você não tem permissão para realizar esta ação',
                data=[]), 403
    else:
        return json_response(message='Usuário não encontrado', data=[]), 404
コード例 #3
0
def admin_edicao(identifier: int):
    """ Página para edição de usuários """
    usuario = Usuario()
    usuario.select(identifier)
    if usuario.identifier > 0:
        if Auth().is_allowed('edita.usuario', usuario):
            return render_template('admin_form_usuario.html', usuario=usuario)
        else:
            return admin_403_response()
    else:
        return admin_404_response()
コード例 #4
0
 def get_owner(self) -> Usuario:
     usuario = Usuario()
     usuario.select(self.get_owner_id())
     return usuario