Example #1
0
def signup(): 
  if not db.userExists(request.form['username']) and len(request.form['username']) > 0 and request.form['password1'] == request.form['password2'] and  request.form['tosAgree'] == 'true':
    if captcha.check(request.form['recaptcha_challenge_field'], request.form['recaptcha_response_field'],config.captchaSecretKey,request.remote_addr):
      if db.checkBetaPass(request.form["betaCode"]):
        hashed = system.cryptography.encryptPassword(request.form['password1'], True)
        shutil.copy("static/images/newbyicon.png", "uploads/icons/" + request.form['username'].lower() + ".png")
        key = db.nextKey("users")
        db.db.users.insert({
          "_id"         : key,
          "username"    : request.form['username'],
          "lowername"   : request.form['username'].lower(),
          "password"    : hashed, 
          "email"       : None, #request.form['email'],
          "ip"          : [request.remote_addr],
          "dob"         : None,
          "dateJoined"  : datetime.datetime.today(),
          "layout"      : {
            # t == top; l == left; r == right; b == bottom; h == hidden
            "profile"  : "t",
            "gallery"  : "l",
            "watches"  : "r",
            "comments" : "b"
          },
          "permissions" : {
            "deleteComments"   : False,
            "deleteArt"        : False,
            "banUsers"         : False,
            "makeProps"        : False,
            "vote"             : False,
            "generateBetaPass" : False
          },
          "theme"       : "default",
          "profile"     : "",
          "codeProfile" : "",
          "betaKey"     : key,
          "bground"     : None,
          "icon"        : "png",
          "glued"      : 1,
          # m == Male; f == Female; h == Hide Gender
          "gender"     : "h"
        }) 
        session['username'] = request.form['username']
        session['password'] = hashed
        session.permanent = True
        return "1" #SUCCESS
      else: return "2" #ERROR, Beta Code Fail
    else: return "3" #ERROR, Captcha Fail
  else: return "0" #ERROR, User doesn't exist or username is too small
Example #2
0
def signup(): 
  if db.userExists(request.form['username']) or len(request.form['username']) == 0 or request.form['password1'] != request.form['password2'] or request.form['tosAgree'] != 'true':
    return "0" #ERROR, User doesn't exist or username is too small
  if captcha.check(request.form['recaptcha_challenge_field'], request.form['recaptcha_response_field'],config.captchaSecretKey,request.remote_addr):
    return "2" #ERROR, Captcha Fail
  if config.betaKey:
    betaKey = db.checkBetaPass(request.form["betaCode"])
    if not betaKey:
      return "3" #ERROR, Beta Code Fail
  else: betaKey = None
  hashed = system.cryptography.encryptPassword(request.form['password1'], True)
  storage.push("static/images/newbyicon.png", os.path.join(config.iconsDir, request.form['username'].lower() ), mimetype="image/png")
  key = db.nextKey("users")
  db.db.users.insert({
    "_id"         : key
  , "username"    : request.form['username']
  , "lowername"   : request.form['username'].lower()
  , "password"    : hashed
  , "email"       : None #request.form['email']
  , "ip"          : [request.remote_addr]
  , "dob"         : None
  , "betaKey"     : betaKey
  , "betaKeys"    : config.startingBetaKeys
  , "dateJoined"  : datetime.datetime.today()
  , "showAds"     : True
  , "layout"      : {
      # [CARDINAL LOCATION, ORDERING]
      # t == top; l == left; r == right; b == bottom; h == hidden
      "profile"   : ["t",0]
    , "gallery"   : ["l",0]
    , "watches"   : ["r",0]
    , "comments"  : ["b",0]
    , "nearby"    : ["r",1]
    , "journal"   : ["l",1]
    , "shout"     : ["h",0]
    , "friends"   : ["h",0]
    , "awards"    : ["h",0]
    , "shop"      : ["h",0]
    , "favorites" : ["h",0]
    , "tips"      : ["h",0]
    , "chars"     : ["h",0]
    , "playlist"  : ["h",0]
    }
  , "permissions" : {
      "deleteComments"   : True
    , "editArt"          : True
    , "deleteArt"        : True
    , "banUsers"         : True
    , "makeProps"        : True
    , "vote"             : True
    , "generateBetaPass" : True
    , "cropArt"          : True
    }
  , "latitude"    : None
  , "longitude"   : None
  , "theme"       : "default"
  , "profile"     : ""
  , "codeProfile" : ""
  , "pageViews"   : 0
  , "watchers"    : []
  , "bground"     : None
  , "icon"        : "png"
  , "glued"       : 1
    # m == Male; f == Female; h == Hide Gender
  , "gender"      : "h"
  }) 
  session['username'] = request.form['username']
  session['password'] = hashed
  session.permanent = True
  return "1" #SUCCESS
Example #3
0
def signup(): 
  """Handles member signup requests"""
  # Error Handling
  required_parameters = ['username','password1','password2']
  if config.captcha: required_parameters += ['recaptcha_challenge_field','recaptcha_response_field']
  if config.beta_key: required_parameters += ['beta_code']
  if not util.all_in_list(required_parameters, request.form):
    return "0" #ERROR, A required form element wasn't found
  username_len = len(request.form['username'])
  if users_model.username_taken(request.form['username']) or username_len == 0 or username_len > 30:
    return "2" #ERROR, User doesn't exist or username is too small
  if request.form['password1'] != request.form['password2'] or not request.form['password1']:
    return "3" #ERROR, Passwords don't match
  if not 'tos_agree' in request.form:
    return "4" #ERROR, Terms of Service wasn't checked
  if config.captcha and not captcha.check(request.form['recaptcha_challenge_field'], request.form['recaptcha_response_field'],config.captcha_secret_key,request.remote_addr):
    return "5" #ERROR, Captcha Fail
  if config.beta_key:
    beta_key = beta_pass_model.check(request.form["beta_code"])
    if not beta_key:
      return "6" #ERROR, Beta Code Fail
  if g.logged_in_user:
    return "7" #ERROR, User is already logged in
  else: beta_key = None
  # Add the user to the database
  hashed = cryptography.encrypt_password(request.form['password1'], True)
  icon_filepath = os.path.join(config.icons_dir, request.form['username'].lower())
  storage.push("static/images/newby_icon.png", icon_filepath, mimetype="image/png")
  if not config.using_S3: shutil.copyfile("static/images/newby_icon.png", icon_filepath)
  users_model.insert({
    "username"    : request.form['username']
  , "lowername"   : request.form['username'].lower()
  , "password"    : hashed
  , "email"       : None #request.form['email']
  , "ip"          : [request.remote_addr]
  , "dob"         : None
  , "beta_key"    : beta_key
  , "beta_keys"   : config.starting_beta_keys
  , "date_joined" : datetime.datetime.today()
  , "show_ads"    : True
  , "layout"      : {
      # [CARDINAL LOCATION, ORDERING]
      # t == top; l == left; r == right; b == bottom; h == hidden
      "profile"   : ["t",0]
    , "gallery"   : ["l",0]
    , "watches"   : ["r",0]
    , "comments"  : ["b",0]
    , "nearby"    : ["r",1]
    , "journal"   : ["l",1]
    , "shout"     : ["h",0]
    , "friends"   : ["h",0]
    , "awards"    : ["h",0]
    , "shop"      : ["h",0]
    , "favorites" : ["h",0]
    , "tips"      : ["h",0]
    , "chars"     : ["h",0]
    , "playlist"  : ["h",0]
    }
  , "permissions" : {
      "delete_comments"    : True
    , "edit_art"           : True
    , "delete_art"         : True
    , "delete_journal"     : True
    , "ban_users"          : True
    , "make_props"         : True
    , "vote"               : True
    , "generate_beta_pass" : True
    , "crop_art"           : True
    }
  , "latitude"     : None
  , "longitude"    : None
  , "theme"        : "default"
  , "profile"      : ""
  , "code_profile" : ""
  , "page_views"   : 0
  , "watchers"     : []
  , "bground"      : None
  , "icon"         : "png"
  , "glued"        : 1
    # m == Male; f == Female; h == Hide Gender
  , "gender"       : "h"
  }) 
  session['username'] = request.form['username']
  session['password'] = hashed
  session.permanent = True
  return "1" #SUCCESS