code42 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/code42.rb +1 -0
- data/lib/code42/api/role.rb +30 -0
- data/lib/code42/api/user.rb +7 -0
- data/lib/code42/attribute_serializer.rb +1 -1
- data/lib/code42/client.rb +1 -1
- data/lib/code42/permission.rb +13 -0
- data/lib/code42/resource.rb +3 -2
- data/lib/code42/role.rb +8 -1
- data/lib/code42/role_collection.rb +4 -0
- data/lib/code42/user.rb +10 -0
- data/lib/code42/version.rb +1 -1
- data/spec/cassettes/Code42_Client/_create_org/returns_created_org.yml +7 -41
- data/spec/cassettes/Code42_Client/_create_role/creates_a_role.yml +42 -0
- data/spec/cassettes/Code42_Client/_create_user/returns_created_user.yml +8 -32
- data/spec/cassettes/Code42_Client/_create_user/when_sending_an_invalid_email/raises_an_exception.yml +8 -7
- data/spec/cassettes/Code42_Client/_deactivate_org/puts_to_the_correct_route.yml +6 -8
- data/spec/cassettes/Code42_Client/_delete_role/deletes_a_role.yml +67 -0
- data/spec/cassettes/Code42_Client/_find_org_by_name/returns_the_org_with_the_specified_name.yml +9 -44
- data/spec/cassettes/Code42_Client/_get_token/returns_valid_tokens.yml +9 -17
- data/spec/cassettes/Code42_Client/_get_token/when_providing_invalid_credentials/should_raise_an_exception.yml +6 -5
- data/spec/cassettes/Code42_Client/_org/when_ID_is_not_passed/returns_my_org.yml +7 -41
- data/spec/cassettes/Code42_Client/_org/when_ID_is_passed_in/returns_a_specific_org.yml +7 -41
- data/spec/cassettes/Code42_Client/_permissions/returns_an_enumerable_of_permissions.yml +120 -0
- data/spec/cassettes/Code42_Client/_ping/returns_a_ping.yml +9 -14
- data/spec/cassettes/Code42_Client/_reset_password/when_sending_a_user_id/as_a_string/behaves_like_reset_password/is_successful.yml +41 -3
- data/spec/cassettes/Code42_Client/_reset_password/when_sending_a_user_id/as_an_integer/behaves_like_reset_password/is_successful.yml +41 -3
- data/spec/cassettes/Code42_Client/_reset_password/when_sending_a_username/behaves_like_reset_password/is_successful.yml +41 -3
- data/spec/cassettes/Code42_Client/_reset_password/when_sending_a_view_url/behaves_like_reset_password/is_successful.yml +41 -3
- data/spec/cassettes/Code42_Client/_roles/returns_an_enumerable.yml +243 -0
- data/spec/cassettes/Code42_Client/_unassign_role/removes_the_role.yml +107 -0
- data/spec/cassettes/Code42_Client/_update_role/updates_a_role.yml +155 -0
- data/spec/cassettes/Code42_Client/_update_user/returns_the_updated_user.yml +14 -12
- data/spec/cassettes/Code42_Client/_update_user/when_sending_an_invalid_email/raises_an_exception.yml +11 -10
- data/spec/cassettes/Code42_Client/_user/when_ID_is_not_passed/returns_my_user.yml +7 -32
- data/spec/cassettes/Code42_Client/_user/when_ID_is_passed_in/returns_a_specific_user.yml +8 -32
- data/spec/cassettes/Code42_Client/_user/when_blocked/returns_the_blocked_status.yml +15 -39
- data/spec/cassettes/Code42_Client/_user/when_unblocked/returns_the_blocked_status.yml +17 -38
- data/spec/cassettes/Code42_Client/_user_roles/returns_an_enumerable.yml +7 -19
- data/spec/cassettes/Code42_Client/_validate_token/returns_a_valid_response.yml +18 -34
- data/spec/code42/client_spec.rb +57 -2
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 204c4d637432178116bea0a22a7c4e96cb23fa4f
|
4
|
+
data.tar.gz: db890339d0aa2ad510ff27e2d4d1c6fef6e674ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15576c7015eed483f0b87b9f95400e6ef24442ceb6bedcd805bf58f272544e4b4dba047feef0ef1a53af91e7bac91ce27aff11dafc6a17867509087b66670279
|
7
|
+
data.tar.gz: ef2c016a06290d0440b70ab303f0015e7e1895584f68d5483215d0cfe7444b00464e01a0e1a9990cc26a7e375d8d4d60d9fd6aa37f8fd39d7f1b104296946a06
|
data/lib/code42.rb
CHANGED
data/lib/code42/api/role.rb
CHANGED
@@ -18,6 +18,36 @@ module Code42
|
|
18
18
|
def user_roles(id = 'my')
|
19
19
|
collection_from_response(Code42::RoleCollection, Code42::Role, :get, "userRole/#{id}")
|
20
20
|
end
|
21
|
+
|
22
|
+
# Unassign a role from a user
|
23
|
+
# @return true if role was unassigned
|
24
|
+
# @param id [String, Integer] The id of the user to return roles for
|
25
|
+
# @param id [String] The role name to unassign
|
26
|
+
# @example
|
27
|
+
# client.unassign_role(2, 'Admin')
|
28
|
+
def unassign_role(id, role_name)
|
29
|
+
delete('UserRole', { :userId => id, :roleName => role_name })
|
30
|
+
end
|
31
|
+
|
32
|
+
def roles(attrs = {})
|
33
|
+
collection_from_response(Code42::RoleCollection, Code42::Role, :get, "role", attrs)
|
34
|
+
end
|
35
|
+
|
36
|
+
def role(id)
|
37
|
+
object_from_response(Code42::Role, :get, "role/#{id}")
|
38
|
+
end
|
39
|
+
|
40
|
+
def create_role(name, permissions)
|
41
|
+
object_from_response(Code42::Role, :post, "role", role_name: name, permissions: permissions)
|
42
|
+
end
|
43
|
+
|
44
|
+
def update_role(id, attrs = {})
|
45
|
+
object_from_response(Code42::Role, :put, "role/#{id}", attrs)
|
46
|
+
end
|
47
|
+
|
48
|
+
def delete_role(id)
|
49
|
+
delete("Role/#{id}")
|
50
|
+
end
|
21
51
|
end
|
22
52
|
end
|
23
53
|
end
|
data/lib/code42/api/user.rb
CHANGED
@@ -85,6 +85,13 @@ module Code42
|
|
85
85
|
def activate_user(id)
|
86
86
|
delete("UserDeactivation/#{id}")
|
87
87
|
end
|
88
|
+
|
89
|
+
# Returns a list of permissions for the session user
|
90
|
+
# @return [Array] An array of matching permissions
|
91
|
+
def permissions
|
92
|
+
objects_from_response(Code42::Permission, :get, 'permission')
|
93
|
+
end
|
94
|
+
|
88
95
|
end
|
89
96
|
end
|
90
97
|
end
|
data/lib/code42/client.rb
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
module Code42
|
2
|
+
class Permission < Resource
|
3
|
+
# @!attribute [rw] name
|
4
|
+
# @return [String] The name of the permission
|
5
|
+
# @!attribute [rw] value
|
6
|
+
# @return [String] The value of the permission
|
7
|
+
# @!attribute [rw] description
|
8
|
+
# @return [String] The description of the permission
|
9
|
+
attribute :name
|
10
|
+
attribute :value
|
11
|
+
attribute :description
|
12
|
+
end
|
13
|
+
end
|
data/lib/code42/resource.rb
CHANGED
@@ -31,9 +31,10 @@ module Code42
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def collection_from_response(array)
|
34
|
-
array.map { |element| self.deserialize_and_initialize(element, self) }
|
34
|
+
(array || []).map { |element| self.deserialize_and_initialize(element, self) }
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
37
38
|
attr_accessor :client, :attributes
|
38
39
|
|
39
40
|
def initialize(data = {}, client = nil)
|
@@ -47,7 +48,7 @@ module Code42
|
|
47
48
|
self.class.instance_eval { attr_reader key.to_sym }
|
48
49
|
end
|
49
50
|
self.send("#{key}=", value)
|
50
|
-
attributes[key.to_sym] = send(key.to_sym)
|
51
|
+
attributes[key.to_sym] = self.send(key.to_sym)
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
data/lib/code42/role.rb
CHANGED
@@ -12,7 +12,6 @@ module Code42
|
|
12
12
|
# @!attribute [rw] updated_at
|
13
13
|
# @return [DateTime] The timestamp for the time the role was updated
|
14
14
|
|
15
|
-
attribute :user_id
|
16
15
|
attribute :id, :from => :roleId
|
17
16
|
attribute :name, :from => :roleName
|
18
17
|
attribute :created_at, :from => :creationDate, :as => DateTime
|
@@ -22,5 +21,13 @@ module Code42
|
|
22
21
|
def permissions=(permissions = [])
|
23
22
|
@permissions = permissions.map { |p| p['permission'] }
|
24
23
|
end
|
24
|
+
|
25
|
+
def update(attrs = {})
|
26
|
+
client.update_role(id, attrs)
|
27
|
+
end
|
28
|
+
|
29
|
+
def delete
|
30
|
+
client.delete_role(id)
|
31
|
+
end
|
25
32
|
end
|
26
33
|
end
|
data/lib/code42/user.rb
CHANGED
@@ -50,6 +50,11 @@ module Code42
|
|
50
50
|
client.assign_role(attrs)
|
51
51
|
end
|
52
52
|
|
53
|
+
# Delete a role from this user
|
54
|
+
def unassign_role(role_name)
|
55
|
+
client.unassign_role(id, role_name)
|
56
|
+
end
|
57
|
+
|
53
58
|
def block
|
54
59
|
client.block_user(id)
|
55
60
|
client.user id
|
@@ -69,5 +74,10 @@ module Code42
|
|
69
74
|
client.deactivate_user(id)
|
70
75
|
client.user(id, active: false)
|
71
76
|
end
|
77
|
+
|
78
|
+
def permissions
|
79
|
+
client.permissions
|
80
|
+
end
|
81
|
+
|
72
82
|
end
|
73
83
|
end
|
data/lib/code42/version.rb
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: http://admin:admin@localhost:
|
5
|
+
uri: http://admin:admin@localhost:4280/api/org
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"orgName":"IBM"}'
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.
|
11
|
+
- Faraday v0.9.0
|
12
12
|
Content-Type:
|
13
13
|
- application/json
|
14
14
|
Accept-Encoding:
|
@@ -24,51 +24,17 @@ http_interactions:
|
|
24
24
|
- no-store
|
25
25
|
Pragma:
|
26
26
|
- no-cache
|
27
|
+
Content-Location:
|
28
|
+
- http://localhost:4280/api/v1/org
|
27
29
|
Content-Type:
|
28
|
-
- application/json;
|
30
|
+
- application/json;charset=UTF-8
|
29
31
|
Transfer-Encoding:
|
30
32
|
- chunked
|
31
33
|
Server:
|
32
34
|
- Jetty(7.6.3.v20120416)
|
33
35
|
body:
|
34
36
|
encoding: UTF-8
|
35
|
-
string:
|
36
|
-
{
|
37
|
-
"metadata": {
|
38
|
-
"timestamp": "2013-06-13T15:16:29.975-05:00",
|
39
|
-
"params": {}
|
40
|
-
},
|
41
|
-
"data": {
|
42
|
-
"orgId": 87,
|
43
|
-
"orgUid": "587885375444888214",
|
44
|
-
"orgName": "IBM",
|
45
|
-
"status": "Active",
|
46
|
-
"active": true,
|
47
|
-
"blocked": false,
|
48
|
-
"parentOrgId": null,
|
49
|
-
"type": "ENTERPRISE",
|
50
|
-
"externalId": "587885375444888214",
|
51
|
-
"hierarchyCounts": {},
|
52
|
-
"configInheritanceCounts": {},
|
53
|
-
"creationDate": "2013-06-13T15:16:29.859-05:00",
|
54
|
-
"modificationDate": "2013-06-13T15:16:29.957-05:00",
|
55
|
-
"registrationKey": "SCTR-799T-224R-JWTW",
|
56
|
-
"reporting": {},
|
57
|
-
"customConfig": false,
|
58
|
-
"settings": {
|
59
|
-
"maxSeats": null,
|
60
|
-
"maxBytes": null
|
61
|
-
},
|
62
|
-
"settingsInherited": {
|
63
|
-
"maxSeats": "",
|
64
|
-
"maxBytes": ""
|
65
|
-
},
|
66
|
-
"settingsSummary": {
|
67
|
-
"maxSeats": "",
|
68
|
-
"maxBytes": ""
|
69
|
-
}
|
70
|
-
}
|
71
|
-
}
|
37
|
+
string: '{"metadata":{"timestamp":"2014-07-09T10:34:43.890-05:00","params":{}},"data":{"orgId":444,"orgUid":"644534473905930608","orgName":"IBM","status":"Active","active":true,"blocked":false,"parentOrgId":null,"type":"ENTERPRISE","classification":"BASIC","externalId":"644534473905930608","hierarchyCounts":{},"configInheritanceCounts":{},"creationDate":"2014-07-09T10:34:43.764-05:00","modificationDate":"2014-07-09T10:34:43.854-05:00","registrationKey":"TTT2-2T4R-MJWR-HR84","reporting":{},"customConfig":false,"settings":{"maxSeats":null,"maxBytes":null},"settingsInherited":{"maxSeats":"","maxBytes":""},"settingsSummary":{"maxSeats":"","maxBytes":""}}}'
|
72
38
|
http_version:
|
73
|
-
recorded_at:
|
39
|
+
recorded_at: Wed, 09 Jul 2014 15:34:43 GMT
|
74
40
|
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://admin:admin@localhost:4280/api/role
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"roleName":"My Role","permissions":["admin.user.read"]}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.9.0
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
Accept:
|
17
|
+
- '*/*'
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Cache-Control:
|
24
|
+
- no-store
|
25
|
+
Pragma:
|
26
|
+
- no-cache
|
27
|
+
Content-Location:
|
28
|
+
- http://localhost:4280/api/v1/role
|
29
|
+
Content-Type:
|
30
|
+
- application/json;charset=UTF-8
|
31
|
+
Transfer-Encoding:
|
32
|
+
- chunked
|
33
|
+
Server:
|
34
|
+
- Jetty(7.6.3.v20120416)
|
35
|
+
body:
|
36
|
+
encoding: UTF-8
|
37
|
+
string: '{"metadata":{"timestamp":"2014-07-09T10:46:21.189-05:00","params":{}},"data":{"roleId":62,"roleName":"My
|
38
|
+
Role","locked":false,"numberOfUsers":0,"creationDate":"2014-07-09T10:46:21.181-05:00","modificationDate":"2014-07-09T10:46:21.181-05:00","permissions":[{"permission":"admin.user.read","description":"Permission
|
39
|
+
to view user information"}]}}'
|
40
|
+
http_version:
|
41
|
+
recorded_at: Wed, 09 Jul 2014 15:46:21 GMT
|
42
|
+
recorded_with: VCR 2.5.0
|
@@ -2,13 +2,13 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: http://admin:admin@localhost:
|
5
|
+
uri: http://admin:admin@localhost:4280/api/user
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"orgId":2,"username":"testuser"}'
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.
|
11
|
+
- Faraday v0.9.0
|
12
12
|
Content-Type:
|
13
13
|
- application/json
|
14
14
|
Accept-Encoding:
|
@@ -24,42 +24,18 @@ http_interactions:
|
|
24
24
|
- no-store
|
25
25
|
Pragma:
|
26
26
|
- no-cache
|
27
|
+
Content-Location:
|
28
|
+
- http://localhost:4280/api/v1/user
|
27
29
|
Content-Type:
|
28
|
-
- application/json;
|
30
|
+
- application/json;charset=UTF-8
|
29
31
|
Transfer-Encoding:
|
30
32
|
- chunked
|
31
33
|
Server:
|
32
34
|
- Jetty(7.6.3.v20120416)
|
33
35
|
body:
|
34
36
|
encoding: UTF-8
|
35
|
-
string:
|
36
|
-
|
37
|
-
"metadata": {
|
38
|
-
"timestamp": "2013-06-13T15:16:29.797-05:00",
|
39
|
-
"params": {}
|
40
|
-
},
|
41
|
-
"data": {
|
42
|
-
"userId": 3,
|
43
|
-
"userUid": "2062352522e63ee1",
|
44
|
-
"status": "Active",
|
45
|
-
"username": "testuser",
|
46
|
-
"email": null,
|
47
|
-
"firstName": null,
|
48
|
-
"lastName": null,
|
49
|
-
"quotaInBytes": -1,
|
50
|
-
"orgId": 2,
|
51
|
-
"orgUid": "proserverdemo",
|
52
|
-
"orgName": "PROServer Demo",
|
53
|
-
"active": true,
|
54
|
-
"blocked": false,
|
55
|
-
"emailPromo": true,
|
56
|
-
"invited": true,
|
57
|
-
"orgType": "ENTERPRISE",
|
58
|
-
"usernameIsAnEmail": null,
|
59
|
-
"creationDate": "2013-06-13T15:14:39.703-05:00",
|
60
|
-
"modificationDate": "2013-06-13T15:16:29.777-05:00"
|
61
|
-
}
|
62
|
-
}
|
37
|
+
string: '{"metadata":{"timestamp":"2014-07-09T10:34:44.846-05:00","params":{}},"data":{"userId":38,"userUid":"7a1c8ea53caabfe3","status":"Active","username":"testuser","email":null,"firstName":null,"lastName":"Jenkins","quotaInBytes":-1,"orgId":2,"orgUid":"proserverdemo","orgName":"PROServer
|
38
|
+
Demo","active":true,"blocked":false,"emailPromo":true,"invited":true,"orgType":"ENTERPRISE","usernameIsAnEmail":null,"creationDate":"2014-07-09T10:27:12.465-05:00","modificationDate":"2014-07-09T10:34:44.835-05:00","passwordReset":false}}'
|
63
39
|
http_version:
|
64
|
-
recorded_at:
|
40
|
+
recorded_at: Wed, 09 Jul 2014 15:34:44 GMT
|
65
41
|
recorded_with: VCR 2.5.0
|
data/spec/cassettes/Code42_Client/_create_user/when_sending_an_invalid_email/raises_an_exception.yml
CHANGED
@@ -2,13 +2,13 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: post
|
5
|
-
uri: http://admin:admin@localhost:
|
5
|
+
uri: http://admin:admin@localhost:4280/api/user
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"orgId":2,"username":"testuser","email":"testuser"}'
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.
|
11
|
+
- Faraday v0.9.0
|
12
12
|
Content-Type:
|
13
13
|
- application/json
|
14
14
|
Accept-Encoding:
|
@@ -18,22 +18,23 @@ http_interactions:
|
|
18
18
|
response:
|
19
19
|
status:
|
20
20
|
code: 500
|
21
|
-
message: '[{
|
22
|
-
[] }]'
|
21
|
+
message: '[{"name":"EMAIL_INVALID","description":"com.code42.core.BuilderException","objects":[]}]'
|
23
22
|
headers:
|
24
23
|
Pragma:
|
25
24
|
- no-cache
|
25
|
+
Content-Location:
|
26
|
+
- http://localhost:4280/api/v1/user
|
26
27
|
Content-Type:
|
27
28
|
- text/html;charset=ISO-8859-1
|
28
29
|
Cache-Control:
|
29
30
|
- must-revalidate,no-cache,no-store
|
30
31
|
Content-Length:
|
31
|
-
- '
|
32
|
+
- '88'
|
32
33
|
Server:
|
33
34
|
- Jetty(7.6.3.v20120416)
|
34
35
|
body:
|
35
36
|
encoding: UTF-8
|
36
|
-
string: '[{"name":"EMAIL_INVALID","description":"
|
37
|
+
string: '[{"name":"EMAIL_INVALID","description":"com.code42.core.BuilderException","objects":[]}]'
|
37
38
|
http_version:
|
38
|
-
recorded_at:
|
39
|
+
recorded_at: Wed, 09 Jul 2014 15:34:44 GMT
|
39
40
|
recorded_with: VCR 2.5.0
|
@@ -2,13 +2,13 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: put
|
5
|
-
uri: http://admin:admin@localhost:
|
5
|
+
uri: http://admin:admin@localhost:4280/api/OrgDeactivation/88
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{}'
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
|
-
- Faraday v0.
|
11
|
+
- Faraday v0.9.0
|
12
12
|
Content-Type:
|
13
13
|
- application/json
|
14
14
|
Accept-Encoding:
|
@@ -17,8 +17,8 @@ http_interactions:
|
|
17
17
|
- '*/*'
|
18
18
|
response:
|
19
19
|
status:
|
20
|
-
code:
|
21
|
-
message:
|
20
|
+
code: 204
|
21
|
+
message: No Content
|
22
22
|
headers:
|
23
23
|
Cache-Control:
|
24
24
|
- no-store
|
@@ -28,13 +28,11 @@ http_interactions:
|
|
28
28
|
- http://localhost:4280/api/v1/OrgDeactivation/88
|
29
29
|
Content-Type:
|
30
30
|
- application/json
|
31
|
-
Content-Length:
|
32
|
-
- '0'
|
33
31
|
Server:
|
34
32
|
- Jetty(7.6.3.v20120416)
|
35
33
|
body:
|
36
34
|
encoding: UTF-8
|
37
35
|
string: ''
|
38
|
-
http_version:
|
39
|
-
recorded_at:
|
36
|
+
http_version:
|
37
|
+
recorded_at: Wed, 09 Jul 2014 15:34:44 GMT
|
40
38
|
recorded_with: VCR 2.5.0
|