Пример #1
0
def group_add(request):        
    if request.method == 'POST':
        form = UserGroupForm(request.POST)
        message = None
        if form.is_valid():
            try:
                if form.data['name'] == 'admin':
                    message = _("Admin is a reserved group")
                    raise Exception
                
                if _valid_name_regex.search(form.data['name']) == None:
                    message = _("Invalid user group name: '{value}'. Identifiers must begin with a letter or an underscore (_). Subsequent characters can be letters, underscores or numbers").format(value=form.data['name'])
                    raise Exception
            
                group = UserGroup(
                    name = form.data['name'],
                    description = form.data['description']
                )
                group.save()
                    
                core_services.ldap_add_group(group)
                core_services.add_data_directory(group)                               
                          
                return redirect('group_list')
            
            except Exception as e:
                print str(e)
                return render_to_response('group_add.html', {'form': form, 'message': message}, context_instance=RequestContext(request))
                
        else:
            return render_to_response('group_add.html', {'form': form}, context_instance=RequestContext(request))
        
    else:
        form = UserGroupForm()
        return render_to_response('group_add.html', {'form': form}, context_instance=RequestContext(request))
Пример #2
0
def vet_user(request, user_id):
    user = User.objects.get(pk=user_id)
    try:
        rating = OrganisationalRating.objects.get(user=user)
    except OrganisationalRating.DoesNotExist:
        rating = None
    msg = ''
    if request.method == 'POST':
        form = VettingForm(request.POST, instance=rating)
        group_form = UserGroupForm(request.POST, instance=user)
        msg = None
        if form.is_valid() and group_form.is_valid():
            if not rating:
                rating = form.save(commit=False)
                rating.user_id = user.id
                rating.save()
            else:
                form.save()
            group_form.save()
            user.save()
            typeuser = ContentType.objects.filter(name='user').all()[0]
            log = LogEntry(user_id=request.user.id,
                           content_type=typeuser,
                           object_id=user.id,
                           object_repr=user.username,
                           action_flag=2,
                           change_message="vetted")
            log.save()
            msg = 'User updated'
    else:
        form = VettingForm(instance=rating)
        group_form = UserGroupForm(instance=user)
    email_verified = EmailAddress.objects.filter(user=user,
                                                 verified=True).exists()
    ctx = {
        'email_verified': email_verified,
        'original': user,
        'user': user,
        'form': form,
        'group_form': group_form,
        'msg': msg,
        'vetted': user.is_active
    }
    return render_to_response('admin/auth/user/vet_user.html',
                              ctx,
                              context_instance=RequestContext(request))
Пример #3
0
def vet_user(request, user_id):
    user = User.objects.get(pk=user_id)
    try:
        rating = OrganisationalRating.objects.get(user=user)
    except OrganisationalRating.DoesNotExist:
        rating = None
    msg = ''
    if request.method == 'POST':
        form = VettingForm(request.POST, instance=rating)
        group_form = UserGroupForm(request.POST, instance=user)
        msg = None
        if form.is_valid() and group_form.is_valid():
            if not rating:
                rating = form.save(commit=False)
                rating.user_id = user.id
                rating.save()
            else:
                form.save()
            group_form.save()
            user.save()
            typeuser = ContentType.objects.filter(name='user').all()[0]
            log = LogEntry(user_id=request.user.id,
                           content_type=typeuser,
                           object_id=user.id,
                           object_repr=user.username,
                           action_flag=2,
                           change_message="vetted")
            log.save()
            msg = 'User updated'
    else:
        form = VettingForm(instance=rating)
        group_form = UserGroupForm(instance=user)
    email_verified = EmailAddress.objects.filter(user=user, verified=True).exists()
    ctx = {
        'email_verified': email_verified,
        'original': user,
        'user': user,
        'form': form,
        'group_form': group_form,
        'msg': msg,
        'vetted': user.is_active
    }
    return render_to_response('admin/auth/user/vet_user.html', ctx, context_instance=RequestContext(request))
Пример #4
0
def usergroup_add(request):
    """View for adding new user group"""

    if request.method == 'POST':
        form = UserGroupForm(request.POST)
        if form.is_valid():    
            username = request.user.username
            groupname = form.cleaned_data['groupname']

            group = LdapUserGroup(name=groupname, owner=username, members=[])
            
            try:
                group.save()            
            except ldap.ALREADY_EXISTS:
                return usergroups(request, err={'err': 'usergroup_exist'})
                
            return usergroups(request, usergroup_modification={'groupname': groupname, 'modification': 'add'})
    else:
        form = UserGroupForm()

    return render_to_response('group_add.html',  {'form': form,}, context_instance=RequestContext(request))