By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,751 Members | 1,216 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,751 IT Pros & Developers. It's quick & easy.

Design question: User objects and a Role object

P: n/a
I have a user object that is set when a user logs in. There are also
permissions that I get about the user from a web service. Currently I
take the results from those web services and store them as XML in the
user object so I can parse it when I need to look at them. I wanted to
turn the xml permissions into ROle objects, but does that mean that my
User class needs to make reference to the Role class?

User class example

class User{

protected $firstName;
protected $lastName;
protected $employeeNumber;
protected $orgCode;
protected $roles; //Could this be an object of my class Role?
protected $scope;
protected $type;
protected $primaryAssignmentsXML = null;
protected $securityRolesXML = null;

.... getters ad setters

getRole(roleName){
//get the securityRolesXML and then parse it setting the Role
Object

$role = new Role();
$role->setName();
$role->setFunction();
return $role;
}
Is this how I should be going about this?
Oct 9 '08 #1
Share this Question
Share on Google+
2 Replies


P: n/a
On Oct 9, 9:31 pm, Anthony Smith <mrsmi...@hotmail.comwrote:
I have a user object that is set when a user logs in. There are also
permissions that I get about the user from a web service. Currently I
take the results from those web services and store them as XML in the
user object so I can parse it when I need to look at them. I wanted to
turn the xml permissions into ROle objects, but does that mean that my
User class needs to make reference to the Role class?

User class example

class User{

protected $firstName;
protected $lastName;
protected $employeeNumber;
protected $orgCode;
protected $roles; //Could this be an object of my class Role?
protected $scope;
protected $type;
protected $primaryAssignmentsXML = null;
protected $securityRolesXML = null;

.... getters ad setters

getRole(roleName){
//get the securityRolesXML and then parse it setting the Role
Object

$role = new Role();
$role->setName();
$role->setFunction();

return $role;
}

Is this how I should be going about this?
Theoretically looks ok. But, practically you'll end up deeper
object chains which might need caching to improve performance.

--
<?php echo 'Just another PHP saint'; ?>
Email: rrjanbiah-at-Y!com Blog: http://rajeshanbiah.blogspot.com/
Oct 9 '08 #2

P: n/a
Anthony Smith wrote:
I have a user object that is set when a user logs in. There are also
permissions that I get about the user from a web service. Currently I
take the results from those web services and store them as XML in the
user object so I can parse it when I need to look at them. I wanted to
turn the xml permissions into ROle objects, but does that mean that my
User class needs to make reference to the Role class?
Yes, the user will have zero or more roles, so it has to be able to
access the role class.
User class example

class User{

protected $firstName;
protected $lastName;
protected $employeeNumber;
protected $orgCode;
protected $roles; //Could this be an object of my class Role?
protected $scope;
protected $type;
protected $primaryAssignmentsXML = null;
protected $securityRolesXML = null;

.... getters ad setters

getRole(roleName){
//get the securityRolesXML and then parse it setting the Role
Object

$role = new Role();
$role->setName();
$role->setFunction();
return $role;
}
Is this how I should be going about this?
Yes, it $roles could be an object of type Role. But also bear in mind a
user may have several roles - i.e. authorized user, power user, admin,
etc., each with its own permissions. You'll want to plan for this, also.

Of course, if you have a straight hierarchy (each higher role includes
all of the permissions of all the roles below it), then you could get by
with only one role. But that can be hard to change if you should have
to someday create a role which doesn't match that hierarchy.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================

Oct 9 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.