On 04/06/2010 09:08 PM, Raymond Mancy wrote:
We have a ticket open which details the need to set the ownership of
a system by the group.
Currently, all the code relevant to system ownership (and the actions allowed because of
that ownership) revolves around
the user as the owner.
The areas I can think of that would be affected by such a change are
*Changing system ownership
*Loaning the system
*Changing system details
*All searches related to system owner
Some other I've missed ?
I can think of a couple of ways to go about changing
1)Explicitly allow group ownership.
By this I mean being able to enter in a group name in any field which would have
previously asked for a user name.
This could be problematic and not very intuitive. Do we have 'group owner'
and a 'user owner' field? Are they mutually exclusive? etc etc
The relationship of System.owner would have to change as well.If we want to contact
an owner of a machine how do we do that if it's owned by a group?
2)Allow the owner's group to have owner'esque privileges
Allow the owner of a machine to give full ownership rights to their group, or allow
them to specify a group.
Need to add a field in the DB.
The code changes for this would be simpler. Searches wouldn't have to be modified
(maybe addition of a System/GroupOwner could be added).
System would still have a single user who would ultimately be responsible for the
machine.
I think #2 would be preferable.
I think number 2 would be preferable too. Implementation wise would we
create another group mapping?
System.owner
System.groups
System.admins
admins would be a new mapping and anyone in that group would be able to
admin the machine.
I think thats the cleanest. then its simply adding an additional check
in the following method
def can_admin(self, user=None):
if user:
if user == self.owner or user.is_admin():
return True
return False
Thoughts ?
Raymond
_______________________________________________
Beaker-devel mailing list
Beaker-devel(a)lists.fedorahosted.org
https://fedorahosted.org/mailman/listinfo/beaker-devel