Example #1
0
def addnew(request):
    groups = request.META.get('ADFS_GROUP','')
    groupsList = groups.split(';') ;
    ## Check the user has cloudman resource manager privileges
    userIsSuperUser = isSuperUser(groupsList)  
    '''if not userIsSuperUser:
          message = "You don't have cloudman resource manager privileges. Hence you are not authorized to add new Group";
          html = "<html><body> %s.</body></html>" % message
          return HttpResponse(html)
    '''
    ## if the request is through form submission, then add the group or else return a new form 
    if request.method == 'POST':
        ## Validate the form by checking whether all the required values are provided or not
        form = GroupsForm(request.POST)
        if form.is_valid():
            redirectURL = '/cloudman/message/?msg='
            name = form.cleaned_data['name']
            groupExists = checkNameIgnoreCase(name)
            if groupExists:
                msgAlreadyExists = 'Group ' + name + ' already exists. Hence Add Group Operation Failed'
                return HttpResponseRedirect(redirectURL + msgAlreadyExists);
            description = form.cleaned_data['description']
            admin_group = form.cleaned_data['admin_group']
            comment = form.cleaned_data['comment']
            ## check first whether the admin_group exists in the local egroup table
            ## if not, then in the remote egroup database through ldap. If exists here, then add to the local table 
            egroup = None
            try:
                egroup = Egroups.objects.get(name=admin_group)
            except Egroups.DoesNotExist:
                if not (checkEGroup(admin_group)):
                    errorMessage = 'Admin E-Group Entered ' + admin_group + ' does not exists'
                    return HttpResponseRedirect(redirectURL + errorMessage)
                else:
                    egroup = Egroups(name=admin_group)
                    egroup.save()
            ## Create the group and return a success message to the user
            groupObj = Groups(name=name, description=description, admin_group=egroup)
            groupObj.save()
            groupObj = Groups.objects.get(name=name)
            if addLog(request,name,comment,groupObj,None,'group','add',True):                
                msgSuccess = 'New group ' + name  + ' added successfully'
            else:
                transaction.rollback()
                msgSuccess = 'Error in creating group ' + name              
            html = "<html><HEAD><meta HTTP-EQUIV=\"REFRESH\" content=\"4; url=/cloudman/group/list/\"></HEAD><body> %s.</body></html>" % msgSuccess
            return HttpResponse(html)
    else:
        form = GroupsForm()    
    return render_to_response('group/addnew.html',locals(),context_instance=RequestContext(request))
Example #2
0
def submit_group(request, group_name="none"):
    if request.user.is_authenticated():
        top_groups = helper_func.calc_top_groups()
        saved_groups = helper_func.find_saved_groups(request.user)
        if request.method == "POST":
            form = GroupForm(request.POST)
            if form.is_valid():
                if " " in request.POST['group']:
                    form._errors['group'] = ErrorList([u"Spaces are not allowed"])
                    return render_to_response('submitgroup.html', {'form': form, 'user': request.user, 'top_groups': top_groups, 'saved_groups': saved_groups, 'group_name': group_name}, context_instance=RequestContext(request))
                group= Groups(groupname= request.POST['group'], privacy= request.POST['privacy'])
                group.save()
                groupname = request.POST['group']
                return HttpResponseRedirect('/success/'+ str(groupname))
        else:
            data = {'group': group_name, 'privacy': 0}
            if group_name == "none":
                form = GroupForm()
            else:
                form = GroupForm(data)
        return render_to_response('submitgroup.html', {'form': form, 'user': request.user, 'top_groups': top_groups, 'saved_groups': saved_groups, 'group_name': group_name}, context_instance=RequestContext(request))
    else:
        return HttpResponseRedirect('/accounts/login/?next=/submitgroup/')