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