google_directory 0.2.4 → 1.1.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,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5070bbd5107bafb81ceff5210423594e3a9da84b733395060f76128ce9c4c5f1
|
|
4
|
+
data.tar.gz: e5e5200f5d09fe988048f9c1ce0ba97e5206a2d3d03fc41dcec125f4ecc999e7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 69573841d026c9edb615e7fe7a8fbebc486df2ed3b46e9ed0d05188651d4afc452dd2c0f87e92f7bedfbd31dce1732f2e3e9b3848af3db6b376263e417ede652
|
|
7
|
+
data.tar.gz: 558df129d6cefee0d825167261eabc8deb037b475619f5aa6dd110448f9ac7018cb704f373bdb9fe2c05005f0c00e5115e1c2ff3c8550502c5a744468f230dd6
|
|
@@ -36,9 +36,9 @@ module GoogleDirectory
|
|
|
36
36
|
|
|
37
37
|
# @note make connection to google directory services
|
|
38
38
|
# @param service [Class] the default is: Google::Apis::AdminDirectoryV1::DirectoryService
|
|
39
|
-
def initialize( service: Google::Apis::AdminDirectoryV1::DirectoryService )
|
|
39
|
+
def initialize( service: Google::Apis::AdminDirectoryV1::DirectoryService, authorization: nil )
|
|
40
40
|
@service = service.new
|
|
41
|
-
@service.authorization = authorize
|
|
41
|
+
@service.authorization = authorization || authorize
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def version
|
|
@@ -74,6 +74,10 @@ module GoogleDirectory
|
|
|
74
74
|
attr_reader :service
|
|
75
75
|
|
|
76
76
|
def authorize
|
|
77
|
+
if !CREDENTIALS_PATH or !SUB_ACCOUNT
|
|
78
|
+
raise "Please set the environment variables CREDENTIALS_JSON_PATH and SUB_ACCOUNT_NAME to connect to Google Directory API"
|
|
79
|
+
end
|
|
80
|
+
|
|
77
81
|
scope = ['https://www.googleapis.com/auth/admin.directory.user', 'https://www.googleapis.com/auth/admin.directory.user.security']
|
|
78
82
|
authorizer = Google::Auth::ServiceAccountCredentials.make_creds(
|
|
79
83
|
json_key_io: File.open(CREDENTIALS_PATH),
|
|
@@ -43,7 +43,15 @@ module GoogleDirectory
|
|
|
43
43
|
defaults = { suspended: true, password: password, change_password_at_next_login: true }
|
|
44
44
|
user_attr = defaults.merge( attributes )
|
|
45
45
|
# create a google user object
|
|
46
|
-
|
|
46
|
+
# Ruby 3: pass keyword args instead of positional Hash
|
|
47
|
+
# Also coerce nested :name Hash into a UserName object if provided
|
|
48
|
+
if user_attr[:name].is_a?(Hash)
|
|
49
|
+
name_hash = user_attr[:name]
|
|
50
|
+
user_attr = user_attr.merge(
|
|
51
|
+
name: Google::Apis::AdminDirectoryV1::UserName.new(**name_hash.transform_keys(&:to_sym))
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
user_object = Google::Apis::AdminDirectoryV1::User.new(**user_attr)
|
|
47
55
|
# create user in directory services
|
|
48
56
|
response = service.insert_user( user_object )
|
|
49
57
|
{response: response, attributes: attributes[:primary_email], command: :user_create}
|
|
@@ -108,7 +116,15 @@ module GoogleDirectory
|
|
|
108
116
|
private
|
|
109
117
|
def update_user( user_attr )
|
|
110
118
|
# create a user object that google will create
|
|
111
|
-
|
|
119
|
+
# Ruby 3: pass keyword args instead of positional Hash
|
|
120
|
+
# Also coerce nested :name Hash into a UserName object if provided
|
|
121
|
+
if user_attr[:name].is_a?(Hash)
|
|
122
|
+
name_hash = user_attr[:name]
|
|
123
|
+
user_attr = user_attr.merge(
|
|
124
|
+
name: Google::Apis::AdminDirectoryV1::UserName.new(**name_hash.transform_keys(&:to_sym))
|
|
125
|
+
)
|
|
126
|
+
end
|
|
127
|
+
user_object = Google::Apis::AdminDirectoryV1::User.new(**user_attr)
|
|
112
128
|
# send user object to google directory
|
|
113
129
|
service.update_user( user_attr[:primary_email], user_object )
|
|
114
130
|
end
|
|
@@ -16,7 +16,8 @@ module GoogleDirectory
|
|
|
16
16
|
def users_list( attributes: {} )
|
|
17
17
|
defaults = { max_results: 10, order_by: 'email' }
|
|
18
18
|
filters = defaults.merge( attributes )
|
|
19
|
-
|
|
19
|
+
# Ruby 3: DirectoryService#list_users accepts only keyword args
|
|
20
|
+
response = service.list_users(**filters)
|
|
20
21
|
{response: response, attributes: filters, command: :users_list}
|
|
21
22
|
end
|
|
22
23
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: google_directory
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Bill Tihen
|
|
@@ -9,22 +9,22 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2026-04-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
|
-
name: google-
|
|
15
|
+
name: google-apis-admin_directory_v1
|
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
|
-
- - "
|
|
18
|
+
- - ">="
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '0
|
|
20
|
+
version: '0'
|
|
21
21
|
type: :runtime
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
|
-
- - "
|
|
25
|
+
- - ">="
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '0
|
|
27
|
+
version: '0'
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: bundler
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -106,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
106
106
|
requirements:
|
|
107
107
|
- - ">="
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '
|
|
109
|
+
version: '2.7'
|
|
110
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
111
|
requirements:
|
|
112
112
|
- - ">="
|