Пример #1
0
def group_admin_members_add(request, slug, extra_context={}):
    group = get_object_or_404(auth_models.Group, name=slug)

    if request.method == "POST":
        user = get_object_or_404(auth_models.User,
                                 pk=int(request.POST['user_id']))
        svmain_models.Membership(user=user, group=group, admin_flags='').save()
        messages.success(request,
                         _("User %s added to the project.") % user.username)
        return HttpResponseRedirect('../')

    from django.views.generic.list_detail import object_list
    from savane.filters import search
    from django.contrib.auth.admin import UserAdmin
    context = {}
    context.update(extra_context)
    context.update({'group': group})
    queryset = auth_models.User.objects.filter(is_active=True) \
        .exclude(pk__in=group.user_set.all()) \
        .order_by('username')
    return search(object_list)(
        request,
        queryset=queryset,
        paginate_by=20,
        model_admin=UserAdmin,
        extra_context=context,
        template_name='svmain/group_admin_members_add.html')
Пример #2
0
Файл: auth.py Проект: rfire01/nb
def canGuestReadFile(uid, id_source, req=None):
    o = M.Ownership.objects.get(source__id=id_source)
    e = M.Ensemble.objects.get(pk=o.ensemble_id)
    if o.ensemble.allow_guest and len(
            M.Membership.objects.filter(
                user__id=uid, ensemble=e, deleted=False)) == 0:
        #add membership for guest user:
        m = M.Membership()
        m.user_id = uid
        m.ensemble_id = e.id
        m.guest = True
        if e.section_assignment == M.Ensemble.SECTION_ASSGT_RAND:
            #assign guest to a random section if there are sections, unless we find a pgid cookie that correponded to a existing section
            sections = M.Section.objects.filter(ensemble=e)
            if sections:
                if req is not None and "pgid" in req.COOKIES:
                    prev_sections = M.Section.objects.filter(
                        membership__user__id=int(req.COOKIES.get("pgid")),
                        membership__ensemble__id=e.id)
                    if len(prev_sections):
                        m.section = prev_sections[0]
                if m.section is None:
                    m.section = random.choice(sections)
        m.save()
    return o.ensemble.allow_guest
Пример #3
0
def group_join(request, slug):
    g = get_object_or_404(auth_models.Group, name=slug)
    if svmain_models.Membership.objects.filter(user=request.user,
                                               group=g).count():
        messages.error(request, _("Request for inclusion already registered"))
    else:
        svmain_models.Membership(user=request.user, group=g,
                                 admin_flags='P').save()
        # TODO: send e-mail notification to group admins
        messages.success(
            request, _("Request for inclusion sent to project administrators"))
    return HttpResponseRedirect('../')
Пример #4
0
def confirmInvite(id):
    invite = M.Invite.objects.filter(key=id)
    if len(invite) == 0: 
        return None
    invite = invite[0]
    membership = M.Membership.objects.filter(user=invite.user_id, ensemble=invite.ensemble_id)
    if len(membership) == 0: 
        membership = M.Membership()
        membership.user = invite.user
        membership.ensemble = invite.ensemble
        membership.admin = invite.admin
        membership.save()
    return invite
Пример #5
0
def get_membership(person, club):
    try:
        membership = self.open().query(Membership).filter(
            Membership.person_id == person.id,
            Membership.club_id == club.id).one()
    except:
        membership = mo.Membership()
        membership.person = person
        membership.club = club
        DB_MANAGER.save(membership)
        return membership

    return None
Пример #6
0
def create_ensemble(uid, P): #name, description, uid, allow_staffonly, allow_anonymous, ):
    import random, string
    ensemble = M.Ensemble(name=P["name"], description=P["description"])
    if "allow_staffonly" in P: 
        ensemble.allow_staffonly = P["allow_staffonly"]
    if "allow_anonymous" in P: 
        ensemble.allow_anonymous = P["allow_anonymous"]
    if "allow_guest" in P: 
        ensemble.allow_guest = P["allow_guest"]
    if "use_invitekey" in P: 
        ensemble.use_invitekey = P["use_invitekey"]
    if "allow_download" in P: 
        ensemble.allow_download = P["allow_download"]
    ensemble.invitekey =  "".join([ random.choice(string.ascii_letters+string.digits) for i in xrange(0,50)])      
    ensemble.save()
    id = ensemble.pk
    membership = M.Membership(ensemble_id=id, user_id=uid, admin=1)
    membership.save()
    return id