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;fp=lib%2FCatalyst%2FManual%2FTutorial%2FAuthorization.pod;h=fce6161619b09cb046ac8b392d37005ac6184207;hp=7eb2a4e9911b59203d045b1dad7508a17a56ad7c;hb=3b1fa91be1d89d2297aa9e8e83462344d9cd9820;hpb=325bc0fd9f3c14fc336ddc74fdaa42e18aa3b4fe diff --git a/lib/Catalyst/Manual/Tutorial/Authorization.pod b/lib/Catalyst/Manual/Tutorial/Authorization.pod index 7eb2a4e..fce6161 100644 --- a/lib/Catalyst/Manual/Tutorial/Authorization.pod +++ b/lib/Catalyst/Manual/Tutorial/Authorization.pod @@ -80,24 +80,32 @@ Edit C and add C to the list: # Load plugins use Catalyst qw/-Debug - ConfigLoader - Static::Simple + ConfigLoader + Static::Simple - StackTrace + StackTrace - Authentication - Authorization::Roles + Authentication + Authorization::Roles - Session - Session::Store::FastMmap - Session::State::Cookie - /; + Session + Session::Store::FastMmap + 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. +Once again (remain sharp, by now you should be getting the hang of things) +include this additional plugin as a new dependency in the Makefile.PL file +like this: + + requires ( + ... + 'Catalyst::Plugin::Authorization::Roles' => '0', + ); =head2 Add Role-Specific Logic to the "Book List" Template @@ -109,7 +117,7 @@ lines to the bottom of the file:
    [% # Dump list of roles -%] - [% FOR role = c.user.roles %]
  • [% role %]
  • [% END %] + [% FOR role = c.user.role %]
  • [% role %]
  • [% END %]

@@ -160,16 +168,16 @@ updating C to match the following code: if ($c->check_user_roles('admin')) { # Call create() on the book model object. Pass the table # columns/field values we want to set as hash values - my $book = $c->model('DB::Books')->create({ + my $book = $c->model('DB::Book')->create({ title => $title, rating => $rating }); # Add a record to the join table for this book, mapping to # appropriate author - $book->add_to_book_authors({author_id => $author_id}); + $book->add_to_book_author({author_id => $author_id}); # Note: Above is a shortcut for this: - # $book->create_related('book_authors', {author_id => $author_id}); + # $book->create_related('book_author', {author_id => $author_id}); # Assign the Book object to the stash for display in the view $c->stash->{book} = $book; @@ -236,7 +244,7 @@ your controllers and views be an "thin" as possible, with all of the For example, let's add a method to our C Result Class to check if a user is allowed to delete a book. Open -C and add the following method +C and add the following method (be sure to add it below the "C" line): =head2 delete_allowed_by @@ -254,7 +262,7 @@ C and add the following method Here we call a C method on our user object, so we should add this method to our Result Class. Open -C and add the following method below +C and add the following method below the "C" line: =head 2 has_role