mumukit-auth 0.2.3 → 1.0.0
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 +8 -8
- data/lib/mumukit/auth/metadata.rb +18 -4
- data/lib/mumukit/auth/user.rb +13 -2
- data/lib/mumukit/auth/version.rb +1 -1
- metadata +4 -18
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OTg2YjA1MGExZDRlODhkMjk4MTJiNGFlN2FlZWE5NDcwNTgxYjM1YQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
M2U4ZmU4MDE1NjViNGIxYzgzMzNmNzRmNmE1MjMxMWMxNjE4ZTM3OA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODZkYTk5NjcxNzcxYTRkYWE1MjU5MmYwMmQzYmZmNzFiNDUxNmU2YjIxMGM1
|
10
|
+
ZWVmZjMyZWVjY2MzZDkzMDQyNTRjOGQwZTRhMjA3ODkyYTM1ZjgxNGMxYzgx
|
11
|
+
ZjkxNmUwNDMyYTI0MzQ2N2MwMmYxYjE0ZDA3ZTQ1NjIxMDJjZDM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTUyZWExNzBlMTQyMWRmNTcwMzEzZWZkYmYyNWE3NzdlNjgxY2UyOWM0ZWYy
|
14
|
+
ZTYyZTQ4ZmRkYmUzOGI2MTNkZDFiYzhjOWE3NWExNWIwNWQ0MzBmNGM2ZDE1
|
15
|
+
MTJkNjE0MDBjNjVlNjc3YzdlZGI4ZmIyYjQ0MTZhYzczMDFjYmQ=
|
@@ -13,15 +13,29 @@ class Mumukit::Auth::Metadata
|
|
13
13
|
|
14
14
|
def add_permission!(app, permission)
|
15
15
|
if permissions(app).present?
|
16
|
-
@json[app] =
|
16
|
+
@json[app] = process_add_permission(app, permission)
|
17
17
|
else
|
18
18
|
@json.merge!("#{app}" => {'permissions' => permission})
|
19
19
|
end
|
20
|
-
@json
|
21
20
|
end
|
22
21
|
|
23
|
-
def
|
24
|
-
|
22
|
+
def remove_permission!(app, permission)
|
23
|
+
if permissions(app).present?
|
24
|
+
@json[app] = process_remove_permission(app, permission)
|
25
|
+
end
|
26
|
+
@json.delete(app) if @json.dig(app, 'permissions').blank?
|
27
|
+
end
|
28
|
+
|
29
|
+
def process_permission(new_permissions)
|
30
|
+
{'permissions' => Mumukit::Auth::Permissions.load(new_permissions).to_s}
|
31
|
+
end
|
32
|
+
|
33
|
+
def process_remove_permission(app, permission)
|
34
|
+
process_permission(permissions(app).as_json.split(':').reject { |it| it == permission }.join(':'))
|
35
|
+
end
|
36
|
+
|
37
|
+
def process_add_permission(app, permission)
|
38
|
+
process_permission(permissions(app).as_json + ":#{permission}")
|
25
39
|
end
|
26
40
|
|
27
41
|
def librarian?(slug)
|
data/lib/mumukit/auth/user.rb
CHANGED
@@ -9,9 +9,14 @@ class Mumukit::Auth::User
|
|
9
9
|
@user = user || client.user(@social_id)
|
10
10
|
end
|
11
11
|
|
12
|
-
def
|
12
|
+
def add_permission!(key, permission)
|
13
13
|
metadata.add_permission!(key, permission)
|
14
|
-
|
14
|
+
update_user_metadata!
|
15
|
+
end
|
16
|
+
|
17
|
+
def remove_permission!(key, permission)
|
18
|
+
metadata.remove_permission!(key, permission)
|
19
|
+
update_user_metadata!
|
15
20
|
end
|
16
21
|
|
17
22
|
def permissions_string
|
@@ -64,4 +69,10 @@ class Mumukit::Auth::User
|
|
64
69
|
)
|
65
70
|
end
|
66
71
|
|
72
|
+
private
|
73
|
+
|
74
|
+
def update_user_metadata!
|
75
|
+
client.update_user_metadata social_id, metadata.as_json
|
76
|
+
end
|
77
|
+
|
67
78
|
end
|
data/lib/mumukit/auth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mumukit-auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Franco Leonardo Bulgarelli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,34 +80,20 @@ dependencies:
|
|
80
80
|
- - ! '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: activesupport
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ! '>='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ! '>='
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: mumukit-core
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
87
|
- - ~>
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0.
|
89
|
+
version: '0.2'
|
104
90
|
type: :runtime
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
94
|
- - ~>
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0.
|
96
|
+
version: '0.2'
|
111
97
|
description:
|
112
98
|
email:
|
113
99
|
- franco@mumuki.org
|