コード例 #1
0
ファイル: views.py プロジェクト: snaiffer/test
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'))
コード例 #2
0
ファイル: openam.py プロジェクト: silop4all/aod
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
コード例 #3
0
 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
コード例 #4
0
ファイル: views.py プロジェクト: snaiffer/test
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'))
コード例 #5
0
ファイル: views.py プロジェクト: WinstonKamau/TheBucketList
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)
コード例 #6
0
    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
コード例 #7
0
ファイル: views.py プロジェクト: srinivasb07/Flask_Sample
    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
コード例 #8
0
ファイル: account.py プロジェクト: Code4Demo/homura-compiler
	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('/')
コード例 #9
0
ファイル: forms.py プロジェクト: leigh-sh/mini-twitter
 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
コード例 #10
0
ファイル: views.py プロジェクト: Moobusy/learnpython
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 '注册成功'
コード例 #11
0
ファイル: views.py プロジェクト: snaiffer/test
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)
コード例 #12
0
ファイル: controller.py プロジェクト: bnizzle/angular-flask
    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
コード例 #13
0
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)
コード例 #14
0
ファイル: users.py プロジェクト: Coderhypo/TDMS
    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
コード例 #15
0
ファイル: routes.py プロジェクト: JungleM0nkey/tickethub
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')
コード例 #16
0
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
コード例 #17
0
ファイル: views.py プロジェクト: flacode/shopping_list
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
コード例 #18
0
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
コード例 #19
0
    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)
コード例 #20
0
ファイル: manage.py プロジェクト: jchen249/NYCOpenRecords
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)
コード例 #21
0
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'))
コード例 #22
0
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')
コード例 #23
0
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)
コード例 #24
0
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)
コード例 #25
0
ファイル: views.py プロジェクト: dongoblaze/blazetone
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)
コード例 #26
0
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'))
コード例 #27
0
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))
コード例 #28
0
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)
コード例 #29
0
ファイル: routes.py プロジェクト: Diction10/ticketing-system
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)
コード例 #30
0
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)
コード例 #31
0
ファイル: users_api.py プロジェクト: f1ne2/heroku-deploy
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!"'})
コード例 #32
0
ファイル: tools.py プロジェクト: norsig/NYCOpenRecords
 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
コード例 #33
0
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)
コード例 #34
0
ファイル: api.py プロジェクト: wliustc/Darily
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")
コード例 #35
0
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
コード例 #36
0
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)
コード例 #37
0
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)
コード例 #38
0
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)
コード例 #39
0
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')
コード例 #40
0
ファイル: users_api.py プロジェクト: f1ne2/heroku-deploy
    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)
コード例 #41
0
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)
コード例 #42
0
 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)
コード例 #43
0
ファイル: views.py プロジェクト: Stevee67/wtd
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})
コード例 #44
0
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'))
コード例 #45
0
ファイル: views.py プロジェクト: snaiffer/test
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")
コード例 #46
0
ファイル: views.py プロジェクト: snaiffer/test
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 ""
コード例 #47
0
 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
コード例 #48
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
コード例 #49
0
 def setUp(self):
     '''Creating an object of the Users class.  '''
     self.user = Users()
コード例 #50
0
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)
コード例 #51
0
 def setUp(self):
     '''Creating an object from the models.py file for the class Users.  '''
     self.user = Users()
コード例 #52
0
 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]
コード例 #53
0
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)
コード例 #54
0
ファイル: account.py プロジェクト: Code4Demo/homura-compiler
	def POST(self):
		regform = RegForm()
		if not regform.validates():
			return self.__makepage(regform)
		Users.add(regform)
		return web.seeother('/signin')
コード例 #55
0
ファイル: views.py プロジェクト: snaiffer/test
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 ""
コード例 #56
0
ファイル: users.py プロジェクト: LuizGsa21/blogger-backend
    @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)}
)
コード例 #57
0
ファイル: views.py プロジェクト: snaiffer/test
def removeuser():
  user = g.user
  user = Users.getUser(email=user.email)
  user.remove()
  return redirect(url_for('about'))
コード例 #58
0
ファイル: session.py プロジェクト: Code4Demo/homura-compiler
def user():
	user_id = int(web.cookies(user_id=0).get('user_id'))
	return Users.get(user_id)
コード例 #59
0
ファイル: account.py プロジェクト: Code4Demo/homura-compiler
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)
コード例 #60
0
ファイル: views.py プロジェクト: claudiaw111/cs411project
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()})