[Catalyst] flexible ACL rules

Eric Wright info at rapidsynergy.com
Fri Sep 18 15:23:26 GMT 2009


I know this is an old thread but I recently moved my project from Fedora 10
to Mac OS 10.6 and find inexplicably that the Exporter no longer works.

So for instance if I:

use Catalyst::Plugin::Authorization::ACL::Engine qw($ALLOWED $DENIED);

And later reference the exceptions, the compiler complains:

Global symbol "$ALLOWED" requires explicit package name

However, if I fully qualify the variable with the package name, e.g.:

die $Catalyst::Plugin::Authorization::ACL::Engine::ALLOWED;

Then everything compiles fine.

Has something changed in the underlying code base or is this an issue with
the Darwin flavor of UNIX on Mac? Anyone else run Catalyst on the Mac? Is
the compile vs. run time out of sequence somehow?

-Eric
On Fri, Jan 23, 2009 at 9:18 PM, Jason Kohles <email at jasonkohles.com> wrote:

> On Jan 23, 2009, at 2:09 AM, Jens Schwarz wrote:
>
>  Hi *,
>>
>> I have some difficulties in applying flexible rules [1] in my Catalyst
>> app. Until now, I only used easy rules (mainly with deny_access_unless)
>> like:
>>
>> deny_access_unless(
>>  "/users/edit" ,
>>  sub{ shift->check_any_user_role(qw/admin user/) }
>> );
>>
>> What I now want to achieve is, that 'admin' users can edit _every_ user,
>> and 'user' users only themselves. So if 'user' user foo has p.ex. the id=
 5,
>> he is allowed to /user/edit/5 but not /user/edit/4.
>>
>> So I looked at the flexible rules documentation which I guess might do t=
he
>> job. I tried to apply the example mentioned there but I guess I don't
>> understand these "die $ALLOWED"/"die $DENIED" lines (I am still
>> Perl/Catalyst newbie): Although I added "Authorization::ACL::Engine" to =
my
>> "use Catalyst" in myapp.pm, I get errors like "Global symbol
>> '$ALLOWED/$DENIED' requires explicit package name at myapp.pm"
>>
>>  From the docs:
>
> "All access control is performed using exceptions
>  $Catalyst::Plugin::Authorization::ACL::Engine::DENIED, and
> $Catalyst::Plugin::Authorization::ACL::Engine::ALLOWED (these can be
> imported from the engine module)."
>
> Which means you either need to start your module with:
>
> use Catalyst::Plugin::Authorization::ACL::Engine qw( $ALLOWED $DENIED );
>
> or fully qualify them by like so:
>
> die $Catalyst::Plugin::Authorization::ACL::Engine::DENIED unless
> something();
>
> --
> Jason Kohles, RHCA RHCDS RHCE
> email at jasonkohles.com - http://www.jasonkohles.com/
> "A witty saying proves nothing."  -- Voltaire
>
>
>
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20090918/1f4e3=
344/attachment.htm


More information about the Catalyst mailing list