Django settings are meant to be immutable, so your issues might be stemming from the way you're changing settings at runtime. Most Django projects that need to adjust settings at runtime do so by keeping the mutable settings in the database (e.g. a separate app in the project), so that's an approach you could try.
On Thursday, June 20, 2013 5:32:31 AM UTC-4, [email protected] wrote: > > Hello all, > > I want to have an application settings modifying the project settings but > it doesn't seems to work. > > For development purpose I need to authenticate users against my > application database. In Production > the authentication is done by Apache, it then sends the REMOTE_USER, > correctly. > > To realize the authentication in production, i am using one middleware, > and one backend as found in > django documentation. > > I would like to have only one setting in the project thesite/settings.py, > a boolean called EXTERNAL_AUTH, > controling the content of AUTHENTICATION_BACKENDS and MIDDLEWARE_CLASSES. > > The code modifying those two variables will stand in my application > my/settings.py, It would then look like this > > from django.conf import settings > if settings.EXTERNAL_AUTH == False: > # Disabling standard login/logout. > settings.LOGIN_REDIRECT_URL='/' > settings.LOGIN_URL='/my/accounts/login/' > settings.LOGOUT_URL='/my/accounts/logout/' > else: > settings.AUTHENTICATION_BACKENDS = ( > ('my.backends.LDAPUserBackend', ) + > settings.AUTHENTICATION_BACKENDS) > > # Insert LDAPUserMiddleware right after AuthenticationMiddleware > index = settings.MIDDLEWARE_CLASSES.index( > "django.contrib.auth.middleware.AuthenticationMiddleware") > settings.MIDDLEWARE_CLASSES = (settings.MIDDLEWARE_CLASSES[:index+1] + > ('my.backends.LDAPUserMiddleware', ) + > settings.MIDDLEWARE_CLASSES[index+1:]) > > EXTERNAL_AUTH is used at different locations in my application, for > example I use it to decide whether or not > I display the "change password" link. > > When I start testing, toggling EXTERNAL_AUTH, the behavior is fuzzy. It > inconsitently redirect me to the accounts/login > even if I'm authenticated through apache. I guess the middleware isn't > called but when I raise an error, the debug page > contradicts this. > > I'm a bit lost. Do you have any hint? > > Regards, > > > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. For more options, visit https://groups.google.com/groups/opt_out.

