Ejemplo n.º 1
0
def facebook_authorized(resp):
    """Callback that is fired by facebook after user acceptance"""
    if resp is None:
        return "Access denied: reason=%s error=%s" % (
            request.values["error_reason"],
            request.values["error_description"],
        )

    # This is the flag that says that a user is logged in from a social
    # network!
    print "========>>>>> OAUTH_TOKEN"
    session["oauth_token"] = (resp["access_token"], "")

    # Let's log the user in if he/she has already signed up.
    userdata = facebook.get("/me")

    username = userdata.data["email"]
    print "LOGANDO VIA FACE:", username
    try:
        auth.login(username, None, fromsocial=True)
        print "FACE LOGADO!"
    except auth.UserNotFound:
        print "NAO LOGADO, CADASTRANDO..."
        resp = make_response(redirect(url_for("auth.signup")))
        resp.set_cookie("connect_type", "social_f")
        return resp

    resp = make_response(redirect(url_for("index")))
    resp.set_cookie("connect_type", "social_f")
    return resp
Ejemplo n.º 2
0
Archivo: fbauth.py Proyecto: clarete/gd
def facebook_authorized(resp):
    """Callback that is fired by facebook after user acceptance"""
    if resp is None:
        return 'Access denied: reason=%s error=%s' % (
            request.values['error_reason'],
            request.values['error_description'])

    # This is the flag that says that a user is logged in from a social
    # network!
    print "========>>>>> OAUTH_TOKEN"
    session['oauth_token'] = (resp['access_token'], '')

    # Let's log the user in if he/she has already signed up.
    userdata = facebook.get('/me')

    username = userdata.data['email']
    print "LOGANDO VIA FACE:", username
    try:
        auth.login(username, None, fromsocial=True)
        print "FACE LOGADO!"
    except auth.UserNotFound:
        print "NAO LOGADO, CADASTRANDO..."
        resp = make_response(redirect(url_for('auth.signup')))
        resp.set_cookie('connect_type', 'social_f')
        return resp

    resp = make_response(redirect(url_for('index')))
    resp.set_cookie('connect_type', 'social_f')
    return resp
Ejemplo n.º 3
0
Archivo: twauth.py Proyecto: calcwb/gd
def twitter_authorized(resp):
    """Callback that is fired by twitter after user acceptance"""
    print "@twitter.authorized_handler <<<<=========="
    next_url = request.args.get('next') or url_for('auth.login')
    if resp is None:
        print "NAO <<<<=========="
        flash(u'You denied the request to sign in.')
        return redirect(next_url)

    print 'RESP=======>', dir(resp), resp
    # This is the flag that says that a user is logged in from a social
    # network!
    print "========>>>>> OAUTH_TOKEN TWITTER"
    session['twitter_token'] = (
        resp['oauth_token'],
        resp['oauth_token_secret']
    )

    username = resp['screen_name']
    print "LOGANDO VIA TWITTER:", username
    try:
        auth.login(username, None, fromsocial=True)
        print "TWITTER LOGADO!"
    except auth.UserNotFound:
        print "NAO LOGADO, CADASTRANDO TWITTER..."
        session['tmp_twitter_id'] = username
        resp = make_response( redirect(url_for('auth.signup')) )
        resp.set_cookie('connect_type', 'social_t')
        return resp

    resp = make_response( redirect(url_for('index')) )
    resp.set_cookie('connect_type', 'social_t')
    return resp
Ejemplo n.º 4
0
def twitter_authorized(resp):
    """Callback that is fired by twitter after user acceptance"""
    print "@twitter.authorized_handler <<<<=========="
    next_url = request.args.get('next') or url_for('auth.login')
    if resp is None:
        print "NAO <<<<=========="
        flash(u'You denied the request to sign in.')
        return redirect(next_url)

    print 'RESP=======>', dir(resp), resp
    # This is the flag that says that a user is logged in from a social
    # network!
    print "========>>>>> OAUTH_TOKEN TWITTER"
    session['twitter_token'] = (resp['oauth_token'],
                                resp['oauth_token_secret'])

    username = resp['screen_name']
    print "LOGANDO VIA TWITTER:", username
    try:
        auth.login(username, None, fromsocial=True)
        print "TWITTER LOGADO!"
    except auth.UserNotFound:
        print "NAO LOGADO, CADASTRANDO TWITTER..."
        session['tmp_twitter_id'] = username
        resp = make_response(redirect(url_for('auth.signup')))
        resp.set_cookie('connect_type', 'social_t')
        return resp

    resp = make_response(redirect(url_for('index')))
    resp.set_cookie('connect_type', 'social_t')
    return resp
Ejemplo n.º 5
0
def login():
    """Renders the login form and calls login machinery"""
    error = None
    if request.method == 'POST':
        reqv = request.values.get
        try:
            auth.login(reqv('username'), reqv('password'))
            nexturl = request.values.get('next')
            if nexturl:
                return redirect(nexturl)
        except auth.AuthError, exc:
            error = exc.__class__.__name__
Ejemplo n.º 6
0
def login():
    """Renders the login form and calls login machinery"""
    error = None
    if request.method == 'POST':
        reqv = request.values.get
        try:
            auth.login(reqv('username'), reqv('password'))
            nexturl = request.values.get('next')
            if nexturl:
                return redirect(nexturl)
        except auth.AuthError, exc:
            error = exc.__class__.__name__
Ejemplo n.º 7
0
def logon():
    """Logs the user in and returns the user object in
    JSON format"""
    username = request.values.get("username")
    password = request.values.get("password")
    gonext = True
    if username and password:
        try:
            user = authapi.login(username, password)
        except authapi.UserNotFound:
            flash(_(u"Wrong user or password"), "alert-error")
            gonext = False
        except authapi.UserAndPasswordMissmatch:
            flash(_(u"Wrong user or password"), "alert-error")
            gonext = False
        # else:
        # msg.ok({ 'user': user })
        # flash(_(u'Login successfuly!'), 'alert-success')
    else:
        flash(_(u"Username or password missing"), "alert-error")
        gonext = False
    formcad = social(SignupForm)

    next = request.values.get("next", default="")
    if next is not None and gonext:
        return redirect(next)
    else:
        menus = fromcache("menuprincipal") or tocache(
            "menuprincipal", wordpress.exapi.getMenuItens(menu_slug="menu-principal")
        )
        try:
            twitter_hash_cabecalho = utils.twitts()
        except KeyError:
            twitter_hash_cabecalho = ""
        # if request.referrer:
        #     return redirect(request.referrer)
        # else:
        #     return render_template('login.html', form=formcad, next=next)
        return render_template(
            "login.html",
            form=formcad,
            next=next,
            sidebar=wordpress.getSidebar,
            menu=menus,
            twitter_hash_cabecalho=twitter_hash_cabecalho,
        )
Ejemplo n.º 8
0
def logon():
    """Logs the user in and returns the user object in
    JSON format"""
    username = request.values.get('username')
    password = request.values.get('password')
    gonext = True
    if username and password:
        try:
            user = authapi.login(username, password)
        except authapi.UserNotFound:
            flash(_(u'Wrong user or password'), 'alert-error')
            gonext = False
        except authapi.UserAndPasswordMissmatch:
            flash(_(u'Wrong user or password'), 'alert-error')
            gonext = False
        # else:
            # msg.ok({ 'user': user })
            # flash(_(u'Login successfuly!'), 'alert-success')
    else:
        flash(_(u'Username or password missing'), 'alert-error')
        gonext = False
    formcad = social(SignupForm)

    next = request.values.get('next',default="")
    if next is not None and gonext:
        return redirect(next)
    else:
        menus = fromcache('menuprincipal') or tocache('menuprincipal', wordpress.exapi.getMenuItens(menu_slug='menu-principal') )
        try:
            twitter_hash_cabecalho = utils.twitts()
        except KeyError:
            twitter_hash_cabecalho = ""
        # if request.referrer:
        #     return redirect(request.referrer)
        # else:
        #     return render_template('login.html', form=formcad, next=next)
        return render_template('login.html', form=formcad, next=next, sidebar=wordpress.getSidebar, menu=menus, twitter_hash_cabecalho=twitter_hash_cabecalho)
Ejemplo n.º 9
0
def signup_continuation():
    '''Show the second part of registration'''
    print "/signup/continuation/ ==========================="
    user = None
    username = None
    if authapi.is_authenticated() and not 'byconfirm' in session:
        print "esta logado, indo pro profile ==========================="
        return redirect(url_for('.profile'))

    elif 'byconfirm' in session:
        print "byconfirm in session =========================== ", session['byconfirm']
        user = User.query.filter_by(username=session['byconfirm']).one()
        # if user.get_meta('twitteruser'):
        #     username = user.get_meta('twitter')
        # else:
        #     username = user.username
        username = user.username
        del session['byconfirm']

    elif request.method == 'POST':
        print "vindo do post ===========================", request.form['email'], request.form['username']
        if request.form['username']:
            user = User.query.filter_by(username=request.form['username']).one()
        else:
            user = User.query.filter_by(username=request.form['email']).one()
        username = user.username

    if user:
        print "tem user ============================", user
        data = user.metadata()
        data['social'] = ('facebookuser' in data and data['facebookuser']) or \
                         ('twitteruser' in data and data['twitteruser'])
        print "DATA DEFAULT", data
        form = social(SignupForm, default=data)
    else:
        print "NAO tem user ============================"
        return redirect(url_for('auth.login'))
        form = social(SignupForm)

    if 'password_confirmation' in form:
        #Remove not needed field
        del form.password_confirmation
    if request.method == 'POST' and form.validate_on_submit():
        # user = authapi.authenticated_user()
        print "form validado ============================"

        meta = form.meta
        dget = meta.pop

        password = dget('password')
        fromsocial = form.social or \
                     ('facebookuser' in data and data['facebookuser']) or \
                     ('twitteruser' in data and data['twitteruser'])
        try:
            print "FROMSOCIAL", fromsocial
            authapi.login(user.username, password, fromsocial)
        except authapi.UserNotFound:
            flash(_(u'Wrong user or password'), 'alert-error')
        except authapi.UserAndPasswordMissmatch:
            flash(_(u'Wrong password'), 'alert-error')
        else:
            user = authapi.authenticated_user()
            # First, the specific ones
            # user.name = mget('name')
            # user.email = mget('email')

            # And then, the meta ones, stored in `UserMeta'
            for key, val in form.meta.items():
                user.set_meta(key, val)

            flash(_(u'Your registration is complete'), 'alert-success')
            return redirect(url_for('auth.profile'))
    else:
        print "ERRO NO FORM VALIDATION", form.errors

    menus = fromcache('menuprincipal') or tocache('menuprincipal', wordpress.exapi.getMenuItens(menu_slug='menu-principal') )
    try:
        twitter_hash_cabecalho = utils.twitts()
    except KeyError:
        twitter_hash_cabecalho = ""

    return render_template(
        'signup_second.html', form=form,
        menu=menus,
        twitter_hash_cabecalho=twitter_hash_cabecalho,
        sidebar=wordpress.getSidebar,
        username=username
    )
Ejemplo n.º 10
0
def contribui(slug):

	obra = fromcache("obra-" + slug) or tocache("obra-" + slug, _get_obras(slug)[0])
	if not obra:
		return abort(404)

	r = {'status':'ok', 'message':'Sua contibuição foi aceita com sucesso'}
	user_recent = False
	if not authapi.is_authenticated():
		# r = {'status':'not_logged'}
		"""
		Se não está autenticado, tenta achar o usuário pelo email, e
		acessar com a senha inserida no formulario.
		Se não, cadastra o camarada, com o nome e email informados, gerando
		uma senha para ele e enviando o email de boas vindas.
		"""
		email = request.form['email']

		if request.form['senha']:
			#Informou a senha do cadastro já existente
			# username = email
			# senha = request.form['senha']
			#Efetua o login
			print "Usuario e senha informado... logando!"
			username = request.values.get('email')
			senha = request.values.get('senha')
			print "tentando logar com", username, senha
			try:
				user = authapi.login(username, senha)
				r = {'status':'ok', 'message':'Sua contibuição foi aceita com sucesso', 'refresh': True}
			except authapi.UserNotFound:
				r = {'status':'nok', 'message':_(u'Wrong user or password')}
				return dumps(r)
			except authapi.UserAndPasswordMissmatch:
				r = {'status':'nok', 'message':_(u'Wrong user or password')}
				return dumps(r)
		elif request.form['nome']:
			print "Nome informado... cadastrando..."
			#Informou a senha para cadastro
			nome = request.form['nome']
			telefone = request.form['telefone'] if 'telefone' in request.form else ""
			novasenha = request.form['newPassword'] if 'newPassword' in request.form else ""

			if not novasenha:
				# novasenha = "gabinetedigital"
				novasenha = ''.join(random.choice(string.printable) for x in range(8))

			# print nome, '-', email, '-', novasenha

			try:
				user = authapi.create_user(nome, email, unicode(novasenha), email)
				r = {'status':'ok', 'message':'Sua contibuição foi aceita com sucesso. Verifique seu email para confirmar o cadastro.'}
				user_recent = True
				send_welcome_email(user)
				send_password(user.email, novasenha)
			except authapi.UserExistsUnconfirmed, e:
				r = {'status':'nok', 'message':u'Seu usuário precisa ser confirmado, veja seu email!'}
				return dumps(r)

			if telefone:
				user.set_meta('phone', telefone)
				dbsession.commit()
		else:
			r = {'status':'nok', 'message':u'É necessário informar uma senha ou dados para cadastro.'}
Ejemplo n.º 11
0
Archivo: webapp.py Proyecto: calcwb/gd
def signup_continuation():
    '''Show the second part of registration'''
    print "/signup/continuation/ ==========================="
    user = None
    username = None
    if authapi.is_authenticated() and not 'byconfirm' in session:
        print "esta logado, indo pro profile ==========================="
        return redirect(url_for('.profile'))

    elif 'byconfirm' in session:
        print "byconfirm in session =========================== ", session['byconfirm']
        user = User.query.filter_by(username=session['byconfirm']).one()
        # if user.get_meta('twitteruser'):
        #     username = user.get_meta('twitter')
        # else:
        #     username = user.username
        username = user.username
        del session['byconfirm']

    elif request.method == 'POST':
        print "vindo do post ===========================", request.form['email'], request.form['username']
        if request.form['username']:
            user = User.query.filter_by(username=request.form['username']).one()
        else:
            user = User.query.filter_by(username=request.form['email']).one()
        username = user.username

    if user:
        print "tem user ============================", user
        data = user.metadata()
        data['social'] = ('facebookuser' in data and data['facebookuser']) or \
                         ('twitteruser' in data and data['twitteruser'])
        print "DATA DEFAULT", data
        form = social(SignupForm, default=data)
    else:
        print "NAO tem user ============================"
        return redirect(url_for('auth.login'))
        form = social(SignupForm)

    if 'password_confirmation' in form:
        #Remove not needed field
        del form.password_confirmation
    if request.method == 'POST' and form.validate_on_submit():
        # user = authapi.authenticated_user()
        print "form validado ============================"

        meta = form.meta
        dget = meta.pop

        password = dget('password')
        fromsocial = form.social or \
                     ('facebookuser' in data and data['facebookuser']) or \
                     ('twitteruser' in data and data['twitteruser'])
        try:
            print "FROMSOCIAL", fromsocial
            authapi.login(user.username, password, fromsocial)
        except authapi.UserNotFound:
            flash(_(u'Wrong user or password'), 'alert-error')
        except authapi.UserAndPasswordMissmatch:
            flash(_(u'Wrong password'), 'alert-error')
        else:
            user = authapi.authenticated_user()
            # First, the specific ones
            # user.name = mget('name')
            # user.email = mget('email')

            # And then, the meta ones, stored in `UserMeta'
            for key, val in form.meta.items():
                user.set_meta(key, val)

            flash(_(u'Your registration is complete'), 'alert-success')
            return redirect(url_for('auth.profile'))
    else:
        print "ERRO NO FORM VALIDATION", form.errors

    menus = fromcache('menuprincipal') or tocache('menuprincipal', wordpress.exapi.getMenuItens(menu_slug='menu-principal') )
    try:
        twitter_hash_cabecalho = utils.twitts()
    except KeyError:
        twitter_hash_cabecalho = ""

    return render_template(
        'signup_second.html', form=form,
        menu=menus,
        twitter_hash_cabecalho=twitter_hash_cabecalho,
        username=username
    )
Ejemplo n.º 12
0
def signup_continuation():
    """Show the second part of registration"""
    print "/signup/continuation/ ==========================="
    user = None
    username = None
    if authapi.is_authenticated() and not "byconfirm" in session:
        print "esta logado, indo pro profile ==========================="
        return redirect(url_for(".profile"))

    elif "byconfirm" in session:
        print "byconfirm in session =========================== ", session["byconfirm"]
        user = User.query.filter_by(username=session["byconfirm"]).one()
        # if user.get_meta('twitteruser'):
        #     username = user.get_meta('twitter')
        # else:
        #     username = user.username
        username = user.username
        del session["byconfirm"]

    elif request.method == "POST":
        print "vindo do post ===========================", request.form["email"], request.form["username"]
        if request.form["username"]:
            user = User.query.filter_by(username=request.form["username"]).one()
        else:
            user = User.query.filter_by(username=request.form["email"]).one()
        username = user.username

    if user:
        print "tem user ============================", user
        data = user.metadata()
        data["social"] = ("facebookuser" in data and data["facebookuser"]) or (
            "twitteruser" in data and data["twitteruser"]
        )
        print "DATA DEFAULT", data
        form = social(SignupForm, default=data)
    else:
        print "NAO tem user ============================"
        return redirect(url_for("auth.login"))
        form = social(SignupForm)

    if "password_confirmation" in form:
        # Remove not needed field
        del form.password_confirmation
    if request.method == "POST" and form.validate_on_submit():
        # user = authapi.authenticated_user()
        print "form validado ============================"

        meta = form.meta
        dget = meta.pop

        password = dget("password")
        fromsocial = (
            form.social
            or ("facebookuser" in data and data["facebookuser"])
            or ("twitteruser" in data and data["twitteruser"])
        )
        try:
            print "FROMSOCIAL", fromsocial
            authapi.login(user.username, password, fromsocial)
        except authapi.UserNotFound:
            flash(_(u"Wrong user or password"), "alert-error")
        except authapi.UserAndPasswordMissmatch:
            flash(_(u"Wrong password"), "alert-error")
        else:
            user = authapi.authenticated_user()
            # First, the specific ones
            # user.name = mget('name')
            # user.email = mget('email')

            # And then, the meta ones, stored in `UserMeta'
            for key, val in form.meta.items():
                user.set_meta(key, val)

            flash(_(u"Your registration is complete"), "alert-success")
            return redirect(url_for("auth.profile"))
    else:
        print "ERRO NO FORM VALIDATION", form.errors

    menus = fromcache("menuprincipal") or tocache(
        "menuprincipal", wordpress.exapi.getMenuItens(menu_slug="menu-principal")
    )
    try:
        twitter_hash_cabecalho = utils.twitts()
    except KeyError:
        twitter_hash_cabecalho = ""

    return render_template(
        "signup_second.html",
        form=form,
        menu=menus,
        twitter_hash_cabecalho=twitter_hash_cabecalho,
        sidebar=wordpress.getSidebar,
        username=username,
    )
Ejemplo n.º 13
0
def contribui(slug):

    obra = fromcache("obra-" + slug) or tocache("obra-" + slug,
                                                _get_obras(slug)[0])
    if not obra:
        return abort(404)

    r = {'status': 'ok', 'message': 'Sua contibuição foi aceita com sucesso'}
    user_recent = False
    if not authapi.is_authenticated():
        # r = {'status':'not_logged'}
        """
		Se não está autenticado, tenta achar o usuário pelo email, e
		acessar com a senha inserida no formulario.
		Se não, cadastra o camarada, com o nome e email informados, gerando
		uma senha para ele e enviando o email de boas vindas.
		"""
        email = request.form['email']

        if request.form['senha']:
            #Informou a senha do cadastro já existente
            # username = email
            # senha = request.form['senha']
            #Efetua o login
            print "Usuario e senha informado... logando!"
            username = request.values.get('email')
            senha = request.values.get('senha')
            print "tentando logar com", username, senha
            try:
                user = authapi.login(username, senha)
                r = {
                    'status': 'ok',
                    'message': 'Sua contibuição foi aceita com sucesso',
                    'refresh': True
                }
            except authapi.UserNotFound:
                r = {'status': 'nok', 'message': _(u'Wrong user or password')}
                return dumps(r)
            except authapi.UserAndPasswordMissmatch:
                r = {'status': 'nok', 'message': _(u'Wrong user or password')}
                return dumps(r)
        elif request.form['nome']:
            print "Nome informado... cadastrando..."
            #Informou a senha para cadastro
            nome = request.form['nome']
            telefone = request.form[
                'telefone'] if 'telefone' in request.form else ""
            novasenha = request.form[
                'newPassword'] if 'newPassword' in request.form else ""

            if not novasenha:
                # novasenha = "gabinetedigital"
                novasenha = ''.join(
                    random.choice(string.printable) for x in range(8))

            # print nome, '-', email, '-', novasenha

            try:
                user = authapi.create_user(nome, email, unicode(novasenha),
                                           email)
                r = {
                    'status':
                    'ok',
                    'message':
                    'Sua contibuição foi aceita com sucesso. Verifique seu email para confirmar o cadastro.'
                }
                user_recent = True
                send_welcome_email(user)
                send_password(user.email, novasenha)
            except authapi.UserExistsUnconfirmed, e:
                r = {
                    'status':
                    'nok',
                    'message':
                    u'Seu usuário precisa ser confirmado, veja seu email!'
                }
                return dumps(r)

            if telefone:
                user.set_meta('phone', telefone)
                dbsession.commit()
        else:
            r = {
                'status':
                'nok',
                'message':
                u'É necessário informar uma senha ou dados para cadastro.'
            }