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 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