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})
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
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]
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
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)