class Ucenter::Interface::User

Public Instance Methods

add_user(username, password, email, uid = 0, questionid = '', answer = '', regip = '', phone = '') click to toggle source
# File lib/ucenter/interface/user.rb, line 56
def add_user (username, password, email, uid = 0, questionid = '', answer = '', regip = '', phone = '')
  # TODO: 注册
  # Aaron 2014-08-28
  salt = UUID.new.generate[1,6]
  password = md5(md5(password)+salt)
  sqladd = uid.to_i==0 ? "" : ("uid='" + uid.to_i.to_s + "', " )
  sqladd += questionid.to_i > 0 ? (" secques='" + quescrypt(questionid,answer) + "', ") : " secques='', "
  sqladd += phone.empty? ? " " : " phone='#{phone}', "
  sql= "insert into #{Ucenter::Config.uc_dbtablepre}members  set  #{sqladd} username='#{username}', password='#{password}', email='#{email}', regip='#{regip}', regdate='#{Time.now.to_i}', salt='#{salt}'"
  client = db_client
  client.query(sql)
  inserted_id = client.last_id
  client.query("insert into #{Ucenter::Config.uc_dbtablepre}memberfields set uid='#{inserted_id}'")
  inserted_id
end
check_email_access(email) click to toggle source
# File lib/ucenter/interface/user.rb, line 39
def check_email_access(email)
  # TODO: 验证email权限
  TRUE
end
check_email_exist(email, username = '') click to toggle source
# File lib/ucenter/interface/user.rb, line 44
def check_email_exist(email, username = '')
  username = db_client.escape(username)
  email = db_client.escape(email)
  sql_add = username != '' ? "AND username<>'#{username}'" : '';
  db_client.query("SELECT email FROM  #{Ucenter::Config.uc_dbtablepre}members WHERE email='#{email}' #{sql_add}").to_a[0]
end
check_email_format(email) click to toggle source
# File lib/ucenter/interface/user.rb, line 35
def check_email_format(email)
  email.bytesize > 6 and !(/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/ =~ email).nil?
end
check_login(username, password, is_uid = FALSE) click to toggle source
# File lib/ucenter/interface/user.rb, line 19
def check_login(username, password, is_uid = FALSE)
  user = get_user(username, is_uid)
  if user.nil? or user['username'].nil?
    return [-1,nil]
  elsif user['password'] != md5("#{md5(password)}#{user['salt']}")
    return [-2,nil]
  end
  [user['uid'],user]
end
check_mergeuser(username) click to toggle source
# File lib/ucenter/interface/user.rb, line 51
def check_mergeuser(username)
  username = db_client.escape(username)
  db_client.query("SELECT count(*) FROM #{Ucenter::Config.uc_dbtablepre}mergemembers WHERE appid='#{Ucenter::Config.app_id}' AND username='#{username}'").to_a[0]
end
check_username(username) click to toggle source
# File lib/ucenter/interface/user.rb, line 29
def check_username(username)
  len = username.bytesize
  return FALSE if len > 15 or len < 3 or !( /\s+|^c:\\con\\con|\[%,\*\"\s\<\>\&\]|\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8/is =~ username).nil?
  TRUE
end
delete_user() click to toggle source
# File lib/ucenter/interface/user.rb, line 76
def delete_user
  # TODO: 删除
end
edit_user() click to toggle source
# File lib/ucenter/interface/user.rb, line 72
def edit_user
  # TODO: 修改
end
get_user(username, is_uid = FALSE) click to toggle source
# File lib/ucenter/interface/user.rb, line 5
def get_user(username, is_uid = FALSE)
  username = db_client.escape(username) unless username.nil?
  if is_uid == 1
    data = get_user_by_uid(username)
  elsif is_uid == 2
    data= get_user_by_email(username)
  elsif is_uid == 3
    data = get_user_by_phone(username)
  else
    data = get_user_by_username(username)
  end
  data
end

Protected Instance Methods

get_user_by_email(username) click to toggle source
# File lib/ucenter/interface/user.rb, line 89
def get_user_by_email(username)
  db_client.query("SELECT * FROM #{Ucenter::Config.uc_dbtablepre}members WHERE email='#{username}'").to_a[0]
end
get_user_by_phone(username) click to toggle source
# File lib/ucenter/interface/user.rb, line 93
def get_user_by_phone(username)
  db_client.query("SELECT * FROM #{Ucenter::Config.uc_dbtablepre}members WHERE phone='#{username}'").to_a[0]
end
get_user_by_uid(username) click to toggle source
# File lib/ucenter/interface/user.rb, line 85
def get_user_by_uid(username)
  db_client.query("SELECT * FROM #{Ucenter::Config.uc_dbtablepre}members WHERE uid='#{username}'").to_a[0]
end
get_user_by_username(username) click to toggle source
# File lib/ucenter/interface/user.rb, line 81
def get_user_by_username(username)
  db_client.query("SELECT * FROM #{Ucenter::Config.uc_dbtablepre}members WHERE username='#{username}'").to_a[0]
end
quescrypt(questionid, answer) click to toggle source
# File lib/ucenter/interface/user.rb, line 97
def quescrypt(questionid, answer)
  return questionid > 0 && answer != '' ? md5(answer.md5(questionid))[16,8] : '';
end

Private Instance Methods

md5(str;) click to toggle source
# File lib/ucenter/interface/user.rb, line 102
def md5 str; Digest::MD5.hexdigest str.to_s end