auth_manager 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d82e648bc36a09ed97c642107200d61274fcdcaf
4
- data.tar.gz: 667d2179e19911d1a7912fd3e519b4e217539375
3
+ metadata.gz: 4c23c797e945286960d9bbbe5d636a0d76af01a6
4
+ data.tar.gz: 59e984d5d11a2ea53bb1a49c46121cf62681bc5a
5
5
  SHA512:
6
- metadata.gz: c1905bb61805123c4fc156b81bca20d8d884341eb69210ac4d5b450bf239574520d73e879d8a27406ee4e7bffe21e6740de6c0706195ba630ff16f297c3ddd81
7
- data.tar.gz: 10dc82a07b862085be82c8c8b17df89d3fff79b99e4ee058091816a4febaf7029f5746b89feee88332b3ecc5be02a0f3924f8259db454f44984ce14682fb9101
6
+ metadata.gz: 18ce94bb4ff84988ff3baf0ac275a3dac962b1772115f2c8a137a2528ea8e384f24e2914f6c75333589836a4f158c1c412746a8ae53fc1b381f96ed3bb8e71a2
7
+ data.tar.gz: 85c911b5d08de7eb1c7b6abe5e3a26bb5034146b30694eb70c69fc1bdfa52a4c429deb558eadc3abfeab350641de7173b8a4fa694ebbc04c97a5bcfc91dbcd3a
@@ -8,22 +8,31 @@ class Add < AuthManager::Validation
8
8
  user = option.fetch(:user) || false
9
9
  app = option.fetch(:app) || false
10
10
  validate_param( given_user, option, user, app )
11
- save(user, given_user)
11
+ save(user, given_user) if available_login?(given_user, user)
12
12
  end
13
13
 
14
14
  private
15
15
 
16
- def available_login?(param, liste)
16
+ def available_login?(given_user, user)
17
+ login_ok = true
18
+ liste = user ? USERS : APPS
17
19
  all = @redis.smembers(liste)
18
20
  all.each do |member|
19
21
  member_json = JSON.parse(member)
20
- param_json = JSON.parse(param)
21
- member_json['login'] == param_json['login'] ? false : true
22
+ param_json = JSON.parse(given_user)
23
+ if param_json['login'] && login_exist?(member_json['login'], param_json['login'])
24
+ login_ok = false
25
+ break
26
+ end
22
27
  end
28
+ login_ok
29
+ end
30
+
31
+ def login_exist?(wanted_login, login)
32
+ wanted_login == login
23
33
  end
24
34
 
25
35
  def save_this(liste, params)
26
- available_login?(params, liste)
27
36
  @redis.sadd(liste, params)
28
37
  end
29
38
 
@@ -1,3 +1,3 @@
1
1
  module AuthManager
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/specs/add_spec.rb CHANGED
@@ -4,6 +4,8 @@ describe Add do
4
4
  let(:add) { Add.new }
5
5
  #valid variables
6
6
  let(:valid_user) { { login: 'nano', password: 'password' }.to_json }
7
+ let(:stored_user) { {login: 'login', password: 'password'}.to_json }
8
+ let(:user_used_login) { {login: 'login', password: 'a password'}.to_json }
7
9
  let(:valid_app) { { api_key: 'api_key' }.to_json }
8
10
  let(:valid_user_opt) { {user: true, app: false} }
9
11
  let(:valid_app_opt) { { user: false, app: true } }
@@ -19,6 +21,7 @@ describe Add do
19
21
  before(:each) do
20
22
  add.redis.del('users', valid_user)
21
23
  add.redis.del('applications', valid_app)
24
+ add.redis.sadd('users', stored_user)
22
25
  end
23
26
  #normal cases
24
27
  context 'When saved a valid user' do
@@ -30,7 +33,9 @@ describe Add do
30
33
  context 'When saved a valid app' do
31
34
  it { expect(add.save?(valid_app, valid_app_opt)).to be_true }
32
35
  end
33
-
36
+ context 'When saved with an existing login' do
37
+ it { expect(add.save?(user_used_login, valid_user_opt)).to be_false }
38
+ end
34
39
  end
35
40
 
36
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auth_manager
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
  - atacraft && fabira