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))
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/')