Exemple #1
0
def create_or_login(resp):
  user = None
  session["email"] = resp.email
  user = get_user(email=resp.email)
  if user is not None:
    g.user = user
  else:
    default_channels = current_app.config["DEFAULT_CHANNELS"]
    gravatar_url = "//www.gravatar.com/avatar/" + md5(resp.email.lower()).hexdigest() + "?"
    gravatar_url += urllib.urlencode({ 's':str(18) })

    user_object = {
        "openid": resp.identity_url,
        "name": resp.fullname or resp.nickname,
        "email": resp.email,
        "gravatar": gravatar_url,
        "last_selected_channel": default_channels[0],
        "channels": default_channels,
        "api_key": str(uuid.uuid4()),
        "secret": str(uuid.uuid4()),
    }
    db.users.save(user_object)
    for channel in default_channels:
      add_user_to_channel(user_object, channel)
      send_join_channel(channel, user_object, push_socket)
    g.user = user_object
  return redirect(oid.get_next_url())
Exemple #2
0
def oauth_callback(provider):
    if g.authed is True:
      return redirect(url_for('frontend.index'))
    oauth = OAuthSignIn.get_provider(provider)
    username, email = oauth.callback()
    if email is None:
        flash('Authentication failed.')
        return redirect(url_for('frontend.index'))

    user = None
    session["email"] = email
    user = get_user(email=email)
    if user is not None:
      g.user = user
    else:
      default_channels = current_app.config["DEFAULT_CHANNELS"]
      gravatar_url = "//www.gravatar.com/avatar/" + md5(email.lower()).hexdigest() + "?"
      gravatar_url += urllib.urlencode({ 's':str(18) })

      user_object = {
          "openid": "authed",
          "name": username,
          "email": email,
          "gravatar": gravatar_url,
          "last_selected_channel": default_channels[0],
          "channels": default_channels,
          "api_key": str(uuid.uuid4()),
          "secret": str(uuid.uuid4()),
      }
      db.users.save(user_object)
      for channel in default_channels:
        add_user_to_channel(user_object, channel)
        send_join_channel(channel, user_object, push_socket)
      g.user = user_object
    return redirect(url_for('frontend.index'))
Exemple #3
0
def create_or_login(resp):
    user = None
    session["email"] = resp.email
    user = get_user(email=resp.email)
    if user is not None:
        g.user = user
    else:
        default_channels = current_app.config["DEFAULT_CHANNELS"]
        gravatar_url = "//www.gravatar.com/avatar/" + md5(
            resp.email.lower()).hexdigest() + "?"
        gravatar_url += urllib.urlencode({'s': str(18)})

        user_object = {
            "openid": resp.identity_url,
            "name": resp.fullname or resp.nickname,
            "email": resp.email,
            "gravatar": gravatar_url,
            "last_selected_channel": default_channels[0],
            "channels": default_channels,
            "api_key": str(uuid.uuid4()),
            "secret": str(uuid.uuid4()),
        }
        db.users.save(user_object)
        for channel in default_channels:
            add_user_to_channel(user_object, channel)
            send_join_channel(channel, user_object, push_socket)
        g.user = user_object
    return redirect(oid.get_next_url())
Exemple #4
0
def create_or_login(resp):
    user = None
    session["email"] = resp.email
    user = db.users.find_one({"email": resp.email})
    if user is not None:
        g.user = user
    else:
        default_channels = current_app.config["DEFAULT_CHANNELS"]
        gravatar_url = "http://www.gravatar.com/avatar/" + md5(
            resp.email.lower()).hexdigest() + "?"
        gravatar_url += urllib.urlencode({'s': str(18)})

        user_object = {
            "openid": resp.identity_url,
            "name": resp.fullname or resp.nickname,
            "email": resp.email,
            "gravatar": gravatar_url,
            "last_selected_channel": default_channels[0],
            "channels": default_channels,
            "api_key": str(uuid.uuid4()),
            "secret": str(uuid.uuid4()),
        }
        db.users.save(user_object)
        push_socket = zmq_context.socket(zmq.PUSH)
        push_socket.connect(current_app.config["PUSH_ADDRESS"])
        for channel in default_channels:
            add_user_to_channel(user_object, channel)
            send_join_channel(channel, user_object, push_socket)
        push_socket.close()
        g.user = user_object
    flash(u'Successfully logged in')
    return redirect(oid.get_next_url())
Exemple #5
0
def create_or_login(resp):
  user = None
  session["email"] = resp.email
  user = db.users.find_one({ "email" : resp.email })
  if user is not None:
    g.user = user
  else:
    default_channels = current_app.config["DEFAULT_CHANNELS"]
    gravatar_url = "http://www.gravatar.com/avatar/" + md5(resp.email.lower()).hexdigest() + "?"
    gravatar_url += urllib.urlencode({ 's':str(18) })

    user_object = {
        "openid": resp.identity_url,
        "name": resp.fullname or resp.nickname,
        "email": resp.email,
        "gravatar": gravatar_url,
        "last_selected_channel": default_channels[0],
        "channels": default_channels,
        "api_key": str(uuid.uuid4()),
        "secret": str(uuid.uuid4()),
    }
    db.users.save(user_object)
    push_socket = zmq_context.socket(zmq.PUSH)
    push_socket.connect(current_app.config["PUSH_ADDRESS"])
    for channel in default_channels:
      add_user_to_channel(user_object, channel)
      send_join_channel(channel, user_object, push_socket)
    push_socket.close()
    g.user = user_object
  flash(u'Successfully logged in')
  return redirect(oid.get_next_url())