def handle(self, *args, **options): email = input('Set email: ') password = input('Set password: '******'Company name: ') if not email or not password or not company_name: raise ValueError('Please, set correct input values.') try: validators.validate_email(email) except exceptions.ValidationError: print("Enter valid email address.") try: with transaction.atomic(): # create user from input info email = email.lower() customer = Customer(email=email) customer.set_password(password) customer.save() # create User's profile and set all needed info regarding redshift output storage profile, created = Profile.objects.get_or_create( user=customer, defaults={"company_name": company_name}) profile.rs_username = profile.username_generator() profile.rs_password = profile.password_generator() profile.save() # prepare DB in redshift output storage for newly created user self.prepare_rs_db(user_info=profile) except IntegrityError: print("User or profile entry already exists.")
def create(self, validated_data): customer = Customer( email=validated_data['email'], nickname=validated_data['nickname'], shipping_address=validated_data['shipping_address'], ) customer.set_password(validated_data['password']) customer.save() return customer
def loginView(request): if request.method == 'POST': # If the form has been submitted... obj = Customer() email = request.POST.get('email') password = request.POST.get('password') if len(email)== 0 or len(password)== 0: row = "" else: obj.set_email(email) obj.set_password(password) row = obj.getUserAccount() print (row) if len(row) >0: user = obj.authenticateCustomer() request.session["user"] = email request.session["password"] = password request.session["auth"] = True request.session["account"] = int(user[0]) request.session["customer"] = int(user[1]) cus_ID = int(user[1]) act_ID = int(user[0]) obj.set_accountID(act_ID) obj.set_customerID(cus_ID) allergies = loadAllergies(request) preferences = loadPreferences(request) user_info = obj.getUserAccount() address_info = obj.getUserAddress() state =[ sub['state'] for sub in address_info ] name = user[2] request.session["name"] = name print(request.session["name"]) context = get_userinfo(request) lstOrder = lastOrder(request) hist = [] if len(lstOrder) != 0: hist = loadOrderHistory(request) context.update({'lastOrder':lstOrder,'history':hist,'check_list': allergies,'p_check_list': preferences ,'users': user_info,'addresses': address_info ,'state':state}) return render(request,'profile.html',context) else: response = "Invalid Credentials, please try again!" obj.set_userAuthenticated(False) context = {'response': response, 'alert_flag': True} return render(request,'login.html',context) context = {'response': ""} return render(request,'login.html',context)
def registerView(request): if request.method == 'POST': # If the form has been submitted.. valid = 0 checkFields = [] formFields = [] #save form fields formFields.append(request.POST.get('firstname')) formFields.append(request.POST.get('lastname')) formFields.append(request.POST.get('phonenumber')) formFields.append(request.POST.get('email')) formFields.append(request.POST.get('password')) formFields.append(request.POST.get('rpassword')) formFields.append(request.POST.get('aptNum')) formFields.append(request.POST.get('street')) formFields.append(request.POST.get('city')) formFields.append(request.POST.get('state')) formFields.append(request.POST.get('zip')) pas = request.POST.get('password') pas_c = request.POST.get('rpassword') email = request.POST.get('email') if pas == pas_c: #verify that both password and confirmation field match valid = 1 checkFields.append(" ") else: checkFields.append("Passwords do not match") regex = '^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$' obj = Customer() if (re.search(regex,email)): if obj.checkEmailExists(email)== False: valid += 1 checkFields.append(" ") else: checkFields.append("An account with this email exsists already") else: checkFields.append("Invalid Email Address please enter a valid email") rules = [ #check that password has an upper and lower case letter as well as an number and lambda pas: any(x.isupper() for x in pas) or 'upper', lambda pas: any(x.islower() for x in pas) or 'lower', lambda pas: any(x.isdigit() for x in pas) or 'digit', lambda pas: len(pas) >= 7 or 'length', ] problems = [p for p in [r(pas) for r in rules] if p != True] if len(problems) ==0: checkFields.append(" ") valid += 1 else: checkFields.append("Password does not meet security requirements") check_term = request.POST.getlist('termcond') if len(check_term) ==1: checkFields.append(" ") valid += 1 else: checkFields.append("Please accept terms and conditions!") if valid == 4: obj.set_firstname(request.POST.get('firstname')) obj.set_lastname(request.POST.get('lastname')) obj.set_mobile(int(request.POST.get('phonenumber'))) obj.set_phone(int(request.POST.get('phonenumber'))) pas = request.POST.get('password') obj.set_email(request.POST.get('email')) obj.set_password(request.POST.get('password')) obj.set_addressName("Main") apt = request.POST.get('aptNum') print(apt) if len(apt) == 0: apt = " " obj.set_aptnum(apt) obj.set_street(request.POST.get('street')) obj.set_city(request.POST.get('city')) obj.set_state(request.POST.get('state')) obj.set_zipcode(int(request.POST.get('zip'))) user = int(obj.addUserAccount()) obj.set_accountID(int(user)) obj.addAddress() response = obj.addCustomer() context = {'response': response} return render(request,'register.html', context) else: response = "There was an error creating the account. Please see the fields below." context = {'response': response,'check_fields': checkFields,'form_fields': formFields, 'alert_flag': True} return render(request,'register.html',context) else : context = {'response': ""} return render(request,'register.html',context)
def form_valid(self, form): new = Customer() new.username = form.cleaned_data['username'] new.set_password(form.cleaned_data['password1']) new.save() return super(RegisterView, self).form_valid(form)
def post(self): """ Creates a new customer Endpoint: /customer/ Example Post Body: { "currency": "USD", "email": "*****@*****.**", "first_name": "John", "last_name": "Smith4", "addresses": [ { "street": "1236 Main Street", "city": "townsville", "zip": "1234", "state": "CA", "country": "USA", "is_primary": "true" }, { "street": "1215 Main Street", "city": "townsville", "zip": "500", "state": "CA", "country": "USA" }, { "street": "1216 Main Street", "city": "townsville", "zip": "500", "state": "CA", "country": "USA" } ] } { "customer": { "addresses": [ { "address_id": "224473682041851492125327501325163956867", "city": "townsville", "created_at": "Thu, 10 Jan 2019 03:56:26 GMT", "deleted_at": null, "is_primary": false, "state": "CA", "street": "1215 Main Street", "updated_at": "Thu, 10 Jan 2019 03:56:26 GMT", "zip": "500" }, { "address_id": "245608141370371202915656949519861248348", "city": "townsville", "created_at": "Thu, 10 Jan 2019 03:56:26 GMT", "deleted_at": null, "is_primary": true, "state": "CA", "street": "1236 Main Street", "updated_at": "Thu, 10 Jan 2019 03:56:26 GMT", "zip": "1234" }, { "address_id": "274242069278329272621665758252140893540", "city": "townsville", "created_at": "Thu, 10 Jan 2019 03:56:26 GMT", "deleted_at": null, "is_primary": false, "state": "CA", "street": "1216 Main Street", "updated_at": "Thu, 10 Jan 2019 03:56:26 GMT", "zip": "500" } ], "created_at": "Thu, 10 Jan 2019 03:56:26 GMT", "currency": "USD", "customer_id": "204987158183621343381078484949153439747", "deleted_at": null, "email": "*****@*****.**", "first_name": "John", "last_name": "Smith4", "last_order_date": null, "links": [ { "href": "/customer/204987158183621343381078484949153439747", "rel": "self" } ], "total_spent": 0, "updated_at": "Thu, 10 Jan 2019 03:56:26 GMT" }, "result": "ok" } """ customer_json = request.json error = best_match(Draft4Validator(schema).iter_errors(customer_json)) if error: return jsonify({"error": error.message}), 400 store = Store.objects.filter(app_id=request.headers.get('APP-ID'), deleted_at=None).first() existing_customer = Customer.objects.filter( email=customer_json.get("email"), store_id=store).first() if existing_customer: return jsonify({"error": "CUSTOMER_ALREADY_EXISTS"}), 400 count_is_primary = 0 if customer_json.get("addresses"): for address in customer_json.get("addresses"): if address.get("is_primary"): if address.get("is_primary") == "true": count_is_primary += 1 if count_is_primary > 1: return jsonify({ "error": "MULTIPLE_PRIMARY_ADDRESSES_SUPPLIED" }), 400 customer = Customer(currency=customer_json.get("currency"), email=customer_json.get("email"), first_name=customer_json.get("first_name"), last_name=customer_json.get("last_name"), customer_id=str(uuid.uuid4().int), store_id=store).save() customer.set_password(customer_json.get("password")) if customer_json.get("addresses"): addresses = [] for address in customer_json.get("addresses"): is_primary = False if address.get("is_primary"): is_primary = True if address.get( "is_primary").lower() == "true" else False address = Address(street=address.get("street"), city=address.get("city"), zip=address.get("zip"), state=address.get("state"), country=address.get("country"), is_primary=is_primary, customer_id=customer, address_id=str(uuid.uuid4().int)) addresses.append(address) for add in addresses: Address.objects.insert(add) response = {"result": "ok", "customer": customer_obj(customer)} return jsonify(response), 201