mumukit-auth 0.2.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OWI4N2M5NDExZDc1NjhjYTQ2NjMwNGRmZjFjZmY1ZjI0NWM5MDVlNg==
4
+ OTg2YjA1MGExZDRlODhkMjk4MTJiNGFlN2FlZWE5NDcwNTgxYjM1YQ==
5
5
  data.tar.gz: !binary |-
6
- NDJjMTc0ZmMzODc2NThjNGNjYmNjNjRiNDgyZDAxYzExN2RkMzJkMQ==
6
+ M2U4ZmU4MDE1NjViNGIxYzgzMzNmNzRmNmE1MjMxMWMxNjE4ZTM3OA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YTU3YjdjN2VlZGY0N2RmZWM1ZTNkOTg0YjE3YTdiZTE5MmQ0ZjI0YTY2NmYy
10
- OWNkOGUyNjdkZTIzYmFiNzUyNGQ4MGMwMGExZGE0Mzk5Y2VhMTRhMDU2ZWVi
11
- ZDY5MjMyMDJiZmFiMTNjNTgxNzQ2NTE3NTk4NDNmZTg0OGY0MGU=
9
+ ODZkYTk5NjcxNzcxYTRkYWE1MjU5MmYwMmQzYmZmNzFiNDUxNmU2YjIxMGM1
10
+ ZWVmZjMyZWVjY2MzZDkzMDQyNTRjOGQwZTRhMjA3ODkyYTM1ZjgxNGMxYzgx
11
+ ZjkxNmUwNDMyYTI0MzQ2N2MwMmYxYjE0ZDA3ZTQ1NjIxMDJjZDM=
12
12
  data.tar.gz: !binary |-
13
- ZTFjM2UxMTc4MmRiZjQ0ZWExYTRlYThiNzIyNDcxNjgzNjk3YjUwYjdhMzFm
14
- YmU5NzM5ZWFiNzdkZDRiOWJmNmU2OTM2ZTRhYmNjZTA0NDgxYTUyMjdlYzU1
15
- NWI2NjdhZDVlYzEzZDZjOGE1NjczMGE5ZWQwZDEwOTAxMjAyOTQ=
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] = process_permission(app, permission)
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 process_permission(app, permission)
24
- {permissions: Mumukit::Auth::Permissions.load(permissions(app).as_json + ":#{permission}").to_s}
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)
@@ -9,9 +9,14 @@ class Mumukit::Auth::User
9
9
  @user = user || client.user(@social_id)
10
10
  end
11
11
 
12
- def update_permissions(key, permission)
12
+ def add_permission!(key, permission)
13
13
  metadata.add_permission!(key, permission)
14
- client.update_user_metadata social_id, metadata.as_json
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
@@ -1,5 +1,5 @@
1
1
  module Mumukit
2
2
  module Auth
3
- VERSION = '0.2.3'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
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.2.3
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-08-08 00:00:00.000000000 Z
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.1'
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.1'
96
+ version: '0.2'
111
97
  description:
112
98
  email:
113
99
  - franco@mumuki.org