def registrate(email, nickname, passwd, passwd_chk): email_splitted = email.split('@') if len(email_splitted) != 2: flash('Email address isn\'t correct. Try again') return redirect(url_for('signup')) if nickname == '': nickname = email_splitted[0] if Users.query.filter_by(nickname = nickname).first() is not None: flash('The user with such nickname already exist. Try another nickname') return redirect(url_for('signup')) if passwd != passwd_chk: flash('The passwords don\'t match. Try again') return redirect(url_for('signup')) user = Users.query.filter_by(email = email).first() if user is not None: flash('The user with such email already exist. Try another email') return redirect(url_for('signup')) else: user = Users(email = email, nickname = nickname, passwd = passwd) user.set_password(passwd) db.session.add(user) firstTree = Tree(user, "firstTree") # for tests rootb = firstTree.rootb b1 = Branch(text="branch1_" + str(firstTree.name), parent=rootb) b11 = Branch(text="branch11_" + str(firstTree.name), parent=b1) b12 = Branch(text="branch12_" + str(firstTree.name), parent=b1) # db.session.commit() return redirect(url_for('success_signup'))
def insertUserProfile(payload): try: user = Users( name=payload['name'], lastname=payload['surname'], username=payload['username'], gender=payload['gender'], pwd=-1, email=payload['mail'], mobile=payload['phone'], country=payload['country'], city=payload['city'], address=payload['address'], postal_code=payload['postcode'], is_active=True, experience=ItExperience.objects.get(level__iexact=payload['skills']), last_login=datetime.today(), registration=datetime.today() ) user.save() return user except Exception as ex: logger.exception(str(ex)) if settings.DEBUG: print_exc() return -1
def validate(self): if not Form.validate(self): return False if self.username.data == self.original_username: return True if self.username.data != Users.make_valid_username(self.username.data): self.username.errors.append( gettext("This username has invalid characters. Please use letters, numbers, dots and underscores only.") ) return False user = Users.query.filter_by(username=self.username.data).first() if self.password.data != Users.make_valid_password(self.password.data): self.username.errors.append( gettext("This password has invalid characters. Please use letters, numbers, dots and underscores only.") ) return False password = Users.query.filter_by(password=self.password.data).first() if self.email.data != Users.make_valid_email(self.email.data): self.username.errors.append( gettext("This email has invalid characters. Please use letters, numbers, dots and underscores only.") ) return False email = Users.query.filter_by(email=self.email.data).first() if user != None: self.username.errors.append(gettext("This username is already in use. Please choose another one.")) return False return True
def registrate(username, passwd, email): user = Users.query.filter_by(nickname = username).first() if user is not None: flash('Such user already exist. Try another username') return redirect(url_for('registration')) else: user = Users(nickname = username, passwd = passwd, email = email) user.set_password(passwd) db.session.add(user) db.session.commit() return redirect(url_for('success_registration'))
def view_bucket_list(): '''A method that returns the route of viewbucketlist in the html. ''' prompt = "You currently have no bucketlists on the bucket list," prompt += " press the create new bucket list button to create a new bucket!" if request.method == "POST": return redirect(url_for('create_bucket_list')) bucket_items = BucketList().view_bucket() name_of_user = Users().users[Users.get_id()].user_name.upper() if name_of_user.endswith('s'): name_of_user += "'" else: name_of_user += "'s" return render_template("ViewBucketList.html", bucket_items=bucket_items, prompt=prompt, name_of_user=name_of_user)
def insert_user(self, token, name, last_name, email): if token: response = Users( token=token, name=name, last_name=last_name, email=email, created_at=datetime.datetime.now()) response.save() return True return False
def post(self): raw_dict = request.get_json(force=True) try: user = Users(raw_dict['email'], raw_dict['password'], raw_dict['name'], raw_dict['active']) user.add(user) # Should not return password hash query = Users.query.get(user.id) results = schema.dump(query) return results, 201 except SQLAlchemyError as e: db.session.rollback() resp = jsonify({"error": str(e)}) resp.status_code = 403 return resp
def POST(self): loginform = LoginForm() if not loginform.validates(): return self.__makepage(loginform) user = Users.get_by_username(loginform.username.value) session.signin(user.id) return web.seeother('/')
def validate(self): if request.form["user_name"] is None or request.form["user_name"].strip()=="": return False inserted_username = request.form["user_name"] user = Users.query.filter_by(user_name = inserted_username).first() if user != None: suggested_username = Users.create_unique_username(inserted_username) flash('This username already exists. Consider register with %s' % suggested_username) return False return True
def do_reg(): from app.models import Users _uname = request.form['username'].strip() _pwd = request.form['password'].strip() # 检验数据 if len(_uname)>20 or len(_uname)<5: return '用户名要求长度5-20' elif len(_pwd)>20 or len(_pwd)<8: return '密码要求长度8-20' else: exists_users = Users.objects.filter(username = request.form['username']) if exists_users.count()>0: return '帐号已存在' # 执行注册 new_user = Users( username = _uname, password = _pwd ) new_user.save() return '注册成功'
def userslist(): user = g.user if request.method == "GET": req_str = request.args.get('q', default='', type=str) req_str = req_str.replace(' ', '') res = [] for curuser in Users.getUsersList(): if curuser.id != user.id and ( req_str == '' or curuser.nickname.find(req_str) == 0 ): res.append({ 'id' : curuser.id, 'name' : curuser.nickname }) return json.dumps(res)
def post(self): raw_dict = request.get_json(force=True) try: schema.validate(raw_dict) request_dict = raw_dict['data']['attributes'] print(raw_dict) user = Users(request_dict['name'], request_dict['email']) user.add(user) # Shouldn't return password hash query = Users.query.get(user.id) results = schema.dump(query).data return results, 201 except ValidationError as err: resp = jsonify({"error": err.messages}) resp.status_code = 403 return resp except SQLAlchemyError as e: db.session.rollback() resp = jsonify({"error": str(e)}) resp.status_code = 403 return resp
def facebook(request): host = request.get_host() """ :param request: :return: """ params = { 'client_id': settings.FACEBOOK_APP_ID, 'redirect_uri': 'http://'+host+'/facebook', 'client_secret': settings.FACEBOOK_SECRET_KEY, 'code': request.GET['code'] } http = httplib2.Http(timeout=15) response, content = http.request('https://graph.facebook.com/oauth/access_token?%s' % urllib.urlencode(params)) print response print content # Find access token and expire (this is really gross) params = content.split('&') ACCESS_TOKEN = params[0].split('=')[1] EXPIRE = params[1].split('=')[1] # Get basic information about the person response, content = http.request('https://graph.facebook.com/me?access_token=%s' % ACCESS_TOKEN) data = json.loads(content) # Try to find existing profile, create a new user if one doesn't exist try: user = Users.objects.get(facebook_uid=data['id']) #request.session['data']=data # print request.session.get('data','not working') except Users.DoesNotExist: user = Users() user.facebook_uid = data['id'] user.user = data['name'] user.facebook_access_token = ACCESS_TOKEN user.facebook_access_token_expires = EXPIRE user.save() #login(request, user) request.session['user'] = user request.session['block_sources'] = "initial" print request.session.get('user', 'Not working') # # Authenticate and log user in # user = authenticate(username=profile.user.username, password=profile.facebook_uid) return HttpResponseRedirect('/home') # return render(request, "settings.html", data)
def getNewUser(self): user = Users() user.user_login = self.__user_login user.user_name = self.__user_name user.user_pass = self.__user_pass user.user_phone = self.__user_phone user.school_id = self.__school_id user.user_rule = self.__user_rule db.session.add(user) db.session.commit() return user
def register(): if request.method == 'POST': username = request.form['username'] email = request.form['email'] password = request.form['password'] password_hash = generate_password_hash(password) try: o365__tickets = request.form['mbc_checkbox'] except: o365__tickets = None status = 'ENABLED' #Check if fields are entered correctly username_query = Users.query.filter_by(username=username).first() pwlength = len(password) if username_query: error = "Username already exists" return render_template('register.html', error=error) elif pwlength < 4: error = "Password less than 4 characters" return render_template('register.html', error=error) new_user = Users(username=username, password_hash=password_hash, email=email, notifications=status) db.session.add(new_user) db.session.commit() #start the o365 app registration if checkbox is checked off by the user if o365__tickets: callback = f"{request.url_root}register_step_two" #where to redirect to after authentication, this needs to be https print("Adding new user to the ticket app via O365") #Save authentication token in the file system global state, token_backend token_backend = FileSystemTokenBackend( token_path=token_dir, token_filename=f'token_{username}.txt') #Authentication with azure o365 is done here account = Account(AZR_CRED, token_backend=token_backend) url, state = account.con.get_authorization_url( requested_scopes=AZR_SCOPES, redirect_uri=callback) return redirect(url) else: return render_template( 'register.html', o365_message= 'User Created, did not register for O365 level tickets') return render_template('register.html')
def users_register(): request_data = request.get_json() email = request_data['email'] user = Users.query.filter_by(email=email).first() if user: # NOTE: There needs to be some more logic here. TO prevent users from seeing a broken QR code. return error_response(ALREADY_REGISTERED) password = request_data['password'] if not password or password != request_data['passwordMatch']: return error_response(INCORRECT_PASSWORD) # At this point we call out to the SSI backend and send a POST request. # POST request is going to contain the request data so that can be used to create the VC r = requests.post(SSI_ENDPOINT + '/users/register', json={'email': email, 'password': password}) user = Users.create(email=email, password=password, username=email.split('@')[0]) return jsonify(r.json()), SUCCESS
def logout_user(): """API endpoint to logout user""" access_token = request.headers.get('Authorization') if access_token: # attempt to decode the token and get the User ID user_id = Users.decode_token(access_token) if not isinstance(user_id, str): blacklist_token = BlacklistTokens(token=access_token) blacklist_token.save() response = {'message': 'Successfully logged out'} return make_response(jsonify(response)), 200 else: # user is not legit, so the payload is an error message message = user_id response = {'message': message} return make_response(jsonify(response)), 401 rep = {'message': 'Please register or login.'} return make_response(jsonify(rep)), 401
def logout(): auth_header = request.headers.get('Authorization') auth_token = auth_header.split(' ')[0] if auth_token: decoded = Users.decode_auth_token(auth_token) if isinstance(decoded, str): responseObject = {'status': 'error', 'message': decoded} return jsonify(responseObject), 401 else: blacklist_token = BlacklistToken(token=auth_token) db.session.add(blacklist_token) db.session.commit() responseObject = {'status': 'success', 'message': 'Logged out.'} return jsonify(responseObject), 200 else: responseObject = {'status': 'error', 'message': 'Invalid token.'} return jsonify(responseObject), 403
def generate_users(self, cnt): if cnt is None: return False print('Generate {} users'.format(cnt)) users = [ User(username=f.first_name() + str(i), email=f.email()) for i in range(cnt) ] self.insert_data(User, users) author_ids = list(User.objects.values_list('id', flat=True)) objs = [ Users(user_id=author_ids[i - 1], nick=User.objects.get(pk=i).username) for i in range(1, cnt + 1) ] self.insert_data(Users, objs)
def create_user(first_name=None, last_name=None, email=None, ein=None, is_admin=False, is_active=False): """Create an agency user.""" if first_name is None: raise InvalidCommand("First name is required") if last_name is None: raise InvalidCommand("Last name is required") if email is None: raise InvalidCommand("Email is required") if ein is None: raise InvalidCommand("Agency EIN is required") user = Users(guid=generate_guid(), auth_user_type=user_type_auth.AGENCY_LDAP_USER, email=email, first_name=first_name, last_name=last_name, title=None, organization=None, email_validated=True, terms_of_use_accepted=True, phone_number=None, fax_number=None, mailing_address=create_mailing_address( None, None, None, None)) db.session.add(user) agency_user = AgencyUsers(user_guid=user.guid, auth_user_type=user.auth_user_type, agency_ein=ein, is_agency_active=is_active, is_agency_admin=is_admin, is_primary_agency=True) db.session.add(agency_user) db.session.commit() print(user)
def register(): if request.method == 'GET': return render_template('home/login/register.html') elif request.method == 'POST': u = Users() u.name = request.form['username'] u.pwd = u.md5password(request.form['password']) u.email = request.form['email'] db.session.add(u) db.session.commit() return redirect(url_for('home.login'))
def LoginAndSignUp(request): if request.method == 'POST': post=Users() post.username= request.POST.get('username') post.umail=request.POST.get('email') try: Users.person.get(umail=post.umail) messages.error(request,"Emaill Already Taken") return render(request, 'LoginAndSignUp.html') except: post.uphone=request.POST.get('phoneno') post.upassword=request.POST.get('password') post.uconfirmpass=request.POST.get('uconfirmpassword') if(post.upassword!=post.uconfirmpass): messages.error(request,"Password and confirm password should be same") return render(request, 'LoginAndSignUp.html') post.save() messages.success(request, 'Your profile was updated.') return render(request, 'LoginAndSignUp.html') else: return render(request,'LoginAndSignUp.html')
def register(): #Instantiate form and get form data. form = RegistrationForm() if request.method == 'POST' and form.validate_on_submit(): username = form.username.data password = form.password.data name = form.name.data email = form.email.data location = form.location.data biography = form.biography.data photo = form.photo.data filename = secure_filename(photo.filename) photo.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) #Save information to database. user = Users(username=username, password=password, name=name, email=email, location=location, biography=biography, photo=filename) db.session.add(user) db.session.commit() #Format and return response message. new_user = { 'message': 'User Registration Successful.', 'username': username, 'name': name, 'email': email, 'location': location, 'biography': biography, 'photo': filename } return jsonify(new_user=new_user) """ else: errors = form_errors(form) return jsonify(errors=errors) """ return render_template("registration_form.html", form=form)
def register(): my_register = RegisterForm() if request.method == "POST" and my_register.validate_on_submit(): username = my_register.Username.data password = my_register.Password.data firstname = my_register.Firstname.data lastname = my_register.Lastname.data email = my_register.Email.data location = my_register.Location.data biography = my_register.biography.data Date = joinDate() user = Users(username, password, firstname, lastname, email, location, biography, Date) db.session.add(user) db.session.commit() return render_template("index.html") form_errors(my_register) return render_template('index.html', my_register=my_register)
def register(): """accepts user information and save it to the database""" form=UserRegistration() # now = datetime.datetime.now() if request.method == 'POST' and form.validate_on_submit(): firstname = form.firstname.data lastname = form.lastname.data gender = form.gender.data email = form.email.data password = form.password.data NewProfile = Users(id=id,firstname=firstname, lastname=lastname,gender=gender,email=email,password=password) db.session.add(NewProfile) db.session.commit() return redirect(url_for('register', firstname=firstname,lastname=lastname,gender=gender, email=email,password=password )) return render_template('addprofile.html', form=form)
def add_tasks(): form = CreateTask() # Obtener datos del formulario team_leader = int(form.team_leader.data) managers = str(form.manager.data).split(';') date = form.date.data # Crear modelo de las tareas a guardar id_team_leader = Users.by_username(team_leader) for manager in managers: manager = int(manager) task: Tasks = Tasks(manager, date, id_team_leader.id_users) # Guardar tarea task.save() flash('Se agrego la tarea', 'alert-success') return redirect(url_for('admin.tasks'))
def generateTemplate(serverid): serverKey = Servers.getServerById(serverid)[0].serverkey template = TEMPLATEPATH.format(serverid) with open(template,'w') as f: f.write(defaultHeading(serverKey,"S")) f.write('\n{0}'.format(commentGen("GROUPS"))) for x in Groups.getAGroupByServerId(serverid): if x.remarks: f.write('\n{0}'.format(commentGen(x.remarks))) aclname = '' if x.aclid: aclname = x.groups.aclname f.write(group(x.groupname,x.defaultservice,x.services,x.parent,x.member,aclname,x.logintype,x.remarks)) f.write('\n') f.write(userHeading()) f.write('\n{0}'.format(commentGen("USERSLIST"))) for d in Users.getUsersByServerId(serverid): f.write(users(d.username,d.users.groupname))
def register(): form = RegistForm() if form.validate_on_submit(): data = form.data password = generate_password_hash(data['pw1']) print(password) user = Users(username=data['username'], tel=data['tel'], password1=password, email=data['email']) try: db.session.add(user) db.session.commit() flash('注册成功,请登陆', 'ok') except: flash('未知错误,注册未成功', 'err') return redirect('blog.register') return redirect(url_for('blog.login')) return render_template('register.html', form=form)
def reset_token(token): if current_user.is_authenticated: return redirect(url_for('home')) user = Users.verify_reset_token(token) if user is None: flash('That is an invalid or expired token', 'warning') return redirect(url_for('reset_request')) form = ResetPasswordForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user.password = hashed_password db.session.commit() flash('Your password has been updated! You are now able to log in', 'success') return redirect(url_for('login')) return render_template('reset_token.html', title='Reset Password', form=form)
def register(): form=RegisterForm() if request.method == 'POST': if form.validate_on_submit(): photo=request.files['photo'] filename=secure_filename(photo.filename) datejoined=date.today() user=Users(request.form['username'],request.form['password'],request.form['fullname'], request.form['email'], request.form['location'], request.form['biography'], filename,datejoined) if user is not None: db.session.add(user) db.session.commit() photo.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) successful={'message': 'You are now registered',} return jsonify(successful=successful) else: errors={"errors":form_errors(form)} return jsonify(errors=errors)
def login() -> wrappers.Response: auth = request.authorization if not auth or not auth.username or not auth.password: return make_response( 'Could not verify', 401, {'WWW-Authenticate': 'Basic realm="Login required!"'}) user = Users.query.filter_by(name=auth.username).first() if not user: return make_response( 'Could not verify', 401, {'WWW-Authenticate': 'Basic realm="Login required!"'}) if check_password_hash(user.password, auth.password): return jsonify({'token': Users.encode_auth_token(user)}), 200 return make_response('Could not verify', 401, {'WWW-Authenticate': 'Basic realm="Login required!"'})
def create_user(self, auth_type, guid=None, agency_ein=None, email=None, first_name=None, last_name=None, title=None, organization=None, phone_number=None, fax_number=None, mailing_address=None, email_validated=True, terms_of_use_accepted=True, is_agency_active=False, is_agency_admin=False): if auth_type == user_type_auth.AGENCY_USER: assert agency_ein is not None else: assert all((agency_ein is None, not is_agency_active, not is_agency_admin)) if auth_type == user_type_auth.ANONYMOUS_USER: email_validated, terms_of_use_accepted = False, False user = Users( guid=guid or self.generate_user_guid(auth_type), auth_user_type=auth_type, agency_ein=agency_ein, email=email or fake.email(), first_name=first_name or fake.first_name(), last_name=last_name or fake.last_name(), title=title or fake.user_title(), organization=organization or fake.organization(), phone_number=phone_number or fake.phone_number(), fax_number=fax_number or fake.fax_number(), mailing_address=mailing_address or fake.mailing_address(), email_validated=email_validated, terms_of_use_accepted=terms_of_use_accepted, is_agency_active=is_agency_active, is_agency_admin=is_agency_admin, ) create_object(user) return user
def register(): registrationForm = RegisterForm() if registrationForm.validate_on_submit(): # username = registrationForm.username.data username = request.form['username'] # password = registrationForm.password.data password = request.form['password'] # firstName = registrationForm.firstName.data firstName = request.form['firstName'] # lastName = registrationForm.lastName.data lastName = request.form['lastName'] # gender = registrationForm.gender.data gender = request.form['gender'] # email = registrationForm.email.data email = request.form['email'] # location = registrationForm.location.data location = request.form['location'] # biography = registrationForm.biography.data biography = request.form['biography'] photo = registrationForm.photo.data profile_picture = secure_filename(photo.filename) photo.save(os.path.join(app.config['UPLOAD_FOLDER'], profile_picture)) user = Users(username=username, password=password, firstname=firstName, lastname=lastName, gender=gender, email=email, location=location, biography=biography, profile_picture=profile_picture) db.session.add(user) db.session.commit() successMessage = {"message": "User successfully registered"} return jsonify(successMessage=successMessage) else: registerError = {"errors": form_errors(registrationForm)} return jsonify(registerError=registerError)
def user_login(): if request.method == "POST": username = request.form.get("username") password = request.form.get("password") # from sqlalchemy.orm import sessionmaker # Session = sessionmaker(engine) # db_sesson = Session() # 现在不用了,因为 Flask-SQLAlchemy 也已经为我们做好会话打开的工作 db.session.add(Users(username=username, password=password)) db.session.commit() # 然后再查询,捏哈哈哈哈哈 user_info = Users.query.filter(Users.username == username and Users.password == password).first() print(user_info.username) if user_info: return f"登录成功{user_info.username}" return render_template("login.html")
def login(): username = request.json['username'] password = request.json['password'] if not username: return jsonify({"msg": "Missing username parameter"}), 400 if not password: return jsonify({"msg": "Missing password parameter"}), 400 user = Users.get_or_none(Users.username == username, Users.password == password) if user is None: return jsonify({ 'success': False, 'message': 'Bad username or password' }), 401 access_token = create_access_token(identity=username) return jsonify({'success': True, 'token': access_token}), 200
def registration(): if current_user.is_authenticated: return redirect(url_for('main.index')) form = RegistrationForm() if form.validate_on_submit(): user = Users(username=form.username.data.lower(), email=form.email.data) user.set_password(form.password1.data) user.time_create = datetime.utcnow() user.clinic = Clinics.query.get(form.clinic.data).id db.session.add(user) db.session.commit() flash('You are registered!', category='info') return redirect(url_for('auth.login')) return render_template('auth/register.html', title='Register', form=form)
def users(request, format=None): if request.method == 'POST': # 注册用户 req = request.data try: user = Users(username=req['username'], password=make_password(req['password']), nickname=req['nickname']) user.full_clean() except Exception as e: print('register error') return Response('require username, password, nickname', status=status.HTTP_400_BAD_REQUEST) user.save() return Response(status=status.HTTP_201_CREATED)
def registerUser(): """ Create a new user """ if request.data: data = json.loads(request.data) elif request.form: data = request.form # --- Validation username = data.get('username') full_name = data.get('full_name') password = data.get('password') email = data.get('email') if not (username and password and email and full_name): abort(400, 'All fields not provided') # --- check if the username exists already if Users.query.filter_by(username=username).first() is not None: abort(400, "Username already exists") # --- check if the email exists already if Users.query.filter_by(email=email).first() is not None: abort(400, "Email already exists") # --- Hash password data['password'] = generate_password_hash(password) # --- Add user to DB try: user = Users(**data) db.session.add(user) db.session.commit() response = { "status" : "user registered" } except Exception as e: abort(500, str(e)) return make_response(jsonify(response), 201)
def reset(): """ Make test data for dev mode. """ db.drop_all() db.create_all() from app.models import GrowSessions from datetime import datetime, timedelta session = GrowSessions(name='test_session', start_date=datetime.utcnow(), days_grow_stage=20) db.session.add(session) db.session.commit() from app.models import FlowerDevices device_a = FlowerDevices(name='flower_device_a', mac='amac', grow_session_id=session.id) db.session.add(device_a) device_b = FlowerDevices(name='flower_device_b', mac='bmac', grow_session_id=session.id) db.session.add(device_b) db.session.commit() for i in range(50): from app.models import FlowerData datapoint = FlowerData( timestamp=datetime.utcnow() - timedelta(i), temperature=10.23 + i * 0.1, light=100, water=40.5 - i * 0.5, battery=90 - i, ecb=0.5, ec_porus=0.6, dli=0.7, ea=0.8, flower_device_id=device_a.id, ) db.session.add(datapoint) user = Users(username='******', password='******') db.session.add(user) db.session.commit() print('Fake data made')
def decorated(*args, **kwargs): token = None if 'x-access-token' in request.headers: token = request.headers['x-access-token'] if not token: return jsonify({'message': 'Token is missing!'}), 401 try: data = Users.decode_auth_token(token) current_user = [data['id'], data['admin']] if not current_user[1]: return jsonify({'message': 'Cannot perform that function!'}), 403 except: return jsonify({'message': 'Token is invalid!'}), 401 return f(*args, **kwargs)
def login(): if current_user.is_authenticated: return redirect(url_for('home')) form = LoginForm() if form.validate_on_submit(): cur = db.connection.cursor() cur.execute(''' SELECT * FROM Users WHERE Usersname='{}' '''.format( form.username.data)) r1 = cur.fetchone() if r1 and r1['Password'] == form.password.data: user = Users.get_user(username=r1['Usersname']) login_user(user, remember=form.remember.data) next_page = request.args.get('next') if user.type == 'c': return redirect(next_page) if next_page else redirect( url_for('home')) else: return redirect(url_for('seller_home')) else: flash('Login Unsuccessful. Check username/password.', 'danger') return render_template('landing.html', form=form)
def create_reset_email(self, user: Users) -> None: token = user.get_reset_token() msg = EmailMessage() msg['Subject'] = "Reset your password" msg["From"] = self.email msg["To"] = user.email msg.set_content = ("Registration") msg.add_alternative(f"""\ <!DOCTYPE html> <html> <body> <h1> Reset your password!</h1> <p> Hi! Click link bellow to reset your password. </p> <h2> {url_for("reset_token.reset_token", token=token, _external=True)}</h2> </body> </html> """, subtype='html') with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp: smtp.login(self.email, self.password) smtp.send_message(msg)
def login_main(): error = '' if g.user is not None: error = 'User is login!' if 'email' not in request.json: error = 'Please fill in email.' elif 'pass' not in request.json: error = 'Please fill in your password.' if not error: user = Users.objects(email=request.json['email']).first() if not user: error = 'User with this email does not exist.' elif not user.check_password(password=request.json['pass']): error = 'Wrong password.' elif not user.confirm_reg: error = 'Please confirm your account.' else: login_manager.login_handler(user) return dumps({'data': None, 'error': error, 'success': 'You successful signed in.' if len(error) == 0 else None})
def createtasksfordriver(): user = Users.query.filter_by(username='******').first() if user is None: user = Users(username='******', phone_number='1111111111', role='sender', cash='0') user.set_password('1111') db.session.add(user) db.session.commit() flash('Грузоотправитель добавлен') user2 = Users.query.filter_by(username='******').first() if user2 is None: user2 = Users(username='******', phone_number='2222222222', role='driver', cash='0') user2.set_password('1111') db.session.add(user2) db.session.commit() flash('Перевозчик добавлен') for i in range(1, 11): task = Tasklist(\ title="Задание "+str(i), \ timestamp=datetime.now(), \ description="Описание "+str(i), \ address_from="Земля "+str(i), \ address_to="Луна "+str(i),\ user_id = user.id, \ owner_user_id = user.id, \ price = 325.77*i, \ inwork = False, complete = False) db.session.add(task) db.session.commit() flash('Данные добавлены') flash('sender login/pass: 1111111111/1111') flash('driver login/pass: 2222222222/1111') return redirect(url_for('index'))
def showBranch_byPath(user_name=None, tree_name=None, branch_id=None): user = None trees = None if g.user is not None and g.user.is_authenticated(): user = g.user trees = user.allTrees() tree_owner = Users.getUser(nickname = user_name) if tree_owner != None: tree = tree_owner.getTree(name=tree_name) if tree != None: branch = tree.getB(branch_id) if branch != None: return render_template("tree.html", title='Tree', curtree=tree, trees=trees, user=user, latestUsedB=branch.id) flash("Can't find the branch by current path") return render_template("base.html")
def mngtrees(): user = Users.getUser(email=g.user.email) if request.method == "GET": cmd = request.args.get('cmd', default='', type=str) if cmd == "create_tree": try: treename = request.args.get('name', default='NewTree', type=str) if user.getTree(name=treename) != None: raise BaseException createdTree = Tree(user, treename) return jsonify({ 'id' : createdTree.id, 'name' : createdTree.name }) except BaseException: return jsonify({ 'error' : "Error: The tree with such name exists. Try another name.", }) elif cmd == "remove_tree": try: tree_id = request.args.get('tree_id', default=None, type=int) tree = user.getTree(id=tree_id) tree.remove() return "True" except BaseException: return "False" elif cmd == "rename_tree": try: tree_id = request.args.get('tree_id', default=None, type=int) newname = request.args.get('newname', default='Tree', type=str) if user.getTree(name=newname) != None: raise BaseException tree = user.getTree(id=tree_id) tree.rename(newname) return "" except BaseException: return "Error: The tree with such name exists. Try another name." db.session.commit() return ""
def test_follow(self): # create a friend u1 = Users(username='******', email='*****@*****.**', password= '******') u2 = Users(username='******', email='*****@*****.**', password = '******') db.session.add(u1) db.session.add(u2) db.session.commit() assert u1.unfollow(u2) == None u = u1.follow(u2) db.session.add(u) db.session.commit() assert u1.follow(u2) == None assert u1.is_following(u2) assert u1.followed.count() == 1 assert u1.followed.first().username == 'susan' assert u2.followers.count() == 1 assert u2.followers.first().username == 'john' u = u1.unfollow(u2) assert u != None db.session.add(u) db.session.commit() assert u1.is_following(u2) == False assert u1.followed.count() == 0 assert u2.followers.count() == 0
def test_avatar(self): # create a user u = Users(username='******', email='*****@*****.**', password = '******') avatar = u.avatar(128) expected = 'http://www.gravatar.com/avatar/d4c74594d841139328695756648b6bd6' assert avatar[0:len(expected)] == expected
def setUp(self): '''Creating an object of the Users class. ''' self.user = Users()
class LoginTestCase(unittest.TestCase): '''A class used to run tests on the Users class in models.py. ''' def setUp(self): '''Creating an object from the models.py file for the class Users. ''' self.user = Users() def test_login_entry_happy_path(self): '''A method to test that the login in works with the right inputs. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") boolean_for_login_user = self.user.login_user("*****@*****.**", "password1") self.assertEqual(boolean_for_login_user, True) def test_login_entry_sad_path_1(self): '''A method to test that login does not work with wrong input of user email. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") boolean_for_login_user = self.user.login_user("*****@*****.**", "password1") self.assertEqual(boolean_for_login_user, None) def test_login_entry_sad_path_2(self): '''A method to test that login does not work with wrong input of password. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") boolean_for_login_user = self.user.login_user("*****@*****.**", "password2") self.assertEqual(boolean_for_login_user, None) def test_login_sets_right_user_id(self): '''A method to test that the right user id is set on login. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password1", "password1") self.user.create_user("user2", "*****@*****.**", "password2", "password2") self.user.create_user("user3", "*****@*****.**", "password3", "password3") self.user.login_user("*****@*****.**", "password3") self.assertEqual(models.USER_ID, 2) self.user.login_user("*****@*****.**", "password2") self.assertEqual(models.USER_ID, 1) self.user.login_user("*****@*****.**", "password1") self.assertEqual(models.USER_ID, 0)
def setUp(self): '''Creating an object from the models.py file for the class Users. ''' self.user = Users()
def test_follow_posts(self): # make four users u1 = Users(username='******', email='*****@*****.**', password = '******') u2 = Users(username='******', email='*****@*****.**', password = '******') u3 = Users(username='******', email='*****@*****.**', password = '******') u4 = Users(username='******', email='*****@*****.**', password = '******') db.session.add(u1) db.session.add(u2) db.session.add(u3) db.session.add(u4) # make four posts utcnow = datetime.utcnow() p1 = Post(body="post from john", author=u1, timestamp=utcnow + timedelta(seconds=1)) p2 = Post(body="post from susan", author=u2, timestamp=utcnow + timedelta(seconds=2)) p3 = Post(body="post from mary", author=u3, timestamp=utcnow + timedelta(seconds=3)) p4 = Post(body="post from david", author=u4, timestamp=utcnow + timedelta(seconds=4)) db.session.add(p1) db.session.add(p2) db.session.add(p3) db.session.add(p4) db.session.commit() # setup the followers u1.follow(u1) # john follows himself u1.follow(u2) # john follows susan u1.follow(u4) # john follows david u2.follow(u2) # susan follows herself u2.follow(u3) # susan follows mary u3.follow(u3) # mary follows herself u3.follow(u4) # mary follows david u4.follow(u4) # david follows himself db.session.add(u1) db.session.add(u2) db.session.add(u3) db.session.add(u4) db.session.commit() # check the followed posts of each user f1 = u1.followed_posts().all() f2 = u2.followed_posts().all() f3 = u3.followed_posts().all() f4 = u4.followed_posts().all() assert len(f1) == 3 assert len(f2) == 2 assert len(f3) == 2 assert len(f4) == 1 assert f1 == [p4, p2, p1] assert f2 == [p3, p2] assert f3 == [p4, p3] assert f4 == [p4]
class RegisterTestCase(unittest.TestCase): '''A class to test the registering function of the users for the bucket list. ''' def setUp(self): '''Creating an object of the Users class. ''' self.user = Users() def test_create_user_happy_path(self): '''A method to test that a user was created successfully with all inputs inserted correctly according to standards required. ''' self.user.users.clear() self.user.create_user("user4", "*****@*****.**", "password2", "password2") self.assertEqual(self.user.users[0].user_name, "user4") self.assertEqual(self.user.users[0].user_email, "*****@*****.**") self.assertEqual(self.user.users[0].user_password, "password2") def test_create_user_sad_path(self): '''A method to test that a user was not created with non-matching passwords. ''' self.user.users.clear() self.user.create_user("user2", "*****@*****.**", "password1", "password2") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_2(self): '''A method to test that a user was not created with an empty user-name. ''' self.user.users.clear() self.user.create_user("", "*****@*****.**", "password1", "password2") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_3(self): '''A method to test that a user was not created with an empty password. ''' self.user.users.clear() self.user.create_user("user2", "*****@*****.**", "", "") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_4(self): '''A method to test that a user was not created with an empty email. ''' self.user.users.clear() self.user.create_user("user2", "", "ppp", "ppp") self.assertEqual(len(self.user.users), 0) def test_create_user_sad_path_5(self): '''A method to test that a second user was not created with a similar user-name as the first user. ''' self.user.users.clear() self.user.create_user("user4", "*****@*****.**", "password2", "password2") self.user.create_user("user4", "*****@*****.**", "password3", "password3") self.assertEqual(len(self.user.users), 1) def test_create_user_sad_path_6(self): '''A method to test that a second user was not created with a similar email as the first user. ''' self.user.users.clear() self.user.create_user("user1", "*****@*****.**", "password2", "password2") self.user.create_user("user4", "*****@*****.**", "password3", "password3") self.assertEqual(len(self.user.users), 1)
def POST(self): regform = RegForm() if not regform.validates(): return self.__makepage(regform) Users.add(regform) return web.seeother('/signin')
def mngtree(): #for_test() # get data from request ## via GET method if request.method == "GET": # curtree_id is require only for cases when jstree return '#' as a sign of root branch_id. To get rid of it we have to rewrite a big part of jstree try: curtree_id = request.args.get('tree_id', default='', type=str) except AttributeError as e: msg='Can\'t find any trees. Try to create one.' print('\n' + str(msg) + '\n') return "" import app.general nestedocs = app.general.str2bool(request.args.get('nestedocs', default='False', type=str)) cmd = request.args.get('cmd', default='', type=str) id = request.args.get('id', default='', type=str) # after integration with flask symbole '%' has started to add to id. So we need to remove it if id[:1] == "%": id = int(id[1:]) if id == '#' or id == None or id == '': curtree = Tree.getTree(id = curtree_id) id = curtree.rootb_id data = request.args.get('data', default='', type=str) ## via POST method else: form = SaveDataForm(request.form) if request.method == "POST" and form.validate(): nestedocs = form.nestedocs.data cmd = form.cmd.data id = form.id.data data = form.data.data ## branch = Branch.get(id=id) curtree = Tree.getTree(id=branch.tree_id) tree_owner = curtree.owner """ cmd = "load_subbs" id = 4 id = '#' """ # set permission for actions if g.user is not None and g.user.is_authenticated(): curuser = g.user else: curuser = '******' owner = True if tree_owner.id != curuser.id: owner = False if not ( branch.read and cmd == "load_subbs" ): cmd = '' # if cmd != "" : if cmd == "fold": branch.folded = True elif cmd == "unfold": branch.folded = False elif cmd == "rename_node": branch.text = data elif cmd == "move_node": new_parent_id = request.args.get('new_parent', default=curtree.rootb_id, type=int) position = request.args.get('position', default=-1, type=int) branch.move(new_parent_id, position) elif cmd == "load_data": return branch.text elif cmd == "delete_node": branch.remove() elif cmd == "create_node": parent_id = request.args.get('parent_id', default=curtree.rootb_id, type=int) parentB = curtree.getB(parent_id) newB = Branch(main = (not nestedocs), parent_id = parent_id) position = request.args.get('position', default=-1, type=int) newB.move(pos=position) return str( newB.id ) elif cmd == "load_subbs": curtree.set_latestB(id) return json.dumps(getList_subbsOf(branch, nestedocs, withReadLabel=(not owner))) elif cmd == "get_privileges": return json.dumps(branch.get_priv_all()) elif cmd == "set_privileges": for_class = request.args.get('for_class', default='bydefault', type=str) priv_read = app.general.str2bool(request.args.get('read', default=None, type=str)) priv_rw = app.general.str2bool(request.args.get('rw', default=None, type=str)) if for_class == 'bydefault': new_privs = branch.set_priv_bydefault(priv_read, priv_rw) elif for_class == 'users': nickname = request.args.get('nickname', default=None, type=str) if nickname != None: user = Users.getUser(nickname = nickname) new_privs = branch.set_priv_foruserid(user.id, priv_read, priv_rw) return json.dumps(new_privs) elif cmd == "set_priv_adduser": nickname = request.args.get('nickname', default=None, type=str) if nickname != None: user = Users.getUser(nickname = nickname) if branch.set_priv_adduser(user) == 0: return 0 return -1 else: if nestedocs : if cmd == "save_data": branch.text = data else: pass db.session.commit() return ""
@validates_schema(pass_original=True) def validate_schema(self, data, original): self.validate_permission(data, original) class UserCreateSchema(UserSchema): username = fields.String(required=True) email = fields.String(required=True) password = fields.String(required=True, load_only=True) class Meta: fields = Users.get_admin_columns(Method.CREATE) create_user_admin_serializer = ResourceUserSchema(UserCreateSchema) create_user_serializer = ResourceUserSchema( UserCreateSchema, param={'only': Users.get_columns(Method.CREATE, Role.GUEST)} ) edit_user_admin_serializer = ResourceUserSchema(UserSchema) edit_user_profile_serializer = ResourceUserSchema( UserSchema, param={'only': Users.get_columns(Method.UPDATE, Role.USER)} ) read_user_serializer = ResourceUserSchema( UserSchema, param={'only': Users.get_columns(Method.READ, Role.GUEST)} )
def removeuser(): user = g.user user = Users.getUser(email=user.email) user.remove() return redirect(url_for('about'))
def user(): user_id = int(web.cookies(user_id=0).get('user_id')) return Users.get(user_id)
import json, re from app.helpers import render, utils, session from app.models import Users val_username = form.regexp(r'^\w[\w\d_]{2,19}$', 'must be betweem 3 and 20 characters. username should containt only latin alphabet, digits and underscores') val_password = form.regexp(r'^.{3,}$', 'must have more than 3 characters') val_email = form.regexp(r'^.+@.+$', 'must be a valid email address') LoginForm = form.Form( form.Textbox('username', val_username, description='Username'), form.Password('password',val_password, description='Password'), form.Button('submit', type='submit', html='Sign in'), validators = [ form.Validator("Username or Password is incorrect", lambda i: Users.check(i.username, i.password)), ] ) class Signin: def __makepage(self, loginform = None): if loginform is None: loginform = LoginForm() return render.layout(view.signin(loginform), title="Sign in") def GET(self): return self.__makepage() def POST(self): loginform = LoginForm() if not loginform.validates(): return self.__makepage(loginform)
def register_user(request): #url = request.build_absolute_uri(None) #form = UserCreationForm(request.POST) #parsed = urlparse.parse_qs(urlparse.urlparse(url).query) if request.method == "POST": print("IS THE FORM VALID") form = UserCreationForm(request.POST) print(form) if form.is_valid(): print("YES IT IS") data = form.cleaned_data userid = data['username'] print('USERID is ', userid) form.save() #print(userid) if userid != None: print("userid not None!!") owner_key = request.session.get('owner_key') owner_secret = request.session.get('owner_secret') display = request.session.get('display') newUser = Users(user_id = userid, user_name = display, user_strength = 0, user_agility = 0, user_willpower = 0, user_constitution = 0, user_achievement = bin(0), token = owner_key, token_secret=owner_secret, group = "None") newUser.save() return HttpResponseRedirect('/register_success') url = request.build_absolute_uri(None) parsed = urlparse.parse_qs(urlparse.urlparse(url).query) if(len(parsed)<1): client = fitbit.FitbitOauthClient(FITAPP_CONSUMER_KEY, FITAPP_CONSUMER_SECRET) token = client.fetch_request_token() request.session['token_no'] = token webbrowser.open(client.authorize_token_url()) return render_to_response('register.html') else: client = fitbit.FitbitOauthClient(FITAPP_CONSUMER_KEY, FITAPP_CONSUMER_SECRET) token = request.session.get('token_no') listverifier = parsed['oauth_verifier'] verifier = listverifier[0] result = client.fetch_access_token(verifier,token) userid = result.get('encoded_user_id') owner_key = result.get('oauth_token') owner_secret = result.get('oauth_token_secret') auth = fitbit.Fitbit(FITAPP_CONSUMER_KEY, FITAPP_CONSUMER_SECRET, resource_owner_key = owner_key, resource_owner_secret = owner_secret) profile = auth.user_profile_get(userid) username = profile.get('user').get('displayName') request.session['owner_key'] = owner_key request.session['owner_secret'] = owner_secret request.session['display'] = username #username = profile.get('user').get('displayName') ''' newUser = Users(user_id = userid, user_name = username, user_strength = 0, user_agility = 0, user_willpower = 0, user_constitution = 0, user_achievement = bin(0), token = owner_key, token_secret = owner_secret, group = "None") newUser.save() return HttpResponseRedirect ''' return render(request,'register.html', {"userid": userid, "form" : UserCreationForm()})