up

2010/1/16 Détour Olivier <chino540...@gmail.com>:
> Hi,
> I would create my own auth backend. I tried to understand and trace
> source code.
> I want to create an internal DB with SHA1 and username.
> But I cannot login, Django says me I do not set DB ENGINE. I would not
> use something like MySQL or any DB Engine.
>
> Here is my source code:
> mybackend.py:
>
>
> from django.contrib.auth.models import User
> from django.contrib.auth.backends    import RemoteUserBackend
>
>
> class MyUser (User):
>  def save (self):
>    """saving to DB disabled"""
>    pass
>
>  objects = None # we cannot really use this w/o local DB
>  username = ""  # and all the other properties likewise.
>                 # They're defined as model.CharField or similar,
>                 # and we can't allow that
>
>  def get_group_permissions (self):
>    """If you don't make your own permissions module,
>       the default also will use the DB. Throw it away"""
>    return [] # likewise with the other permission defs
>
>  def get_and_delete_messages (self):
>    """Messages are stored in the DB. Darn!"""
>    return []
>
> class WWWBackend (RemoteUserBackend):
>  # Create a User object if not already in the database?
>  create_unknown_user = False
>
>  def get_user (self, user_id):
>    user = somehow_create_an_instance_of(MyUser, user_id)
>    return user
>
>  def authenticate (self, username=None, password=None):
>    if username == "lol" and password == "lol":
>      user = MyUser(username=username, password=password)
>      return user
>    return None
>
> my view.py:
>
> from django import forms
> from django.core.context_processors import csrf
> from django.template import RequestContext, loader
> from django.http import HttpResponse, HttpResponseRedirect
> from django.contrib.auth import authenticate, login
>
> #! Form Upload Object
> class LoginForm (forms.Form):
>  user     = forms.CharField(widget = forms.TextInput)
>  password = forms.CharField(widget = forms.PasswordInput)
>
> def index(request):
>  if request.method == 'POST':
>    form = LoginForm(request.POST)
>    if form.is_valid():
>      # FIXME: Check if file is good.
>      #handle_uploaded_torrent(request.FILES['file'])
>      username = request.POST['user']
>      password = request.POST['password']
>      user = authenticate(username=username, password=password)
>      if user is not None:
>        login(request, user)
>
>      return HttpResponseRedirect('/')
>  else:
>    form = LoginForm()
>
>  t = loader.get_template('template/index.html')
>  c = RequestContext(request, {
>      'login_form': form,
>  })
>  return HttpResponse(t.render(c))
>
>
> Thanks for reponses,
> Regards,



-- 
Olivier Détour
Sent from Reserved, ***
-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.


Reply via email to