def create_profile_and_userdetail(self, user):
      userDetail = UserDetail()
      userDetail.user = user
      userDetail.save()
      userena_profile = UserenaSignup.objects.create_userena_profile(user)

      # All users have an empty profile
      profile_model = get_profile_model()
      try:
         new_profile = user.get_profile()
      except profile_model.DoesNotExist:
         new_profile = profile_model(user=user)
         new_profile.save(using=self._db)

      # Give permissions to view and change profile
      for perm in ASSIGNED_PERMISSIONS['profile']:
         assign(perm[0], user, new_profile)

      # Give permissions to view and change itself
      for perm in ASSIGNED_PERMISSIONS['user']:
         assign(perm[0], user, user)

      if settings.USERENA_ACTIVATION_REQUIRED:
         userena_profile.send_activation_email()

      return user
    def post(self, request):
        form = self.form_class(request.POST)

        if form.is_valid():
            user = form.save(commit=False)

            # cleaned (normalized) data
            name = form.cleaned_data['name']
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            email = form.cleaned_data['email']
            user_role = form.cleaned_data['user_role']

            # Login credentials in the default User table
            user.first_name = name
            user.set_password(password)
            user.save()

            # Other user details
            userDetail = UserDetail()
            userDetail.user_name = username
            userDetail.user_role = user_role
            userDetail.email = email
            userDetail.name = name
            userDetail.save()

            return redirect('user:login')

        return render(request, self.template_name, {'form': form})
Beispiel #3
0
def save_user_details(user, form):
   user_details_list = UserDetail.objects.filter(user = user.id)
   if (len(user_details_list) > 0):
      user_details = user_details_list[0]
   else:
      user_details = UserDetail()
   user_details.no_messages = form.cleaned_data['no_messages']
   user_details.save()
   return
Beispiel #4
0
def get_user_details(user):
   user_details_list = UserDetail.objects.filter(user = user.id)
   if len(user_details_list) == 0:
      user_details = UserDetail()
      user_details.user = user
      user_details.smartphone = True
      user_details.no_messages = False
      user_details.save()
      return user_details
   else:
      return user_details_list[0]
Beispiel #5
0
def save_memberships_from_form(user, form):
   delete_memberships_for_user(user)
   for project in form.cleaned_data['surveys']:
      membership = Membership(user = user, project = project)
      membership.save()
   user_details_list = UserDetail.objects.filter(user = user.id)
   if (len(user_details_list) > 0):
      user_details = user_details_list[0]
   else:
      user_details = UserDetail()
   user_details.phone_number = form.cleaned_data['phone_number']
   user_details.smartphone = form.cleaned_data['smartphone']
   user_details.no_messages = form.cleaned_data['no_messages']
   user_details.save()
   return
   def fix_profile_and_userdetail(self, user):
      userDetail = UserDetail()
      userDetail.user = user
      userDetail.save()

      # All users have an empty profile
      profile_model = get_profile_model()
      try:
         new_profile = user.get_profile()
      except profile_model.DoesNotExist:
         new_profile = profile_model(user=user)
         new_profile.save(using=self._db)

      # Give permissions to view and change profile
      for perm in ASSIGNED_PERMISSIONS['profile']:
         assign(perm[0], user, new_profile)

      # Give permissions to view and change itself
      for perm in ASSIGNED_PERMISSIONS['user']:
         assign(perm[0], user, user)

      return user
Beispiel #7
0
def register(request):
    if request.method == 'POST':
        username = request.POST.get('username', '')
        email = request.POST.get('email', '')
        password = request.POST.get('password', '')
        cellphone = request.POST.get('cellphone', '')
        companyName = request.POST.get('companyName', '')
        servercnt = request.POST.get('servercnt', '')
        organization_name = companyName
        sub_domain_name = request.POST.get('sub_domain', '')
        if not User.objects.filter(username=username):
            user = User(username=username,
                        email=email,
                        is_superuser=False,
                        is_staff=True,
                        is_active=True,
                        date_joined=str(datetime.datetime.now()))
            user.set_password(password)
            user.save()
            user_details = UserDetail(email=email,
                                      phone=cellphone,
                                      company=companyName,
                                      password=password,
                                      server_count=servercnt,
                                      name=username,
                                      org_name=organization_name,
                                      domain_name=sub_domain_name,
                                      user=user)

            org = None
            sentryInstance = None
            instance_list = AliyunSDK.AliyunSDK.get_instances()
            instance_list = instance_list['Instances']['Instance']
            sentry_list = []
            for e in instance_list:
                if e['InstanceName'][:len(settings.ALIYUN_ECS_SENTRY_INSTANCE_PREFIX)] == settings.ALIYUN_ECS_SENTRY_INSTANCE_PREFIX:
                    sentry_list.append(e)
            print 'sentry instance count: ', len(sentry_list)
            sentry_count = len(sentry_list)
            sentry_index = random.randint(0, sentry_count-1)
            sentry_instance = sentry_list[sentry_index]
            # create organization
            org_list = Organization.objects.filter(sentry_instance=sentry_instance['InstanceName'])
            while len(org_list) >= settings.MAX_SENTRY_INSTANCE_COUNT:
                sentry_index = random.randint(0, sentry_count-1)
                sentry_instance = sentry_list[sentry_index]
                org_list = Organization.objects.filter(sentry_instance=sentry_instance['InstanceName'])

            # update sentry_instance model
            sentry_ipaddress = sentry_instance['PublicIpAddress']['IpAddress'][0]
            print 'ipaddress = ', sentry_ipaddress
            url_prefix = "http://%s:%s" % (sentry_ipaddress, settings.SENTRY_DEFALUT_PORT)
            se_inst = SentryInstance.objects.filter(sentry_instance_name=sentry_instance['InstanceName'])
            if not se_inst:
                print 'sentry_instance_name = ', sentry_instance['InstanceName']
                sentryInstance = SentryInstance.objects.create(sentry_instance_name=sentry_instance['InstanceName'],
                                                sentry_instance_url_prefix=url_prefix)

            domain_name = sub_domain_name + settings.DEFAULT_SUB_DOMAIN_SUFFIX
            if not (Organization.objects.filter(organization_name=organization_name)
                and Organization.objects.filter(sub_domain_name=domain_name)):
                org = Organization(organization_name=organization_name,
                                   domain_name=sub_domain_name + settings.DEFAULT_SUB_DOMAIN_SUFFIX,
                                   sentry_instance=sentry_instance['InstanceName'])
            else:
                return render_to_response("loginsight/500.html")

            # save to database
            user_details.save()
            org.save()
            # add nginx vhost conf
            VHost.addVhostConf(domain=domain_name, organization=organization_name, sentry_url=url_prefix)
            VHost.reload_nginx()

            # add domain record for Aliyun Wan network
            resp = AliyunSDK.AliyunSDK.add_domain_record(domain_name=settings.OFFICIAL_DOMAIN_NAME,
                                                         RR=domain_name,
                                                         Type="A",
                                                         Value=sentry_ipaddress)
            return render_to_response("loginsight/signup-com.html")

        else:
            return render_to_response('loginsight/signup-infor.html',  context_instance=RequestContext(request))
    c = {}
    c.update(csrf(request))
    return render_to_response("loginsight/signup-infor.html", c)