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/

Reply via email to