def setUp(self): Redis().flushall() p1 = Person(name='Test User 1', ssn='123456789') p1.save() pn1 = PhoneNumber(person=p1, label='Test 1', phone_number='5558675309') pn1.save() from django import db db.reset_queries()
def authorized(request): c = {} c.update(csrf(request)) print "pre_scraper" addresses = scraper.genAddrList() print "post_scraper" addresses = [(k,v + '(' + k +')') for k,v in addresses.items()] if request.method == 'POST': # If the form has been submitted... form = MACAddressForm(request.POST) # A form bound to the POST data form.fields['addresses'].choices = addresses if form.is_valid(): choices = form.cleaned_data['addresses'] BlacklistedMAC.objects.all().delete() phone = form.cleaned_data['phone'].replace('(','').replace(')','').replace('-','').replace('.','') if len(phone) == 10: p = PhoneNumber(phone=phone) p.save() else: c['form'] = form return render_to_response('auth.html', c) for mac in choices: obj = BlacklistedMAC(address=mac) obj.save() return HttpResponseRedirect('/done/') # Redirect after POST else: form = MACAddressForm() form.fields['addresses'].choices = addresses if 'code' in request.GET: ACCESS_TOKEN_URL = 'https://dev.tendrilinc.com/oauth/access_token' authToken = request.GET[u'code'] ACCESS_TOKEN_URL += '?grant_type=authorization_code' ACCESS_TOKEN_URL += '&code='+str(authToken) ACCESS_TOKEN_URL += '&redirect_uri=www.google.com' ACCESS_TOKEN_URL += '&client_id='+API_KEY ACCESS_TOKEN_URL += '&client_secret='+APP_SECRET data = requests.get(ACCESS_TOKEN_URL, verify=False).text for obj in Data.objects.all(): obj.delete() d = Data(**json.loads(data)) d.save() c['form'] = form return render_to_response('auth.html', c)
def test_check_auth_redis_miss(self): db_handler = self.auth_handler.db_handler db_conn = db_handler.getEngine().connect() db_txn = db_conn.begin() try: db_session = Session(bind=db_conn) try: account = Account(auth_id='some_auth_id', username='******') db_session.add(account) db_session.flush() phonenumber = PhoneNumber(number='9740171794', account_id=account.id) db_session.add(phonenumber) db_session.commit() self.auth_handler.redis_client.hget.return_value = None self.auth_handler.redis_client.pipeline.return_value = redis_pipeline_mock = MagicMock( ) status, phonenums = self.auth_handler._check_auth( 'some_user', 'some_auth_id', db_session) self.assertTrue(status) self.assertEquals(set(['9740171794']), phonenums) self.assertEquals(redis_pipeline_mock.hset.call_count, 1) redis_pipeline_mock.hset.assert_called_with( self.auth_handler._REDIS_AUTH_HASH, 'some_user', 'some_auth_id') self.assertEquals(redis_pipeline_mock.sadd.call_count, 1) redis_pipeline_mock.sadd.assert_called_with( 'some_user', '9740171794') self.assertEquals(redis_pipeline_mock.execute.call_count, 1) finally: db_session.close() finally: db_txn.rollback() db_conn.close()
def create(last_name, first_name, emails=None, phone_numbers=None): """ Create a new user """ user = User(last_name=last_name, first_name=first_name) if emails: for email in emails: Email(mail=email, user_id=user.id).save() if phone_numbers: for number in phone_numbers: PhoneNumber(number=number, user_id=user.id).save() return user.save()
def run(self, **kwargs): global contacts global allgroups user = User.objects.get(email='*****@*****.**') contacts = [] allgroups = [] #print "sync google contacts" admin_accounts = GoogleAdminAccounts.objects.filter(enable=True).order_by('priority').reverse() if len(admin_accounts) > 0 : account = admin_accounts[0] gather_contacts(account.email, account.password) write_contacts() for contact in contacts: t = timezone.now() # offset-awared datetime now_aware = contact['last_changed'].replace(tzinfo=pytz.UTC) #t.astimezone(timezone.utc).replace(tzinfo=None) #print now_aware < account.last_changed if len(contact['phones']) > 0 : p = PhoneNumber() p.user = user pn = phonenumbers.format_number(contact['phones'][0]['tel'], phonenumbers.PhoneNumberFormat.E164) found_type = "" for tel_type in tel_types: if tel_type in contact['phones'][0]['type'] : found_type = tel_type #found = any(contact['phones'][0]['type'] in item for item in tel_types) print 'fnd:', found_type p.phone_type = found_type p.phone_number = pn p.save() account.last_changed = t account.save()
def search(self): value = self.search_field.text() self.empty.setStyleSheet("") self.empty.setText(u"") contacts = [] try: contacts = PhoneNumber.filter(number__icontains=int(value)) except ValueError: contacts = PhoneNumber.filter(contact__name__icontains=value) pass try: value = contacts.get() self.parent.table_contact.refresh_(search=value) self.search_field.clear() except AttributeError: pass except: self.empty.setStyleSheet("font-size:20px; color: red") self.empty.setText(u"%s n'existe pas" % value)
def create_db(): from models import User, PhoneNumber upgrade() u = User(first_name='Michael', last_name='Chen', email='*****@*****.**', password='******') ph = PhoneNumber(number='6194933738', user=u, choices='{}', in_use=False) db.session.add_all([u, ph]) db.session.commit()
def create_model(self, form): try: assert isinstance(form.phone.data, str) and form.phone.data != '', form.phone.data assert isinstance(form.verified.data, bool), form.verified.data model = PhoneNumber(phone=form.phone.data, verified=form.verified.data) self.session.add(model) self.session.commit() logger.info(f'PhoneNumber create by admin {auth_get_current_username()}: {model.to_json()}') except Exception as ex: self.session.rollback() flash(f'Failed to create phone number. {str(ex)}', 'error') logger.exception(f'PhoneNumber update by admin {auth_get_current_username()} raised exception') return False return True
def finder(self): completion_values = [] search_term = self.search_field.text() try: contacts = PhoneNumber.filter(number__icontains=int(search_term)) except ValueError: contacts = Contact.filter(name__icontains=search_term) for contact in contacts: completion_values.append(contact.__unicode__()) completer = QtGui.QCompleter(completion_values, parent=self) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) completer.setCompletionMode(QtGui.QCompleter.UnfilteredPopupCompletion) self.search_field.setCompleter(completer)
def set_data_for(self, group_id=None, search=None): if search: self.data = [("", tel.contact.name) for tel in PhoneNumber.filter().group_by('contact') if search.contact == tel.contact] else: self.data = [("", contact.name) for contact in Contact.all()] if group_id: if group_id == ALL_CONTACTS: qs = ContactGroup.filter().group_by('contact') else: qs = ContactGroup.filter(group__id=group_id) self.data = [("", contact_gp.contact.name) for contact_gp in qs]
def test_check_auth_redis_miss_wrong_auth_id(self): db_handler = self.auth_handler.db_handler db_conn = db_handler.getEngine().connect() db_txn = db_conn.begin() try: db_session = Session(bind=db_conn) try: account = Account(auth_id='some_auth_id', username='******') db_session.add(account) db_session.flush() phonenumber = PhoneNumber(number='9740171794', account_id=account.id) db_session.add(phonenumber) db_session.commit() self.auth_handler.redis_client.hget.return_value = None status, phonenums = self.auth_handler._check_auth( 'some_user', 'faulty_auth_id', db_session) self.assertFalse(status) self.assertEquals(None, phonenums) finally: db_session.close() finally: db_txn.rollback() db_conn.close()
def phone_number_sd(): phone_number_sd = PhoneNumber(phone="+16555555556", verified=True) db.session.add(phone_number_sd) db.session.commit() yield phone_number_sd
def queue_import_customers_from_usaepay(company_id, user_id): if not settings.TEST_MODE: from ppars.apps.price.models import SellingPriceLevel user = User.objects.get(id=user_id) company = CompanyProfile.objects.get(id=company_id) level_price = SellingPriceLevel.objects.get(level='1') message = '' added = 0 exists = 0 not_added = 0 found = 0 try: if company.usaepay_username and company.usaepay_password: payload = { 'username': company.usaepay_username, 'password': company.usaepay_password, 'stamp': '4159eb01db85b605b2616f384f903f84a477b1de' } s = requests.Session() r = s.post('https://secure.usaepay.com/login', data=payload) if r.url not in ['https://secure.usaepay.com/console/']: raise Exception( "Failed to login to USAePay, please check credentials") r = s.get( 'https://secure.usaepay.com/console/billing?limitstart=0&limit=2000&filter=&sortkey=&sortdir=&level=&type=' ) # r = s.post('https://sandbox.usaepay.com/login', data=payload) # if r.url not in ['https://sandbox.usaepay.com/console/']: # raise Exception("Failed to login to USAePay, please check credentials") # r = s.get('https://sandbox.usaepay.com/console/billing?limitstart=0&limit=2000&filter=&sortkey=&sortdir=&level=&type=') soup2 = BeautifulSoup(r.text) forms = soup2.findAll('form') usaepay_customers = [] for form in forms: if form.get('name') == 'custs': inputs = soup2.findAll('input') for obj in inputs: if obj.get('name') == 'sel[]': usaepay_customers.append(obj.get('value')) # for a in form.findAll('a'): # if 'javascript:editCustomer' in a.get('href'): # usaepay_customers.append(int(a.get('href').replace('javascript:editCustomer(\'', '').replace('\')', ''))) found = len(usaepay_customers) system_customers = Customer.objects.filter(company=company) for customer in system_customers: if customer.usaepay_customer_id: if customer.usaepay_customer_id in usaepay_customers: usaepay_customers.remove( customer.usaepay_customer_id) exists = found - len(usaepay_customers) if exists + Customer.objects.filter(company=company).count( ) > company.customer_limit and company.customer_limit != 0: raise Exception( 'Customer limit has been reached. Please contact administrator.' ) if usaepay_customers: for usaepay_customer in usaepay_customers: if company.usaepay_source_key and company.usaepay_pin: try: token = company.usaepay_authorization() client = SoapClient(wsdl=settings.USAEPAY_WSDL, trace=False, ns=False) response = client.getCustomer( CustNum=usaepay_customer, Token=token) result = response['getCustomerReturn'] if result: first_name = '' last_name = '' enabled = False city = '' zip = '' state = '' address = '' primary_email = '' creditcard = '' usaepay_custid = '' company_name = '' pns = [] logger.debug('Notes "%s"' % result['Notes']) if 'Notes' in result and result['Notes']: pns = extract_phone_numbers_from_notes( result['Notes']) if 'Enabled' in result and result[ 'Enabled']: enabled = result['Enabled'] if 'BillingAddress' in result: if 'City' in result[ 'BillingAddress'] and result[ 'BillingAddress']['City']: city = result['BillingAddress'][ 'City'].strip() if 'Zip' in result[ 'BillingAddress'] and result[ 'BillingAddress']['Zip']: zip = result['BillingAddress'][ 'Zip'].strip() if 'FirstName' in result[ 'BillingAddress'] and result[ 'BillingAddress'][ 'FirstName']: first_name = result[ 'BillingAddress'][ 'FirstName'].strip() if 'LastName' in result[ 'BillingAddress'] and result[ 'BillingAddress'][ 'LastName']: last_name = result[ 'BillingAddress'][ 'LastName'].strip() if 'Company' in result[ 'BillingAddress'] and result[ 'BillingAddress'][ 'Company']: company_name = result[ 'BillingAddress'][ 'Company'].strip() logger.debug( 'Phone "%s"' % result['BillingAddress']['Phone']) if 'Phone' in result[ 'BillingAddress'] and result[ 'BillingAddress']['Phone']: for n in extract_phone_numbers_from_notes( result['BillingAddress'] ['Phone'] ): #.strip().replace('-', '').replace(' ', '') if n not in pns: pns.append(n) if 'State' in result[ 'BillingAddress'] and result[ 'BillingAddress']['State']: state = result['BillingAddress'][ 'State'].strip() if 'Street' in result[ 'BillingAddress'] and result[ 'BillingAddress']['Street']: address = result['BillingAddress'][ 'Street'].strip() if 'Email' in result[ 'BillingAddress'] and result[ 'BillingAddress']['Email']: primary_email = result[ 'BillingAddress'][ 'Email'].strip() if 'PaymentMethods' in result: if len(result['PaymentMethods']) > 0: if 'item' in result[ 'PaymentMethods'][0]: item = result[ 'PaymentMethods'][0][ 'item'] creditcard = str( item.CardNumber) if 'CustomerID' in result and result[ 'CustomerID']: p = result['CustomerID'] for token in [ ', ', '. ', ' ', ',', '.' ]: p = p.replace(token, '|') p = p.replace('|', ', ').strip() if ',' != p[-1:]: p = '%s,' % p usaepay_custid = p new_customer = Customer.objects.create( usaepay_customer_id=usaepay_customer, usaepay_custid=usaepay_custid, user=user, company=company, charge_getaway='U', charge_type='CC', save_to_usaepay=True, creditcard=creditcard, first_name=first_name or company_name or str(usaepay_customer), last_name=last_name or str(usaepay_customer), enabled=enabled, city=city, zip=zip, selling_price_level=level_price, state=state, address=address, primary_email=primary_email, ) for number in pns: PhoneNumber.create( company=company, customer=new_customer, number=number) added = added + 1 message = '<a href="%s">%s</a><br/>%s' % ( reverse('customer_update', args=[new_customer.id]), new_customer, message) if message: message = 'This is customer from USAePay. Please check them out. %s' % ( message) # messages.add_message(request, messages.SUCCESS, '%s' % message) except Exception, e: not_added = not_added + 1 message = 'Customer with ID "%s" did`t added. Error:%s<br/>%s' % ( usaepay_customer, e, message) else: message = 'no USAePay tokens for API requests' # messages.add_message(request, messages.ERROR, '%s' % message) else: message = 'All USAePay users already exist in your system' else: message = 'no USAePay username/password for API requests' # messages.add_message(request, messages.ERROR, '%s' % message) message = ( '%s customers added, %s customers exists, %s not added of %s<br/><br/>%s' % (added, exists, not_added, found, message))
def click_item(self, row, column, *args): number = PhoneNumber.filter(contact__name=self.data[row][1]).get() self.parent.table_info.refresh_(number) self.parent.table_transf.refresh_(number)
def set_data_for(self, number): self.data = [(tel.contact.name, tel.number) for tel in PhoneNumber.all() if number.contact == tel.contact]
def phone_number_ru(): phone_number_ru = PhoneNumber(phone="+16555555559", verified=True) db.session.add(phone_number_ru) db.session.commit() yield phone_number_ru
def phone_number_f(): phone_number_f = PhoneNumber(phone="+16555555558", verified=True) db.session.add(phone_number_f) db.session.commit() yield phone_number_f
def phone_number_2(): new_phone_number_2 = PhoneNumber(phone="+15555555556", verified=True) db.session.add(new_phone_number_2) db.session.commit() yield new_phone_number_2
def addressbook_transfer(contact_id): numbers = PhoneNumber.filter(contact=Contact.get(id=int(contact_id))) data = {'transfers': [tr.to_dict() \ for tr in Transfer.filter(number__in=numbers)]} return json.dumps(data)
def phone_number_b(): phone_number_b = PhoneNumber(phone="+16555555557", verified=True) db.session.add(phone_number_b) db.session.commit() yield phone_number_b