def franchise_signup(request): params = request.POST username = params.get('username','').strip() dealer_id = params.get('dealer_id','').strip() dealer_code = params.get('dealer_code','').strip() password = params.get('password','').strip() error = '' if not utils.is_valid_email(username): error = 'Enter a valid e-mail address.' else: error = validate_username_and_password(username, password, password) if not error: profile = utils.get_profile_by_email_or_phone(username) if profile: error = 'Sorry, "%s" profile is not available' % username user, profile = utils.get_or_create_user(username,'',password) print "user--->",user.id,", profile--->",profile.id else: if network_or_franchise_email(username): error = "Network or ICW related to this email already exists" else: if is_user_entry(username): error = "Email already exists in the database" else: try: logged_in_network = Network.objects.get(user=request.user) #Some dcode and d-ids already on production which are same. Hence filter and not equal to 0 check franchise_did = Franchise.objects.filter(network=logged_in_network.parent_network, dealer_id = dealer_id) if franchise_did.count() != 0: error = 'Dealer-ID already exists' if not error: franchise_dcode = Franchise.objects.filter(network=logged_in_network.parent_network, dealer_code = dealer_code) if franchise_dcode.count() != 0: error = 'Dealer-CODE already exists' except Network.DoesNotExist: error = 'Please logout and login again.' if not error: #Add User in first auth-users / profiles/ email/ phone/ user, profile = utils.get_or_create_user(username,'',password) franchise = Franchise(user=user,network=logged_in_network.parent_network,role='agent', dealer_id = dealer_id, dealer_code = dealer_code) franchise.save() message = "ICW '%s' added under '%s' network." % (user, logged_in_network) if error: response = dict(status='failed', html=error) else: response = dict(status='success', html = message) return HttpResponse(simplejson.dumps(response))
def signup(): """A new user can create a new account.""" errors = check_register_keys(request) if errors: return raise_error(400, "Invalid {} key".format(', '.join(errors))) details = request.get_json() firstname = details['firstname'] lastname = details['lastname'] surname = details['surname'] admission_no = details['admission_no'] email = details['email'] password = details['password'] form = details['form'] role = details['role'] if details['firstname'].isalpha() is False: return raise_error(400, "firstname is in wrong format") if details['lastname'].isalpha() is False: return raise_error(400, "lastname is in wrong format") if details['surname'].isalpha() is False: return raise_error(400, "surname is in wrong format") if details['role'].isalpha() is False: return raise_error(400, "role is in wrong format") if not is_valid_email(email): return raise_error(400, "Invalid Email Format!") if len(details['password']) < 8: return raise_error( 400, "length of password should be atleast eight characters") user_admission_no = json.loads(UsersModel().get_admission_no(admission_no)) if user_admission_no: return raise_error(400, "Admission Number Already Exists!") user_email = json.loads(UsersModel().get_email(email)) if user_email: return raise_error(400, "Email Already Exists!") if (form_restrictions(form) is False): return raise_error(400, "Form should be 1, 2, 3 or 4") user = json.loads( UsersModel(firstname, lastname, surname, admission_no, email, password, form, role).save()) return make_response( jsonify({ "message": "Account created successfully!", "status": "201", "user": user }), 201)
def authenticate(self, request, username=None, orderid=None): try: if orderid: try: if utils.is_future_ecom(request.client.client): order = Order.objects.filter( reference_order_id=orderid, state='pending_order') if order: order = order[0] else: return None else: order = Order.objects.get(id=orderid) except Order.DoesNotExist: return None profile = None if utils.is_valid_email(username): input_type = "email" elif utils.is_valid_mobile(username): input_type = "mobile" else: input_type = "id" if input_type == "email": try: email = Email.objects.get(email=username) profile = email.user except Email.DoesNotExist: return None if input_type == "mobile": try: phone = Phone.objects.get(phone=username) profile = phone.user except Phone.DoesNotExist: return None if profile: if order.user == profile: return profile.user return None except Profile.DoesNotExist: return None return None
def authenticate(self, request, username=None, orderid=None): try: if orderid: try: if utils.is_future_ecom(request.client.client): order = Order.objects.filter(reference_order_id=orderid,state='pending_order') if order: order = order[0] else: return None else: order = Order.objects.get(id=orderid) except Order.DoesNotExist: return None profile = None if utils.is_valid_email(username): input_type = "email" elif utils.is_valid_mobile(username): input_type = "mobile" else: input_type = "id" if input_type == "email": try: email = Email.objects.get(email=username) profile = email.user except Email.DoesNotExist: return None if input_type == "mobile": try: phone = Phone.objects.get(phone=username) profile = phone.user except Phone.DoesNotExist: return None if profile: if order.user == profile: return profile.user return None except Profile.DoesNotExist: return None return None
def authenticate(self, username=None, password=None, **kwargs): try: profile = None if utils.is_valid_email(username): input_type = "email" elif utils.is_valid_mobile(username): input_type = "mobile" else: input_type = "id" if input_type == 'email': try: email = Email.objects.get(email=username) profile = email.user except Email.DoesNotExist: return None if input_type == 'mobile': try: phone = Phone.objects.get(phone=username) profile = phone.user except Phone.DoesNotExist: return None if profile: #profile = Profile.objects.get(primary_phone=username) salt = profile.salt passcode = profile.passcode generated_passcode = hashlib.md5(salt).hexdigest() generated_passcode += hashlib.md5( password.encode('ascii', 'ignore')).hexdigest() generated_passcode = hashlib.md5( generated_passcode).hexdigest() if passcode == generated_passcode: return profile.user return None except Profile.DoesNotExist: return None return None
def authenticate(self, username=None, password=None, **kwargs): try: profile = None if utils.is_valid_email(username): input_type = "email" elif utils.is_valid_mobile(username): input_type = "mobile" else: input_type = "id" if input_type == 'email': try: email = Email.objects.get(email=username) profile = email.user except Email.DoesNotExist: return None if input_type == 'mobile': try: phone = Phone.objects.get(phone=username) profile = phone.user except Phone.DoesNotExist: return None if profile: #profile = Profile.objects.get(primary_phone=username) salt = profile.salt passcode = profile.passcode generated_passcode = hashlib.md5(salt).hexdigest() generated_passcode += hashlib.md5(password.encode( 'ascii', 'ignore')).hexdigest() generated_passcode = hashlib.md5(generated_passcode).hexdigest() if passcode == generated_passcode: return profile.user return None except Profile.DoesNotExist: return None return None
def migrate_subscriptions(): start = datetime(day=1, month=4, year=2011) subscripions_qs = FtbDealsLogin.objects.filter(registration_time__gte=start) newsletter = NewsLetter.objects.get(pk=2) for subscription in subscripions_qs: if SubscriptionSync.objects.filter(ext_id=subscription.id): #print 'Skipping %s: Already synced' % subscription.id continue email = subscription.email_address or '' mobile = subscription.mobile_number or '' name = subscription.register_name or '' if len(email) > 50 or len(name) > 100: #print 'Skipping %s: Long data' % subscription.id continue source = 'atg' if subscription.facebook_user == 1: source = 'facebook-atg' profile = None is_valid_email = False e = None if utils.is_valid_email(email): is_valid_email = True try: e = Email.objects.get(email=email) profile = e.user except Email.DoesNotExist: pass is_valid_mobile = False m = None if utils.is_valid_mobile(mobile): is_valid_mobile = True try: m = Phone.objects.get(phone=mobile) profile = m.user except Phone.DoesNotExist: pass if not is_valid_mobile and is_valid_email: #print 'Skipping %s, %s, %s: Invalid data' % (email, mobile, name) continue if not profile: # Create a new profile in our system if is_valid_email: usr, profile = utils.get_or_create_user(email, email, password=None, first_name=name) if not is_valid_email: usr, profile = utils.get_or_create_user(mobile, '', password=None, first_name=name) if not profile: # Still not able to create profile #print 'Skipping %s, %s, %s: No profile' % (email, mobile, name) continue if not e: try: e = Email.objects.get(email=email) except Email.DoesNotExist: # Create a new email e = Email() e.user = profile e.email = email e.save() if not m: try: m = Phone.objects.get(phone=mobile) except Phone.DoesNotExist: m = Phone() m.user = profile m.phone = mobile m.save() # Create an entry into the subscription table subscr = DailySubscription() subscr.email_alert_on = e subscr.sms_alert_on = m subscr.source = source subscr.timestamp = subscription.registration_time subscr.newsletter = newsletter subscr.save() link = SubscriptionSync() link.ext_id = subscription.id link.account = 'futurebazaar' link.save()
def migrate_subscriptions(): start = datetime(day=1, month=4, year=2011) subscripions_qs = FtbDealsLogin.objects.filter( registration_time__gte=start) newsletter = NewsLetter.objects.get(pk=2) for subscription in subscripions_qs: if SubscriptionSync.objects.filter(ext_id=subscription.id): #print 'Skipping %s: Already synced' % subscription.id continue email = subscription.email_address or '' mobile = subscription.mobile_number or '' name = subscription.register_name or '' if len(email) > 50 or len(name) > 100: #print 'Skipping %s: Long data' % subscription.id continue source = 'atg' if subscription.facebook_user == 1: source = 'facebook-atg' profile = None is_valid_email = False e = None if utils.is_valid_email(email): is_valid_email = True try: e = Email.objects.get(email=email) profile = e.user except Email.DoesNotExist: pass is_valid_mobile = False m = None if utils.is_valid_mobile(mobile): is_valid_mobile = True try: m = Phone.objects.get(phone=mobile) profile = m.user except Phone.DoesNotExist: pass if not is_valid_mobile and is_valid_email: #print 'Skipping %s, %s, %s: Invalid data' % (email, mobile, name) continue if not profile: # Create a new profile in our system if is_valid_email: usr, profile = utils.get_or_create_user(email, email, password=None, first_name=name) if not is_valid_email: usr, profile = utils.get_or_create_user(mobile, '', password=None, first_name=name) if not profile: # Still not able to create profile #print 'Skipping %s, %s, %s: No profile' % (email, mobile, name) continue if not e: try: e = Email.objects.get(email=email) except Email.DoesNotExist: # Create a new email e = Email() e.user = profile e.email = email e.save() if not m: try: m = Phone.objects.get(phone=mobile) except Phone.DoesNotExist: m = Phone() m.user = profile m.phone = mobile m.save() # Create an entry into the subscription table subscr = DailySubscription() subscr.email_alert_on = e subscr.sms_alert_on = m subscr.source = source subscr.timestamp = subscription.registration_time subscr.newsletter = newsletter subscr.save() link = SubscriptionSync() link.ext_id = subscription.id link.account = 'futurebazaar' link.save()