Exemple #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
Exemple #2
0
def admin_cadastro():
    """ Página para cadastro de usuários """
    usuario = Usuario()
    usuario.nivel = Roles.usuario.value
    if Auth().is_allowed('cadastra.usuario', usuario):
        return render_template('admin_form_usuario.html', usuario=usuario)
    else:
        return admin_403_response()
Exemple #3
0
def cadastrar():
    # Cadastro via ajax
    usuario = Usuario()
    usuario.nivel = Roles.usuario.value
    populate_from_request(usuario)

    if not Usuario.valid_pass(request.form['senha']):
        return json_response(message='A senha deve ter pelo menos 6 dígitos',
                             data=[]), 400

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

    usuario.senha = Usuario.hash(request.form['senha'])
    usuario.data_cadastro = datetime.datetime.now().strftime(
        "%Y-%m-%d %H:%M:%S")
    identifier = usuario.insert()
    if identifier > 0:
        Logs(0, usuario.identifier,
             usuario.nome + '(' + usuario.cpf + ')' + ' fez o cadastro',
             'usuario', usuario.identifier,
             datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")).insert()
        return json_response(message='Cadastrado realizado!',
                             data=[usuario],
                             redirect=url_for('usuarios.entrar')), 201
    else:
        return json_response(message='Não foi possível cadastrar sua conta',
                             data=[]), 400
Exemple #4
0
def admin_busca():
    usuario = Usuario()
    busca = request.args.get('search[value]')
    busca = '%' + busca + '%'
    inicio = int(request.args.get('start'))
    fim = int(request.args.get('length'))
    draw = int(request.args.get('draw'))
    resultados = usuario.search(busca, inicio, fim)
    total = usuario.total()
    filtrado = usuario.count(busca)
    return data_tables_response(draw, total, filtrado, resultados)
Exemple #5
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()
    def insert_dummy():
        from mural.mod_base.migration_images import banner_1, banner_2
        usuario = Usuario()
        usuario.select_by_login('000.000.000-00')
        if usuario.identifier > 0:

            banner = Banner(identifier=0, usuario_id=usuario.identifier, redireciona_url='http://novoportal.uniplaclages.edu.br/web/app/Edu/PortalProcessoSeletivo/?c=1&f=1&ct=14#/es/informacoes',
                            imagem=banner_1, ordem=0, data_cadastro='2019-01-01', data_atualizacao='2019-01-01')
            banner.insert()
            banner = Banner(identifier=0, usuario_id=usuario.identifier, redireciona_url='https://paginas.uniplaclages.edu.br/pos-graduacao-2019',
                            imagem=banner_2, data_cadastro='2019-01-01', data_atualizacao='2019-01-01')
            banner.insert()
Exemple #7
0
def admin_cadastrar():
    """ Cadastro de usuários """
    auth = Auth()
    if auth.is_allowed('cadastra.usuario'):
        usuario = Usuario()
        populate_from_request(usuario)

        if not Usuario.valid_pass(request.form['senha']):
            return json_response(
                message='A senha deve ter pelo menos 6 dígitos', data=[]), 400

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

        usuario.senha = Usuario.hash(request.form['senha'])
        usuario.data_cadastro = datetime.datetime.now().strftime(
            "%Y-%m-%d %H:%M:%S")
        if usuario.insert():
            Logs(
                0, auth.user.identifier, auth.user.nome + '(' + auth.user.cpf +
                ')' + ' cadastrou 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 cadastrado',
                                 data=[usuario],
                                 redirect=url_for('usuarios.admin_lista'))
        else:
            return json_response(
                message='Não foi possível cadastrar o usuário', data=[]), 400
    else:
        return json_response(
            message='Você não tem permissão para realizar esta ação',
            data=[]), 403
Exemple #8
0
def migrate_database():
    print('Aguarde...')
    # Cria tabelas
    Usuario.create_table()
    Aviso.create_table()
    Noticia.create_table()
    ImagemNoticia.create_table()
    Anuncio.create_table()
    ImagemAnuncio.create_table()
    Universidade.create_table()
    Banner.create_table()
    Logs.create_table()
    # Adiciona usuários e dados da universidade
    Usuario.insert_dummy()
    Universidade.insert_dummy()
    Banner.insert_dummy()
    Aviso.insert_dummy()
    Noticia.insert_dummy()
    Anuncio.insert_dummy()
    print('Dados inseridos!')
Exemple #9
0
def login():
    cpf = request.form.get('login')
    senha = request.form.get('senha')
    usuario = Usuario()
    usuario.select_by_login(cpf)
    if usuario.identifier > 0 and Usuario.check_hash(senha, usuario.senha):
        usuario.permanent = True
        session['user'] = usuario.serialize()
        session['time'] = time.time()
        Logs(0, usuario.identifier,
             usuario.nome + ' (' + usuario.cpf + ')' + ' entrou no sistema',
             'usuario', usuario.identifier,
             datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")).insert()
        return redirect(url_for('home.admin_home'))
    return redirect(url_for('usuarios.entrar', erro=1))
Exemple #10
0
 def __init__(self):
     from mural.mod_usuarios import Usuario
     Auth.user = Usuario()
     if 'user' in session:
         userid = session['user']['identifier']
         Auth.user.select(userid)
 def insert_dummy():
     usuario = Usuario()
     usuario.select_by_login('000.000.000-00')
     if usuario.identifier > 0:
         aviso = Aviso(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='O Novembro Azul',
             conteudo=
             """<p>Em novembro todo mundo se une para conscientização sobre o câncer de próstata: 
                       <strong>O Novembro Azul</strong></p><p>O Centro Especializado em Reabilitação - CER II 
                       Uniplac, juntamento com a Comissão Interna de Prevenção de Acidentes - CIPA Uniplac 2019/2020, 
                       também estão nessa luta.</p><p>E temos a honra de convidar todos os funcionários para o
                       evento <strong>'Novembro Azul na Prevenção do Câncer de Próstata'</strong>, com o Dr.
                       Pedro Schurmann.</p>""",
             data_entrada='2019-11-01',
             data_saida='2019-12-31',
             data_cadastro='2019-11-01',
             data_atualizacao='2019-11-01')
         aviso.insert()
         aviso = Aviso(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Aulas canceladas',
             conteudo=
             """<p>Devido ao temporal ocorrido no dia 25/11, informamos que as aulas dos dias 
                       26/11 e 27/11 estão canceladas.</p>""",
             data_entrada='2019-11-25',
             data_saida='2019-12-31',
             data_cadastro='2019-11-25',
             data_atualizacao='2019-11-25')
         aviso.insert()
         aviso = Aviso(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Provas adiadas',
             conteudo=
             """<p>Devido ao temporal ocorrido no dia 25/11, informamos que as provas marcadas 
                       para os dias 26/11 e 27/11 serão remarcadas para a próxima semana.</p>""",
             data_entrada='2019-11-25',
             data_saida='2019-12-31',
             data_cadastro='2019-11-25',
             data_atualizacao='2019-11-25')
         aviso.insert()
         aviso = Aviso(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Palestra de TI',
             conteudo=
             """<p>Informamos que hávera uma palestra dia 03/12 com a presença do 
                       Bill Gates.</p>""",
             data_entrada='2019-11-25',
             data_saida='2019-12-31',
             data_cadastro='2019-11-25',
             data_atualizacao='2019-11-25')
         aviso.insert()
         aviso = Aviso(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Palestra de Inovação e Empreededorismo',
             conteudo=
             """<p>Informamos que hávera uma palestra dia 04/12 com a presença do 
                       Elon Musk.</p>""",
             data_entrada='2019-11-25',
             data_saida='2019-12-31',
             data_cadastro='2019-11-25',
             data_atualizacao='2019-11-25')
         aviso.insert()
 def get_owner(self) -> Usuario:
     usuario = Usuario()
     usuario.select(self.get_owner_id())
     return usuario
Exemple #13
0
def populate_from_request(usuario: Usuario):
    # Atribui valores do post ao model
    usuario.nome = request.form['nome']
    usuario.email = request.form['email']
    usuario.telefone = request.form['telefone']
    usuario.cpf = request.form['cpf']
Exemple #14
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
 def insert_dummy():
     from mural.mod_base.migration_images import anuncio_3, anuncio_4
     usuario = Usuario()
     usuario.select_by_login('000.000.000-00')
     if usuario.identifier > 0:
         anuncio = Anuncio(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Vaga para desenvolvedor Python',
             conteudo=
             """Estamos procurando um desenvolvedor Backend que também esteja em busca de 
                                   transformar a forma com qual os brasileiros lidam com seus investimentos. Desenvolvedor 
                                   este que participará de toda a criação do produto, podendo ajudar nas discussões e 
                                   decisões que serão tomadas, assim como tendo a total liberdade para propor inovações e 
                                   melhores formas de atender nossos clientes.""",
             aprovado=True,
             data_entrada='2019-11-25',
             data_saida='2019-12-31',
             data_cadastro='2019-11-01',
             data_atualizacao='2019-11-01')
         anuncio.insert()
         anuncio = Anuncio(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Vaga para desenvolvedor JavaScript',
             conteudo=
             """Estamos procurando um desenvolvedor Frontend que também esteja em busca de 
                                   transformar a forma com qual os brasileiros lidam com seus investimentos. Desenvolvedor 
                                   este que participará de toda a criação do produto, podendo ajudar nas discussões e 
                                   decisões que serão tomadas, assim como tendo a total liberdade para propor inovações e 
                                   melhores formas de atender nossos clientes.""",
             aprovado=True,
             data_entrada='2019-11-23',
             data_saida='2019-12-31',
             data_cadastro='2019-11-01',
             data_atualizacao='2019-11-01')
         anuncio.insert()
         anuncio = Anuncio(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Vaga para desenvolvedor Fullstack',
             conteudo=
             """Estamos procurando um desenvolvedor Fullstack que também esteja em busca de 
                                   transformar a forma com qual os brasileiros lidam com seus investimentos. Desenvolvedor 
                                   este que participará de toda a criação do produto, podendo ajudar nas discussões e 
                                   decisões que serão tomadas, assim como tendo a total liberdade para propor inovações e 
                                   melhores formas de atender nossos clientes.""",
             aprovado=True,
             data_entrada='2019-11-24',
             data_saida='2019-12-31',
             data_cadastro='2019-11-01',
             data_atualizacao='2019-11-01')
         anuncio.insert()
         imagem = ImagemAnuncio(identifier=0,
                                anuncio_id=anuncio.identifier,
                                legenda='full.jpg',
                                imagem=anuncio_3,
                                ordem=0,
                                data_cadastro='2019-11-24',
                                data_atualizacao='2019-11-24')
         imagem.insert()
         anuncio = Anuncio(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Vaga para desenvolvedor Java',
             conteudo=
             """Estamos procurando um desenvolvedor Backend que também esteja em busca de 
                                   transformar a forma com qual os brasileiros lidam com seus investimentos. Desenvolvedor 
                                   este que participará de toda a criação do produto, podendo ajudar nas discussões e 
                                   decisões que serão tomadas, assim como tendo a total liberdade para propor inovações e 
                                   melhores formas de atender nossos clientes.""",
             aprovado=True,
             data_entrada='2019-11-24',
             data_saida='2019-12-31',
             data_cadastro='2019-11-01',
             data_atualizacao='2019-11-01')
         anuncio.insert()
         imagem = ImagemAnuncio(identifier=0,
                                anuncio_id=anuncio.identifier,
                                legenda='java.jpg',
                                imagem=anuncio_4,
                                ordem=0,
                                data_cadastro='2019-11-24',
                                data_atualizacao='2019-11-24')
         imagem.insert()
         anuncio = Anuncio(
             identifier=0,
             usuario_id=usuario.identifier,
             titulo='Vaga para engenheiro de software',
             conteudo=
             """Estamos procurando um engenheiro de software que também esteja em busca de 
                                   transformar a forma com qual os brasileiros lidam com seus investimentos. Desenvolvedor 
                                   este que participará de toda a criação do produto, podendo ajudar nas discussões e 
                                   decisões que serão tomadas, assim como tendo a total liberdade para propor inovações e 
                                   melhores formas de atender nossos clientes.""",
             aprovado=True,
             data_entrada='2019-11-24',
             data_saida='2019-12-31',
             data_cadastro='2019-11-01',
             data_atualizacao='2019-11-01')
         anuncio.insert()
    def insert_dummy():
        from mural.mod_base.migration_images import noticia_1, noticia_1_2, noticia_2
        usuario = Usuario()
        usuario.select_by_login('000.000.000-00')
        if usuario.identifier > 0:
            noticia = Noticia(
                identifier=0,
                usuario_id=usuario.identifier,
                titulo='Uniplac abre o natal lageano',
                conteudo=
                """<p>O espírito de Natal chegou na Uniplac na noite desta quarta, 
                                      20 de novembro. A Orquestra Soprano encantou a todos com suas canções natalinas. 
                                      O Papai Noel surgiu em meio às luzes do túnel iluminado sob os aplausos de toda a 
                                      comunidade acadêmica. “Natal é o momento de refletirmos e agradecermos por todas as 
                                      conquistas que tivemos neste ano. Que o espírito natalino esteja em cada um de nós desde 
                                      hoje”, comentou&nbsp;o Pró-reitor de Ensino Alexandre Tripoli Venção. &nbsp; Alunos, 
                                      funcionários e professores, trouxeram familiares para a abertura do Natal Uniplac. 
                                      "Temos como objetivo ter sempre as famílias aqui dentro. E estamos felizes pelo start 
                                      ter sido dado em um evento de Natal", afirmou a Pró-Reitora de Pesquisa, Extensão e 
                                      Pós- graduação Lilia Kanan. Além das luzes, música e do Papai Noel, &nbsp;a abertura do 
                                      Natal Uniplac &nbsp;trouxe o lançamento da campanha "Árvore dos Sonhos". "Nossa árvore 
                                      foi montada com enfeites que trazem o nome de idosos do Asilo Vicentino", conta o 
                                      Reitor Kaio Amarante. "Cada pessoa pode adotar um idoso e presenteá-lo com seu desejo. 
                                      Queremos atender a todos eles", concluiu o Reitor ressaltando que a solidariedade é o 
                                      verdadeiro sentido do Natal.</p>""",
                data_entrada='2019-11-24',
                data_saida='2019-12-31',
                data_cadastro='2019-11-23',
                data_atualizacao='2019-11-23')
            noticia.insert()
            imagem = ImagemNoticia(identifier=0,
                                   noticia_id=noticia.identifier,
                                   legenda='natal.jpg',
                                   imagem=noticia_1,
                                   ordem=0,
                                   data_cadastro='2019-11-23',
                                   data_atualizacao='2019-11-23')
            imagem.insert()
            imagem = ImagemNoticia(identifier=0,
                                   noticia_id=noticia.identifier,
                                   legenda='nat2.jpg',
                                   imagem=noticia_1_2,
                                   ordem=0,
                                   data_cadastro='2019-11-23',
                                   data_atualizacao='2019-11-23')
            imagem.insert()

            noticia = Noticia(
                identifier=0,
                usuario_id=usuario.identifier,
                titulo='Biomedicina festeja 10 anos',
                conteudo=
                """<p>O curso de biomedicina foi criado e, em 2009, quando a primeira turma 
                                      ingressou na Uniplac. Durante esses dez anos de curso, mais de 100 biomédicos já foram 
                                      formados e atuam nas mais diversas áreas da biomedicina.&nbsp;</p><p>Atualmente, as 
                                      áreas de atuação mais comuns e que a Uniplac habilita são as análises clínicas, a 
                                      acupuntura, a estética e o banco de sangue, além da docência e da pesquisa.&nbsp;</p>
                                      <p>O curso tem duração de quatro anos, no período noturno, com estágio realizado em 
                                      ambiente real e com amostras reais. "O aluno sai preparado para o mercado de trabalho", 
                                      conta o coordenador, Professor&nbsp;Alexandre Lemos de Souza. "Sobre a data de hoje sinto 
                                      muito orgulho, pois dos dez anos do curso passei sete aqui dentro. Sendo quatro como 
                                      acadêmico e três como professor/coordenador", conta emocionado. "Portanto, tenho certeza 
                                      que nosso curso cresceu e se hoje chegamos onde chegamos, com certeza a Biomedicina 
                                      uniplac foi essencial nesse processo", conclui.</p>""",
                data_entrada='2019-11-25',
                data_saida='2019-12-31',
                data_cadastro='2019-11-23',
                data_atualizacao='2019-11-23')
            noticia.insert()
            imagem = ImagemNoticia(identifier=0,
                                   noticia_id=noticia.identifier,
                                   legenda='bio.jpg',
                                   imagem=noticia_2,
                                   ordem=0,
                                   data_cadastro='2019-11-23',
                                   data_atualizacao='2019-11-23')
            imagem.insert()