Olivier,

Look at this - 
http://stackoverflow.com/questions/1057149/django-users-and-authentication-from-external-source

I imagine your problem comes from the fact that django.contrib.auth
User is tied to the DB

Sam

On Jan 18, 12:09 am, Olivier Détour <chino540...@gmail.com> wrote:
> 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