[Catalyst] Users hierarchy

jakac jakac at iprom.si
Tue Jun 3 13:25:08 BST 2008


Yes this seems fine but how to code this in Catalyst? :)
And another thing - if I want to list users that certain this_user can edit,
I would need to go through the whole list and check for each user if
"this_user" is one of the (grand)parents.

Your approach is bottom-to-top and I now I am also looking for
top-to-bottom...
I think I can manage to write one of these functions by myself if someone
would just give me an example how to write one of these..

sindharta_tanuwijaya at yahoo.co.jp wrote:
> Hi,
>
> Maybe an algorithmic approach ?
>
> --
> ancestor = edited.parent;
> found = false;
> while (found==false and ancestor!=null) {
> if (ancestor == current_user)
> found= true;
> ancestor = ancestor.parent
> }
> return found;
> --
>
> I came from C++ background rather than Perl, so I am sorry if it looks
> more like C++ but I hope you got the idea. Not that there's a bit of
> recursive going on there.
>
> Sindharta
>
> *jakac <jakac at iprom.si>* wrote:
>
>     Hello!
>
>     I need a help on building a model for user that has a permission
>     to edit
>     other users that were created by this user or any of his children,
>     grandchildren etc.
>     (difficult sentence, I know)
>
>     To make this a little more understandable here's my database table:
>
>     - user_id
>     - username
>     - password
>     - various other data such as fname, lname, address etc.
>     - parent_id
>
>     Column "parent_id" has a value of "user_id" that created one user.
>     There is also
>     a "superadministrator" with parent_id '0' that can edit everybody.
>
>     Now I would like to build a model that I can use in my controllers
>     like:
>
>     if ( user_id is child,grandchild,gradgrandchild.... of logged in
>     $c->user ) {
>     # has permisson to edit
>     } else {
>     # doesn't have a permission to edit
>     }
>
>     Example:
>     - superadmin
>     |__- foo
>     |__- bar
>     |____- john
>     |______- doe
>
>     In this example:
>     - superadmin can edit anybody,
>     - bar can edit john & doe
>     - john can edit only doe
>     - foo can't edit anybody since he has no children
>     And there can be unlimited levels of users...
>
>     There is no problem with permission to edit first child since I
>     can just compare
>     logged in user's ID with edited user's parent_id but when edited
>     user is grandchild,
>     grandgrandchild, (grand * n) child of $c->user then I need some
>     kind of model
>     to return true/false value.
>
>     I've never done that and I am also new to Catalyst so any help
>     would be appreciated.
>     Thank you!
>
>
>     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/
>
>
> ------------------------------------------------------------------------
> Power up the Internet with Yahoo! Toolbar.
> <http://pr.mail.yahoo.co.jp/toolbar/>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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/20080603/501e31fd/attachment.htm


More information about the Catalyst mailing list