[Catalyst] Advanced role-based authorization
sindharta_tanuwijaya at yahoo.co.jp
sindharta_tanuwijaya at yahoo.co.jp
Tue May 20 05:08:37 BST 2008
Hi,
I don't think you can achieve that by Catalyst::Plugin::Authorization but please correct me if I am wrong.
On a side note though, I also had an idea that is similar to yours some time ago, but I scrapped it because the number of records in
users_pages_roles tables will increase exponentially as the number of users and pages increase.
I wonder how the sharing function is implemented in Google Docs though.
Sindharta
jakac <jakac at iprom.si> wrote: Hello!
I am new to Catalyst and I am developing my first web application using this really
great framework. I really like the way Catalyst allows me to build my application but
now I have a problem which I can not resolve by myself.
I studied the tutorial and I understand the whole concept of "role based" authorization
where we have three tables:
- users (list of users with primary key user_id)
- roles (list of roles with primary key role_id)
- users_roles (with user_id - role_id relations)
but for my application I need a bit more advanced system than that because every
user has also multiple pages and different roles for each page (he can edit some,
only view the others etc.). One user has different permissions for each of the pages and
also more users have access (and different permissions) to the same page.
So I need 4 tables:
- users (list of users with primary key user_id)
- roles (list of roles with primary key role_id)
- pages (list of pages with primary key page_id)
- users_pages_roles (with user_id - page_id - role_id relations)
e.g.:
user1 | page1 | edit
user1 | page2 | edit
user2 | page2 | view
user3 | page1 | edit
user3 | page2 | view
etc.
How can I make this kind of authorization using Catalyst? How to build a model
and configure "roles" plugin?
Also with simple role based system I can check if user has permission to use that part
of application using:
$c->assert_user_roles( qw/rolename/ );
What about with this kind of "advanced" authorization?
Thank you all!
JakaC.
_______________________________________________
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/
---------------------------------
GANBARE! NIPPON! Win your ticket to Olympic Games 2008.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20080520/3fcb1508/attachment.htm
More information about the Catalyst
mailing list