Esempio n. 1
0
    def post(self, request, *args, **kwargs):
        if permissions.can_user_create_member(self.request.user):
            form = MemberAdminForm(request.POST)

            if form.is_valid():
                unity_id = request.POST['unity_id']
                email = request.POST['email']
                first_name = request.POST['first_name']
                last_name = request.POST['last_name']
                group = request.POST['group']
                classification = request.POST['classification']
                status = Member.STATUS_EMPTY # so a member can fill out their information

                if User.objects.filter(username=unity_id).exists():
                    form._errors['unity_id'] = form.error_class(['User with that Unity ID already exists'])
                    return self.render_to_response(self.get_context_data(form=form))
                elif re.match('^.+\\@ncsu.edu', email) is None:
                    form._errors['email'] = form.error_class(['The email must be an NCSU email address'])
                    return self.render_to_response(self.get_context_data(form=form))
                else:
                    user = User.objects.create(username=unity_id, email=email, first_name=first_name, last_name=last_name)
                    # indicates WRAP login only
                    user.set_unusable_password()
                    user.save()

                    # why is project_member returned here?
                    # that belongs with project editing
                    #member, project_member = signals.create_profile.send(sender=None, user=user, group=group, classification=classification, status=status)
                    member = signals.create_profile.send(sender=None, user=user, group=group, classification=classification, status=status)

                    return HttpResponseRedirect(reverse('cms:members_url'))

            else:
                return self.render_to_response(self.get_context_data(form=form))
        else:
            return HttpResponseForbidden('You do not have permission to access this page.')
Esempio n. 2
0
 def render_to_response(self, context):
     if permissions.can_user_create_member(self.request.user):
         return CreateView.render_to_response(self, context)
     else:
         return HttpResponseForbidden('You do not have permission to access this page.')