Example #1
0
 def _get_needs_for_roles(self, user):
     needs = []
     needs_for_roles = self.__model__.objects.filter(
         entities__in=user.roles, deployment=user.deployment)
     for need in needs_for_roles:
         if need.items:
             needs.extend([ItemNeed(need.action, item, 'object')
                          for item in need.items])
         else:
             needs.append(ActionNeed(need.action))
     return needs
Example #2
0
    def find(self, **kwargs):
        _kwargs = self._set_default_filter_parameters({})

        if current_user.is_authenticated():
            kwargs['pk__in'] = [
                event.pk for event in filter(
                    lambda f: Permission(ItemNeed('access_event', f, 'object'),
                                         RoleNeed('admin')).can(),
                    self.__model__.objects.filter(**_kwargs))
            ]

        return super(EventsService, self).find(**kwargs)
Example #3
0
 def _get_needs_for_user(self, user):
     needs = []
     needs_for_user = self.__model__.objects.filter(
         entities=user, deployment=user.deployment)
     for need in needs_for_user:
         if need.items:
             items = filter(lambda i: type(i) != dict, list(need.items))
             needs.extend(
                 [ItemNeed(need.action, item, 'object') for item in items])
         else:
             needs.append(ActionNeed(need.action))
     return needs
Example #4
0
def get_checklist_form_dashboard_menu(**kwargs):
    """Retrieves a list of forms that have the verification flag set

    :param form_type: The form type for the forms to be retrieved
    """
    return [{
        u'url': url_for(u'dashboard.checklists', form_id=str(form.id)),
        u'text': form.name,
        u'icon': u'<i class="glyphicon glyphicon-check"></i>',
        u'visible': True
    } for form in filter(
        lambda f: Permission(ItemNeed(u'view_forms', f, u'object'),
                             RoleNeed(u'admin')).can(),
        services.forms.find(**kwargs).order_by(u'name'))]
Example #5
0
def get_form_list_menu(**kwargs):
    """Retrieves a list of forms that the user has access to and returns it
    in a format that can be rendered on the menu

    :param form_type: The form type for the forms to be retrieved
    TODO: Actually restrict forms based on user permissions
    """
    return [{
        'url': url_for('submissions.submission_list', form_id=str(form.id)),
        'text': form.name,
        'visible': True
    } for form in filter(
        lambda f: Permission(ItemNeed('view_forms', f, 'object'),
                             RoleNeed('admin')).can(),
        services.forms.find(**kwargs))]
Example #6
0
def get_quality_assurance_form_list_menu(**kwargs):
    """Retrieves a list of forms that have the verification flag set

    :param form_type: The form type for the forms to be retrieved
    """
    return [{
        'url':
        url_for('submissions.quality_assurance_list', form_id=str(form.id)),
        'text':
        form.name,
        'icon':
        '<i class="glyphicon glyphicon-ok"></i>',
        'visible':
        True
    } for form in filter(
        lambda f: Permission(ItemNeed('view_forms', f, 'object'),
                             RoleNeed('admin')).can(),
        services.forms.find(**kwargs).order_by('name'))]
Example #7
0
def require_item_perm(action, item, http_exception=403):
    perm = Permission(ItemNeed(action, item, 'object'), RoleNeed('admin'))
    if not perm.can():
        abort(http_exception, perm)