def group_link(context):

    group = find_local_group_by_user(context['request'].user)

    return {
        'group': group,
        'request': context['request'],
    }
Пример #2
0
    def get_context_data(self, **kwargs):
        context = super(CallDashboardView, self).get_context_data(**kwargs)
        """Find campaigns as admin or caller"""
        user = self.request.user
        if hasattr(user, 'callprofile'):
            call_profile = user.callprofile
        else:
            """Create call profile if doesn't exist"""
            call_profile = CallProfile.objects.create(user=user)

        campaigns_as_admin = find_campaigns_as_admin(call_profile)
        campaigns_as_admin_sorted = sorted(
            campaigns_as_admin,
            key=lambda x: x.is_in_progress,
            reverse=True,
        )
        campaigns_as_admin_active = [
            (x, CallForm() if x.is_in_progress else None)
            for x in campaigns_as_admin_sorted if x.is_active
        ]

        campaigns_as_admin_inactive = [(x, None)
                                       for x in campaigns_as_admin_sorted
                                       if not x.is_active]

        campaigns_as_caller = find_campaigns_as_caller(call_profile)
        campaigns_as_caller_sorted = sorted(
            campaigns_as_caller,
            key=lambda x: x.is_in_progress,
            reverse=True,
        )
        campaigns_as_caller_active = [
            (x, CallForm() if x.is_in_progress else None)
            for x in campaigns_as_caller_sorted
            if (x.is_active and x not in campaigns_as_admin)
        ]

        context['campaigns_as_admin_active'] = campaigns_as_admin_active
        context['campaigns_as_admin_inactive'] = campaigns_as_admin_inactive
        context['campaigns_as_caller_active'] = campaigns_as_caller_active
        """Check if User can create or manage Call Campaigns"""
        local_group = find_local_group_by_user(user)
        context['local_group'] = local_group
        context['can_add_campaign'] = has_call_permission_for_local_group(
            user,
            local_group,
            'calls.add_callcampaign',
        )
        context['can_manage_campaign'] = has_call_permission_for_local_group(
            user,
            local_group,
            'calls.change_callcampaign',
        )

        return context
Пример #3
0
    def can_create_application(self):
        """Check local group permission"""
        permission = 'nominations.add_application'
        user = self.request.user
        local_group = find_local_group_by_user(user)
        if local_group is not None:
            can_create = user.localgroupprofile.has_permission_for_local_group(
                local_group, permission)
        else:
            can_create = False

        return can_create
def organizing_hub_nav(context):

    group = find_local_group_by_user(context['request'].user)

    show_admins_link = ORGANIZING_HUB_ADMINS_ENABLED

    return {
        'group': group,
        'organizing_guides_url': ORGANIZING_GUIDES_URL,
        'organizing_docs_url': ORGANIZING_DOCS_URL,
        'show_admins_link': show_admins_link,
        'request': context['request'],
    }
Пример #5
0
    def show_event_promote(self):
        """Check feature flag and local group permissions"""
        if not ORGANIZING_HUB_PROMOTE_ENABLED:
            return False
        """TODO: make a template tag for local group perms?"""
        user = self.request.user
        local_group = find_local_group_by_user(user)
        permission = 'events.add_eventpromotion'

        if local_group is None:
            return False
        elif local_group.status != 'approved':
            return False
        elif not hasattr(user, 'localgroupprofile'):
            return False
        else:
            profile = user.localgroupprofile
            has_permission = profile.has_permission_for_local_group(
                local_group, permission)
            return has_permission
def has_organizing_hub_feature_access(context, feature_id):
    """
    Check if user has access to Organizing Hub Feature

    Parameters
    ----------
    feature_id : int
        Organizing Hub Feature id

    Returns
        -------
        bool
            Return True if user has access to Organizing Hub Feature
    """
    local_group = find_local_group_by_user(context['request'].user)
    if local_group is not None and hasattr(
            local_group,
            'organizinghubaccess',
    ):
        access = local_group.organizinghubaccess
        has_feature_access = access.has_feature_access_by_id(feature_id)
        return has_feature_access
    else:
        return False
Пример #7
0
def find_campaigns_as_admin(call_profile):
    """
    Find Call Campaigns that match Local Group edit access for Call Profile

    Return campaigns where profile has edit access via local group

    Parameters
    ----------
    call_profile : CallProfile
        CallProfile for local group affiliation

    Returns
        -------
        CallCampaign list
            Returns matching CallCampaign list
    """
    """Check Feature Access and Local Group Permissions"""
    user = call_profile.user
    local_group = find_local_group_by_user(user)
    if local_group is not None and has_call_permission_for_local_group(
            user, local_group, 'calls.change_callcampaign'):
        return local_group.callcampaign_set.all().order_by('-date_created')
    """Otherwise return empty list"""
    return CallCampaign.objects.none()
def local_group(context):
    """TODO move to local groups template tags"""
    return find_local_group_by_user(context['request'].user)
Пример #9
0
 def get_local_group(self):
     return find_local_group_by_user(self.request.user)
Пример #10
0
 def get_local_group(self):
     if self.local_group is None:
         self.local_group = find_local_group_by_user(self.request.user)
     return self.local_group