Пример #1
0
def detail(request, slug, template_name="studygroups/detail.html"):
    study_group = get_object_or_404(StudyGroup, slug=slug)

    if has_perm(request.user, 'studygroups.view_studygroup', study_group):
        EventLog.objects.log(instance=study_group)
        officers = study_group.officers()

        #has_group_view_permission is True if there is at least one
        #group where the user is a member that has a view_studygroup permission.
        has_group_view_permission = False
        #Check user for group view permissions
        if request.user.is_authenticated():
            groups = request.user.group_set.all()
            perms = has_groups_perms(study_group).filter(group__in=groups)
            for perm in perms:
                #Check if permission has view studygroup permission
                has_group_view_permission |= perm.codename == 'view_studygroup'
                if has_group_view_permission:
                    break

        filters = get_query_filters(request.user, 'files.view_file')
        files = File.objects.filter(filters).filter(
            group=study_group.group).distinct()

        return render_to_response(
            template_name, {
                'study_group': study_group,
                'officers': officers,
                'files': files,
                'has_group_view_permission': has_group_view_permission,
            },
            context_instance=RequestContext(request))
    else:
        raise Http403
Пример #2
0
def detail(request, slug, template_name="committees/detail.html"):
    committee = get_object_or_404(Committee, slug=slug)

    if has_perm(request.user, 'committees.view_committee', committee):
        EventLog.objects.log(instance=committee)
        officers = committee.officers()

        #has_group_view_permission is True if there is at least one
        #group where the user is a member that has a view_committee permission.
        has_group_view_permission = False
        #Check user for group view permissions
        if request.user.is_authenticated():
            groups = request.user.group_set.all()
            perms = has_groups_perms(committee).filter(group__in=groups)
            for perm in perms:
                #Check if permission has view committee permission
                has_group_view_permission |= perm.codename == 'view_committee'
                if has_group_view_permission:
                    break

        filters = get_query_filters(request.user, 'files.view_file')
        files = File.objects.filter(filters).filter(group=committee.group).distinct()

        return render_to_response(template_name,
            {
                'committee': committee,
                'officers': officers,
                'files': files,
                'has_group_view_permission': has_group_view_permission,
            },
            context_instance=RequestContext(request))
    else:
        raise Http403
Пример #3
0
    def obj_lock(self):
        from tendenci.apps.perms.fields import has_groups_perms
        t = '<i style="color:{color};" title="{perm}, {status}" class="fa fa-{lock_type}" aria-hidden="true"></i>'

        color = 'brown'
        lock_type = 'unlock-alt'
        if self.allow_anonymous_view:
            perm = 'Public'
        elif self.allow_user_view:
            perm = 'Users'
            lock_type = 'lock'
        elif self.allow_member_view:
            perm = 'Members'
            lock_type = 'lock'
        elif has_groups_perms(self):
            perm = 'Groups'
            lock_type = 'lock'
        else:
            perm = 'Private'
            color = 'red'
            lock_type = 'lock'

        if self.status and self.status_detail == 'active':
            if self.allow_anonymous_view:
                color = 'green'
                perm = 'Public'
        else:
            color = 'red'
            lock_type = 'lock'

        value = t.format(color=color, perm=perm, status=self.status_detail, lock_type=lock_type)

        return mark_safe(value)
Пример #4
0
    def obj_perms(self):
        from tendenci.apps.perms.fields import has_groups_perms
        t = '<span class="t-perm t-perm-%s">%s</span>'

        if self.allow_anonymous_view:
            value = t % ('public', 'Public')
        elif self.allow_user_view:
            value = t % ('users', 'Users')
        elif self.allow_member_view:
            value = t % ('members', 'Members')
        elif has_groups_perms(self):
            value = t % ('groups', 'Groups')
        else:
            value = t % ('private', 'Private')

        return mark_safe(value)
Пример #5
0
    def obj_perms(self):
        from tendenci.apps.perms.fields import has_groups_perms
        t = '<span class="t-profile-perm t-perm-%s">%s</span>'

        if self.allow_anonymous_view:
            value = t % ('public','Public')
        elif self.allow_user_view:
            value = t % ('users','Users')
        elif self.allow_member_view:
            value = t % ('members','Members')
        elif has_groups_perms(self):
            value = t % ('groups','Groups')
        else:
            value = t % ('private','Private')

        return mark_safe(value)
Пример #6
0
def detail(request, slug, template_name="committees/detail.html"):
    committee = get_object_or_404(Committee, slug=slug)

    if has_perm(request.user, 'committees.view_committee', committee):
        EventLog.objects.log(instance=committee)
        officers = committee.officers().filter(
            Q(expire_dt__isnull=True) | Q(expire_dt__gte=date.today()))

        #has_group_view_permission is True if there is at least one
        #group where the user is a member that has a view_committee permission.
        has_group_view_permission = False
        #Check user for group view permissions
        if request.user.is_authenticated:
            groups = request.user.user_groups.all()
            perms = has_groups_perms(committee).filter(group__in=groups)
            for perm in perms:
                #Check if permission has view committee permission
                has_group_view_permission |= perm.codename == 'view_committee'
                if has_group_view_permission:
                    break

        filters = get_query_filters(request.user, 'files.view_file')
        files = File.objects.filter(filters).filter(
            group=committee.group).distinct()
        show_officers_phone = officers.exclude(phone__isnull=True).exclude(
            phone='').exists()
        show_officers_email = officers.exclude(email__isnull=True).exclude(
            email='').exists()

        return render_to_resp(request=request,
                              template_name=template_name,
                              context={
                                  'committee': committee,
                                  'officers': officers,
                                  'files': files,
                                  'has_group_view_permission':
                                  has_group_view_permission,
                                  'show_officers_phone': show_officers_phone,
                                  'show_officers_email': show_officers_email
                              })
    else:
        raise Http403
Пример #7
0
def detail(request, slug, template_name="chapters/detail.html"):
    chapter = get_object_or_404(Chapter, slug=slug)

    if has_perm(request.user, 'chapters.view_chapter', chapter):
        EventLog.objects.log(instance=chapter)
        officers = chapter.officers()

        #has_group_view_permission is True if there is at least one
        #group where the user is a member that has a view_chapter permission.
        has_group_view_permission = False
        #Check user for group view permissions
        if request.user.is_authenticated:
            groups = request.user.user_groups.all()
            perms = has_groups_perms(chapter).filter(group__in=groups)
            for perm in perms:
                #Check if permission has view chapter permission
                has_group_view_permission |= perm.codename == 'view_chapter'
                if has_group_view_permission:
                    break

        filters = get_query_filters(request.user, 'files.view_file')
        files = File.objects.filter(filters).filter(
            group=chapter.group).distinct()

        return render_to_resp(request=request,
                              template_name=template_name,
                              context={
                                  'chapter':
                                  chapter,
                                  'officers':
                                  officers,
                                  'files':
                                  files,
                                  'has_group_view_permission':
                                  has_group_view_permission,
                              })
    else:
        raise Http403