def test_fail_authentication(self): user = User({'username':'******', 'hash':calculate_hash('testtest'), 'salt':'test',}) self.assertEqual( user.authenticate('lolo'), False, 'Authentication should fail' ) user = User({'username':'******', 'hash':calculate_hash('testtest'), 'salt':'lol',}) self.assertEqual( user.authenticate('test'), False, 'Authentication should fail' )
def post(self, entity_id): existing_user = User.query(User.email == self.json.get('email').lower()).get() if existing_user: raise ResponseException('Error: {} already exists.'.format(self.json.get('email').lower()), no_error=True) if self.json['role'] == 'client': self.json['profile_pending'] = True if self.json['role'] == 'coach': self.json['approved'] = True model = CRUDService.do_post(self, entity_id, return_model=True) self.session['user'] = model self.resp = model.to_json() if model.role is Role.coach: add_task( '/admin/channel/users', 'POST', payload=self.resp ) self.send_approve_email() self.format_resp()
def get(self): users = User.query().fetch(FETCH_LIMIT) for user in users: user.profile_pending = False ndb.put_multi(users) self.resp = {'ADMINS': 'NOTIFIED'} self.format_resp()
def get(self, entity_id): if entity_id: self.resp = self.id_get() else: profile_pending = False if self.request.get('pending'): profile_pending = True users = User.query(User.profile_pending == profile_pending).order(-User.created).fetch(FETCH_LIMIT) self.resp = self.json_list(users) self.format_resp()
def get_me_some(self, number): value = "1234" list_users = [] for number in range(100, number + 100): data = dict( id=str(number), name="John {}".format(number), email="j@j{}.com".format(number), locale="en", approved=False, password=value, force_password=False, role="client", profile=dict( times_logged_in=2, phone="982374824", personal=dict( gender="Male", highest_education="High School/GED", marital_status="Divorced", address=dict( street="En la esquina", street2="", city="Poza Rica", state="Veracruz", postal="93562" ), living_status="", living_duration="3 Months", cell="6466546", home="354565", fb_link="facebook.com/hector", ), company=dict( name="", address=dict(street="", street2="", city="Poza", state="Calle de mi negocio", postal="31456"), registered=True, industry="Food", industry_other="", service_type="Financial", ), accepted_internet=True, ), expectations=dict(client="Many", coach="Not very many"), ) list_users.append(data) users = [User.post_from_json_id(_json) for _json in list_users] ndb.put_multi(users) return users
def login(): data = {} # type: Dict[str, Any] if request.method == "POST": email = request.form["email"] password = request.form["password"] user = User.from_login(email, password) if user is None: data["error"] = "u/p" elif current_user.is_authenticated: data["error"] = "logged" else: login_user(user) data["logged_in"] = True data.update(page_data("login")) data.update(request.args.to_dict()) return render_template("login.html.j2", **data)
def post(self, service): if service == 'password': email = self.json.get('email') user = User.query(User.email == email).get() if not user: raise ResponseException(PROP_NOT_FOUND.format('User', email), no_error=True) MailHandler.send_mail( email, 'Password Reset'.format(user.name), '{}/password-reset.html'.format(user.locale), { 'user': user.to_json(), 'reset': '{}#/password-reset/{}'.format(self.proto_host, user.key.urlsafe()), }, bcc=self.config.notify ) self.resp = {} self.format_resp()
def get(self): user = self.session.get('user', None) try: user = User.get_instance(user.key.urlsafe(), no_error=True) except Exception as e: logging.warning('session error: {}'.format(e)) if not user: return self.redirect("/") self.session['user'] = user logging.info("session user: {}".format(user)) self.template_values = { 'user': json.dumps(user.to_json(), indent=4, separators=(',', ': ')), 'host_url': self.proto_host, 'pair': {}, 'pairs': [] } # get coach from client_id if user.role == Role.client: client_id = user.key.urlsafe() pair = self.get_coach(client_id) self.template_values['pair'] = json.dumps(pair) else: coach_id = user.key.urlsafe() pairs = self.get_clients(coach_id) self.template_values['pairs'] = json.dumps(pairs) self.template_file = 'app/release/app.html' if self.request.get('debug', None) or self.app.debug: self.template_file = 'app/build/app.html' self.send_resp()
def load_user(user_id): return User.get(user_id)
def load_user(u_id: str) -> User: return User.from_id(u_id)
def test_authentication(self): user = User({'username':'******', 'hash':calculate_hash('testtest'), 'salt':'test',}) self.assertEqual( user.authenticate('test'), True, 'User should be now authenticated succesfully' )
def post(self, user_id): lang_map = { 'en': { 'account': 'Account Not Found', 'pass': '******', 'approved': 'User has not been approved', 'disabled': 'User has been disabled' }, 'es-mx': { 'account': 'Account Not Found', 'pass': '******', 'approved': 'User has not been approved', 'disabled': 'User has been disabled' }, 'pt-br': { 'account': 'Account Not Found', 'pass': '******', 'approved': 'User has not been approved', 'disabled': 'User has been disabled' } } locale = self.json.get('locale') map = lang_map[locale] user = User.query(User.email == self.json['email']).get() if not user: msg = map['account'] raise ResponseException(msg, no_error=True) if user.profile_pending and user.role == Role.client: if not bcrypt.hashpw(self.json['password'], user.password) == user.password: msg = map['pass'] raise ResponseException(msg, no_error=True) self.login(user) self.resp = {'redirect': '/app#/profile/create'} return self.format_resp() if not user.approved: msg = map['approved'] raise ResponseException(msg, no_error=True) if not user.status: msg = map['disabled'] raise ResponseException(msg, no_error=True) if not bcrypt.hashpw(self.json['password'], user.password) == user.password: msg = map['pass'] raise ResponseException(msg, no_error=True) client_role_string = self.json.get('role', None) if client_role_string: client_role = Role.lookup_by_name(client_role_string) if not user.profile: user.profile = Profile() self.login(user) self.resp = user.to_json() self.format_resp()