1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
---|
2 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
---|
3 | <html xmlns="http://www.w3.org/1999/xhtml" |
---|
4 | xmlns:py="http://genshi.edgewall.org/" |
---|
5 | xmlns:xi="http://www.w3.org/2001/XInclude"> |
---|
6 | |
---|
7 | <xi:include href="master.html" /> |
---|
8 | |
---|
9 | <head> |
---|
10 | <meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/> |
---|
11 | <title>Learning TurboGears 2.0: Quick guide to authentication.</title> |
---|
12 | </head> |
---|
13 | |
---|
14 | <body> |
---|
15 | ${sidebar_top()} |
---|
16 | ${sidebar_bottom()} |
---|
17 | <div id="getting_started"> |
---|
18 | <h2>Authentication & Authorization in a TG2 site.</h2> |
---|
19 | <p>If you have access to this page, this means you have enabled authentication and authorization |
---|
20 | in the quickstart to create your project.</p> |
---|
21 | <p> |
---|
22 | The paster command will have created a few specific controllers for you. But before you |
---|
23 | go to play with those controllers you'll need to make sure your application has been |
---|
24 | properly bootstapped. |
---|
25 | This is dead easy, here is how to do this: |
---|
26 | </p> |
---|
27 | |
---|
28 | <span class="code"> |
---|
29 | paster setup-app development.ini |
---|
30 | </span> |
---|
31 | |
---|
32 | <p> |
---|
33 | inside your application's folder and you'll get a database setup (using the preferences you have |
---|
34 | set in your development.ini file). This database will also have been prepopulated with some |
---|
35 | default logins/passwords so that you can test the secured controllers and methods. |
---|
36 | </p> |
---|
37 | <p> |
---|
38 | To change the comportement of this setup-app command you just need to edit the <span class="code">websetup.py</span> file. |
---|
39 | </p> |
---|
40 | <p> |
---|
41 | Now try to visiting the <a href="${tg.url('/manage_permission_only')}">manage_permission_only</a> URL. You will be challenged with a login/password form. |
---|
42 | </p> |
---|
43 | <p> |
---|
44 | Only managers are authorized to visit this method. You will need to log-in using: |
---|
45 | <p> |
---|
46 | <span class="code"> |
---|
47 | login: manager |
---|
48 | </span> |
---|
49 | </p> |
---|
50 | <p> |
---|
51 | <span class="code"> |
---|
52 | password: managepass |
---|
53 | </span> |
---|
54 | </p> |
---|
55 | </p> |
---|
56 | <p> |
---|
57 | Another protected resource is <a href="${tg.url('/editor_user_only')}">editor_user_only</a>. This one is protected by a different set of permissions. |
---|
58 | You will need to be <span class="code">editor</span> with a password of <span class="code">editpass</span> to be able to access it. |
---|
59 | </p> |
---|
60 | <p> |
---|
61 | The last kind of protected resource in this quickstarted app is a full so called <a href="${tg.url('/secc')}">secure controller</a>. This controller is protected globally. |
---|
62 | Instead of having a @require decorator on each method, we have set an allow_only attribute at the class level. All the methods in this controller will |
---|
63 | require the same level of access. You need to be manager to access <a href="${tg.url('/secc')}">secc</a> or <a href="${tg.url('/secc/some_where')}">secc/some_where</a>. |
---|
64 | </p> |
---|
65 | </div> |
---|
66 | </body> |
---|
67 | </html> |
---|