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
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()
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
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)
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()
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
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!')
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))
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
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']
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 o Pró-reitor de Ensino Alexandre Tripoli Venção. 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, a abertura do Natal Uniplac 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. </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. </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 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()