I've got some methods which have attributes (to use .Net terminology). Something like.
#Example Usage
@RequireLoggedIn
def SomeAuthorisedFunction():
# ...
The attribute is defined as
def RequireLoggedIn(func):
func.AuthenticationRequired = True
return func
I can then check if this has been set using hasattr(view_func, 'AuthenticationRequired'). What I'd like to do is something like this...
@RequireRole('Administrator')
def SomeAuthorisedFunction():
# ...
I've tried defining an attribute like this:
def RequireRole(func, Role):
func.RequiresRole = Role
return func
But @RequireRole('Administrator') results in missing positional argument "Role" and @RequireRole(Role='Administrator') results in missing positional argument "func".
How can I specify properties for attributes?