Acesso restrito para ips

Classe aonde você trata os ips que são permitidos o uso.

class NeedToLoginMiddleware(object): 
    def process_request(self, request):
        ip = request.META['REMOTE_ADDR']
        
        if not ip in ALLOWED_IP_BLOCKS: 
            #ip check
            
            if not request.user.is_authenticated(): 
                #if ip check failed, make authentication check 
                return HttpResponseRedirect(...)
        
        return None

Você pode até criar um model aonde você cadastrará os ips que serão permitidos utilizar ao invés de deixar no settings.

ALLOWED_IP_BLOCKS = [......]

MIDDLEWARE_CLASSES = (
    ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'path.to.my.NeedToLoginMiddleware',
    ...
)
Share on telegram
Telegram
Share on twitter
Twitter
Share on facebook
Facebook
Share on linkedin
LinkedIn
Share on pinterest
Pinterest

Youtuber, Programador, investidor, fanatico em tecnologia, fã de dragon ball, artista marcial, futebolista amador e gamer nas horas vagas.

Atuando desde 2007 na área de programação web.

 

Conhecimento em diversas linguagens, frameworks e outros:

 

  • Python/Django
  • Ruby/Ruby on Rails
  • PHP, Java
  • C/C++
  • C#
  • Shellscript
  • HTML/HTML5
  • CSS/CSS3
  • JavaScript
  • Jquery, XML/JSON
  • MySQL
  • PostgreSQL
  • Oracle

 

Já atuei diversas vezes em manutenção e reparo de computadores, atualmente monto os meus por hobby.

 

Conhecimento em servidores linux, softwares já utilizados para aplicações online:

  • nginx
  • apache
  • supervisor
  • bind
  • iptables
  • gunicorn

 

Conhecimento em servidores da Amazon AWS (S3, EC2, Route53, Lambda, SQS).

 

Projeto open source que mantenho para criação de servidores com python/django e php: Acessar

 

Conhecimento em e-commerce, algumas integrações realizadas: Cielo, PagSeguro, Bcash, boleto Santander e débito online e boleto do Banco do Brasil.

 

Plataformas open source utilizadas: prestashop e wordpress.

 

Sistemas operacionais: Windows, Linux(Ubuntu, Debian e CentOS) e Mac OS X

 

Hobby em desenvolvimento de jogos utilizando Unity 3d, Unreal Engine 4, Cry Engine 5 e Game Maker.

 

Desenvolvimento de aplicativos mobile utilizando Ionic e cordova para Android e Firefox OS. 

Categorias

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *