X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2FAuthorization.pod;h=b59facf69416ee45665c48f25125ff12d8be3494;hp=66ada75dbe465324f7312486098022815988c6fc;hb=e075db0c03ded5b1d100852f9ba9c040e2499109;hpb=1390ef0ecd30a0dcfe59f212353ed81094fdf64a diff --git a/lib/Catalyst/Manual/Tutorial/Authorization.pod b/lib/Catalyst/Manual/Tutorial/Authorization.pod index 66ada75..b59facf 100644 --- a/lib/Catalyst/Manual/Tutorial/Authorization.pod +++ b/lib/Catalyst/Manual/Tutorial/Authorization.pod @@ -91,6 +91,10 @@ Edit C and add C to the list: Session::State::Cookie /; +B As discussed in MoreCatalystBasics, different versions of +C have used a variety of methods to load the plugins. +You can put the plugins in the C statement if you prefer. + =head2 Add Config Information for Authorization @@ -158,13 +162,13 @@ lines to the bottom of the file: [% # Use $c->check_user_roles() to check authz -%] [% IF c.check_user_roles('user') %] [% # Give normal users a link for 'logout' %] - Logout + User Logout [% END %] [% # Can also use $c->user->check_roles() to check authz -%] [% IF c.check_user_roles('admin') %] [% # Give admin users a link for 'create' %] - Create + Admin Create [% END %]

@@ -191,7 +195,7 @@ updating C to match the following code: =cut - sub url_create : Local { + sub url_create :Chained('base') :PathPart('url_create') :Args(3) { # In addition to self & context, get the title, rating & author_id args # from the URL. Note that Catalyst automatically puts extra information # after the "// to match the following code: # Set the TT template to use $c->stash->{template} = 'books/create_done.tt2'; } else { - # Provide very simple feedback to the user + # Provide very simple feedback to the user. $c->response->body('Unauthorized!'); } } @@ -240,12 +244,12 @@ way to demonstrate that TT templates will not be used if the response body has already been set. In reality you would probably want to use a technique that maintains the visual continuity of your template layout (for example, using the "status" or "error" message feature added in -Part 3). +Part 3 or C to an action that shows an "unauthorized" page). B: If you want to keep your existing C method, you can create a new copy and comment out the original by making it look like a -Pod comment. For example, put something like C<=begin> before C and C<=end> after the closing C<}>. +Pod comment. For example, put something like C<=begin> before +C and C<=end> after the closing C<}>. =head2 Try Out Authentication And Authorization @@ -307,7 +311,7 @@ C<__PACKAGE__-Esetup> statement: "/books/form_create_do", [qw/admin/], ); - __PACKAGE__->deny_access_unless( + __PACKAGE__->allow_access_if( "/books/delete", [qw/user admin/], ); @@ -316,9 +320,10 @@ Each of the three statements above comprises an ACL plugin "rule". The first two rules only allow admin-level users to create new books using the form (both the form itself and the data submission logic are protected). The third statement allows both users and admins to delete -books. The C action will continue to be protected by -the "manually configured" authorization created earlier in this part of -the tutorial. +books; letting users delete but not create book entries may sound odd in +the "real world", but this is just an example. The C +action will continue to be protected by the "manually configured" +authorization created earlier in this part of the tutorial. The ACL plugin permits you to apply allow/deny logic in a variety of ways. The following provides a basic overview of the capabilities: @@ -403,12 +408,12 @@ Then run the Catalyst development server script: Log in as C. Once at the book list, click the "Create" link to try the C action. You should receive a red "Unauthorized!" error message at the top of the list. (Note that in -the example code the "Create" link code in C +the example code the "Admin Create" link code in C is inside an C statement that only displays the list to admin-level users.) If you log in as C you should be able to view the C form and add a new book. -When you are done, use one of the 'Logout' links (or go to the +Use one of the 'Logout' links (or go to the L URL directly) when you are done. @@ -418,7 +423,7 @@ Kennedy Clark, C Please report any errors, issues or suggestions to the author. The most recent version of the Catalyst Tutorial can be found at -L. +L. Copyright 2006-2008, Kennedy Clark, under Creative Commons License (L).