You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
783 B
24 lines
783 B
7 years ago
|
''' Models for User Accounts and Roles '''
|
||
|
|
||
|
import enum
|
||
|
|
||
|
|
||
|
class Role(enum.Enum):
|
||
|
''' roles of user accounts '''
|
||
|
|
||
|
UNVALIDATED = 'unvalidated' #: new user, email not validated
|
||
|
NEW = 'new' #: new user, email validated, not active
|
||
|
USER = 'user' #: standard user, may place and view orders
|
||
|
PURCHASER = 'purchaser' #: privileged user, may edit orders
|
||
|
ADMIN = 'admin' #: fully privileged user
|
||
|
INACTIVE = 'inactive' #: user that is no longer active ("deleted")
|
||
|
|
||
|
@property
|
||
|
def principal(self):
|
||
|
''' returns the principal identifier of the role '''
|
||
|
return 'role:' + self.name.lower()
|
||
|
|
||
|
def __str__(self):
|
||
|
''' string representation '''
|
||
|
return self.name.capitalize()
|