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 +4 -4
- data/lib/auth_manager/add/add.rb +14 -5
- data/lib/auth_manager/version.rb +1 -1
- data/specs/add_spec.rb +6 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c23c797e945286960d9bbbe5d636a0d76af01a6
|
4
|
+
data.tar.gz: 59e984d5d11a2ea53bb1a49c46121cf62681bc5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18ce94bb4ff84988ff3baf0ac275a3dac962b1772115f2c8a137a2528ea8e384f24e2914f6c75333589836a4f158c1c412746a8ae53fc1b381f96ed3bb8e71a2
|
7
|
+
data.tar.gz: 85c911b5d08de7eb1c7b6abe5e3a26bb5034146b30694eb70c69fc1bdfa52a4c429deb558eadc3abfeab350641de7173b8a4fa694ebbc04c97a5bcfc91dbcd3a
|
data/lib/auth_manager/add/add.rb
CHANGED
@@ -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?(
|
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(
|
21
|
-
member_json['login']
|
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
|
|
data/lib/auth_manager/version.rb
CHANGED
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
|