Mercurial > public > src > rhodecode
comparison pylons_app/controllers/admin.py @ 45:a886f5eba757
implemented admin page login
author | marcink |
---|---|
date | Wed, 07 Apr 2010 17:28:10 +0200 |
parents | d924b931b488 |
children | 9db7782727b3 |
comparison
equal
deleted
inserted
replaced
44:d924b931b488 | 45:a886f5eba757 |
---|---|
7 import os | 7 import os |
8 from mercurial import ui, hg | 8 from mercurial import ui, hg |
9 from mercurial.error import RepoError | 9 from mercurial.error import RepoError |
10 from ConfigParser import ConfigParser | 10 from ConfigParser import ConfigParser |
11 from pylons_app.lib import auth | 11 from pylons_app.lib import auth |
12 from pylons_app.model.forms import LoginForm | |
13 import formencode | |
14 import formencode.htmlfill as htmlfill | |
12 log = logging.getLogger(__name__) | 15 log = logging.getLogger(__name__) |
13 | 16 |
14 class AdminController(BaseController): | 17 class AdminController(BaseController): |
15 | 18 |
16 | 19 |
17 def __before__(self): | 20 def __before__(self): |
18 c.staticurl = g.statics | 21 c.staticurl = g.statics |
19 c.admin_user = True | 22 c.admin_user = session.get('admin_user') |
23 c.admin_username = session.get('admin_username') | |
20 | 24 |
21 def index(self): | 25 def index(self): |
22 # Return a rendered template | 26 # Return a rendered template |
27 if request.POST: | |
28 #import Login Form validator class | |
29 login_form = LoginForm() | |
30 | |
31 try: | |
32 c.form_result = login_form.to_python(dict(request.params)) | |
33 if auth.authfunc(None, c.form_result['username'], c.form_result['password']) and\ | |
34 c.form_result['username'] == 'admin': | |
35 session['admin_user'] = True | |
36 session['admin_username'] = c.form_result['username'] | |
37 session.save() | |
38 return redirect(url('admin_home')) | |
39 else: | |
40 raise formencode.Invalid('Login Error', None, None, | |
41 error_dict={'username':'invalid login', | |
42 'password':'invalid password'}) | |
43 | |
44 except formencode.Invalid, error: | |
45 c.form_result = error.value | |
46 c.form_errors = error.error_dict or {} | |
47 html = render('/admin.html') | |
48 | |
49 return htmlfill.render( | |
50 html, | |
51 defaults=c.form_result, | |
52 encoding="UTF-8" | |
53 ) | |
23 return render('/admin.html') | 54 return render('/admin.html') |
24 | 55 |
25 def repos_manage(self): | 56 def repos_manage(self): |
26 return render('/repos_manage.html') | 57 return render('/repos_manage.html') |
27 | 58 |