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 <[EMAIL PROTECTED]> 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: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/
---------------------------------
Power up the Internet with Yahoo! Toolbar.
_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/