97 lines
2.0 KiB
ReStructuredText
97 lines
2.0 KiB
ReStructuredText
==================
|
|
User Role Scenario
|
|
==================
|
|
|
|
Imports::
|
|
|
|
>>> import datetime as dt
|
|
|
|
>>> from proteus import Model
|
|
>>> from trytond.tests.tools import activate_modules, assertEqual
|
|
|
|
Activate modules::
|
|
|
|
>>> config = activate_modules('user_role')
|
|
|
|
Create some groups::
|
|
|
|
>>> Group = Model.get('res.group')
|
|
>>> groups = [Group(name="Group %s" % i) for i in range(5)]
|
|
>>> Group.save(groups)
|
|
|
|
Create a role::
|
|
|
|
>>> Role = Model.get('res.role')
|
|
>>> role = Role(name="Role")
|
|
>>> role.groups.append(Group(groups[0].id))
|
|
>>> role.groups.append(Group(groups[1].id))
|
|
>>> role.save()
|
|
|
|
Create a user with some groups::
|
|
|
|
>>> User = Model.get('res.user')
|
|
>>> user = User(login="user")
|
|
>>> user.groups.append(Group(groups[1].id))
|
|
>>> user.groups.append(Group(groups[2].id))
|
|
>>> user.groups.append(Group(groups[3].id))
|
|
>>> user.save()
|
|
>>> len(user.groups)
|
|
3
|
|
|
|
Set the role to the user::
|
|
|
|
>>> user_role = user.roles.new()
|
|
>>> user_role.role = role
|
|
>>> user.save()
|
|
|
|
>>> len(user.groups)
|
|
2
|
|
>>> assertEqual(user.groups, [groups[0], groups[1]])
|
|
|
|
Start the role in the future::
|
|
|
|
>>> user_role, = user.roles
|
|
>>> user_role.from_date = dt.datetime.now() + dt.timedelta(days=1)
|
|
>>> user_role.to_date = None
|
|
>>> user.save()
|
|
|
|
>>> len(user.groups)
|
|
0
|
|
|
|
End the role in the past::
|
|
|
|
>>> user_role, = user.roles
|
|
>>> user_role.from_date = None
|
|
>>> user_role.to_date = dt.datetime.now() - dt.timedelta(days=1)
|
|
>>> user.save()
|
|
|
|
>>> len(user.groups)
|
|
0
|
|
|
|
Start the role in the past and end in the future::
|
|
|
|
>>> user_role, = user.roles
|
|
>>> user_role.from_date = dt.datetime.now() - dt.timedelta(days=1)
|
|
>>> user_role.to_date = dt.datetime.now() + dt.timedelta(days=1)
|
|
>>> user.save()
|
|
|
|
>>> len(user.groups)
|
|
2
|
|
|
|
Changing groups to role::
|
|
|
|
>>> role.groups.append(Group(groups[4].id))
|
|
>>> role.save()
|
|
|
|
>>> user.reload()
|
|
>>> len(user.groups)
|
|
3
|
|
|
|
Deleting role::
|
|
|
|
>>> role.delete()
|
|
|
|
>>> user.reload()
|
|
>>> len(user.groups)
|
|
0
|