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_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 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 get_owner(self) -> Usuario: usuario = Usuario() usuario.select(self.get_owner_id()) return usuario