ucenter 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9d1dcc7055c7ee28d0f4fb05b65b4a994215808a
4
- data.tar.gz: 1090fb5d8c8f327654747e0af5325c288d8b05a6
3
+ metadata.gz: 455a44d1c4adabc58b1e3427ab519d340edae2d2
4
+ data.tar.gz: 44f6c5b7e7f0b6716fc66ec6680f70ba7173c140
5
5
  SHA512:
6
- metadata.gz: 713c51920ffb18ca26c9d4fa588226430f3e08953d66c5191df36c19ccf21ef85271ff1a122195f3b3ae87bc51a2048b24489045451e58cbbe27374feb8cd77c
7
- data.tar.gz: d51c837df83c907a6da7ddbe52e482802746134bcd25cfbcc9f2e2996bd8e153450eb36679f504797b490420f90efae0481fdf7f83ee19f3b09dbd589dbeb3bc
6
+ metadata.gz: f53e7f4caa4ef1d23c28446d83e7d1e4296329d2fd30ac33f803843518a186431459c5037609dced43ea82f8922e72ee744d9f3c52a66c918f7467f6f6a28d1d
7
+ data.tar.gz: ff434fc772fc413ebb1a114f0212d5a80b92179a27d5d3abebc4e6dfbddd85e966182a184647a73383110c9dffd54a023cfe42afe1912271d6275b8366a697a7
data/Gemfile CHANGED
@@ -2,4 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in ucenter.gemspec
4
4
  gemspec
5
- gem "mysql2"
5
+ gem "mysql2"
6
+ gem "nokogiri"
data/lib/ucenter.rb CHANGED
@@ -3,4 +3,5 @@ require 'ucenter/client'
3
3
  require 'ucenter/interface/base'
4
4
  require 'ucenter/interface/authcode'
5
5
  require 'ucenter/interface/user'
6
+ require 'ucenter/interface/xml'
6
7
  require 'ucenter/interface/utility'
@@ -12,5 +12,9 @@ module Ucenter
12
12
  @utility ||= Ucenter::Interface::Utility.new(self)
13
13
  end
14
14
 
15
+ def xml
16
+ @xml ||= Ucenter::Interface::Xml.new(self)
17
+ end
18
+
15
19
  end
16
20
  end
@@ -7,12 +7,25 @@ module Ucenter
7
7
  data = get_user_by_uid(username)
8
8
  elsif is_uid == 2
9
9
  data= get_user_by_email(username)
10
+ elsif is_uid == 3
11
+ data = get_user_by_phone(username)
10
12
  else
11
13
  data = get_user_by_username(username)
12
14
  end
13
15
  data
14
16
  end
15
17
 
18
+ def check_login(username, password, is_uid = FALSE)
19
+ user = get_user(username, is_uid)
20
+ if user['username'].nil?
21
+ return [-1,nil]
22
+ elsif user['password'] != md5("#{md5(password)}#{user['salt']}")
23
+ return [-2,nil]
24
+ end
25
+ [user['uid'],user]
26
+ end
27
+
28
+ protected
16
29
  def get_user_by_username(username)
17
30
  db_client.query("SELECT * FROM #{Ucenter::Config.uc_dbtablepre}members WHERE username='#{username}'").to_a[0]
18
31
  end
@@ -24,6 +37,13 @@ module Ucenter
24
37
  def get_user_by_email(username)
25
38
  db_client.query("SELECT * FROM #{Ucenter::Config.uc_dbtablepre}members WHERE email='#{username}'").to_a[0]
26
39
  end
40
+
41
+ def get_user_by_phone(username)
42
+ db_client.query("SELECT * FROM #{Ucenter::Config.uc_dbtablepre}members WHERE phone='#{username}'").to_a[0]
43
+ end
44
+
45
+ private
46
+ def md5 str; Digest::MD5.hexdigest str.to_s end
27
47
  end
28
48
  end
29
49
  end
@@ -0,0 +1,44 @@
1
+ module Ucenter
2
+ module Interface
3
+ class Xml < Base
4
+ def parse body
5
+ reader = Nokogiri::XML::Reader(body)
6
+
7
+ result ||= Hash.new
8
+ vars ||= []
9
+
10
+ reader.each do |node|
11
+ if node.name == 'item'
12
+ if vars.include?(node.attributes['id'])
13
+ vars.delete(node.attributes['id'])
14
+ else
15
+ vars << node.attributes['id']
16
+ end
17
+ elsif node.name == '#cdata-section'
18
+ # 只能写出这么渣的代码,求高手调教
19
+ case vars.length
20
+ when 1
21
+ result[vars[0]] = node.value
22
+ when 2
23
+ result[vars[0]] = Hash.new if result[vars[0]].nil?
24
+ result[vars[0]][vars[1]] = node.value
25
+ when 3
26
+ result[vars[0]][vars[1]] = Hash.new if result[vars[0]][vars[1]].nil?
27
+ result[vars[0]][vars[1]][vars[2]] = node.value
28
+ when 4
29
+ result[vars[0]][vars[1]][vars[2]] = Hash.new if result[vars[0]][vars[1]][vars[2]].nil?
30
+ result[vars[0]][vars[1]][vars[2]][vars[3]] = node.value
31
+ when 5
32
+ result[vars[0]][vars[1]][vars[2]][vars[3]] = Hash.new if result[vars[0]][vars[1]][vars[2]][vars[3]].nil?
33
+ result[vars[0]][vars[1]][vars[2]][vars[3]][vars[4]] = node.value
34
+ end
35
+ end
36
+ end
37
+ result
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+
44
+
@@ -1,3 +1,3 @@
1
1
  module Ucenter
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/ucenter.gemspec CHANGED
@@ -20,4 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
22
  spec.add_development_dependency "rake", "~>0"
23
+ spec.add_development_dependency "mysql2", "~>0"
24
+ spec.add_development_dependency "nokogiri", "~>0"
23
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ucenter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Willin Wang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-26 00:00:00.000000000 Z
11
+ date: 2014-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mysql2
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  description: http://willin.wang visit for more info.
42
70
  email: willin@willin.org
43
71
  executables: []
@@ -56,6 +84,7 @@ files:
56
84
  - lib/ucenter/interface/base.rb
57
85
  - lib/ucenter/interface/user.rb
58
86
  - lib/ucenter/interface/utility.rb
87
+ - lib/ucenter/interface/xml.rb
59
88
  - lib/ucenter/version.rb
60
89
  - ucenter.gemspec
61
90
  homepage: https://github.com/willin/ucenter