Source code for kozmic.perms

"""
kozmic.perms
~~~~~~~~~~~~
"""
from functools import partial

from flask.ext.principal import Permission, RoleNeed, Need


#: Project owner need
project_owner = partial(Need, 'project_owner')
#: Project manager need
project_manager = partial(Need, 'project_manager')
#: Project member need
project_member = partial(Need, 'project_member')


[docs]def delete_project(id): """Returns a :class:`Permission` to delete the project identified by ``id``. """ return Permission(project_owner(id))
[docs]def manage_project(id): """Returns a :class:`Permission` to manage the project identified by ``id``. """ return Permission(project_manager(id), project_owner(id))
[docs]def view_project(id): """Returns a :class:`Permission` to view the project identified by ``id``. """ return Permission(project_member(id)) & manage_project(id)