ruby-jss 1.2.0 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ruby-jss might be problematic. Click here for more details.

@@ -1,82 +1,56 @@
1
- ### Copyright 2019 Pixar
2
-
3
- ###
4
- ### Licensed under the Apache License, Version 2.0 (the "Apache License")
5
- ### with the following modification; you may not use this file except in
6
- ### compliance with the Apache License and the following modification to it:
7
- ### Section 6. Trademarks. is deleted and replaced with:
8
- ###
9
- ### 6. Trademarks. This License does not grant permission to use the trade
10
- ### names, trademarks, service marks, or product names of the Licensor
11
- ### and its affiliates, except as required to comply with Section 4(c) of
12
- ### the License and to reproduce the content of the NOTICE file.
13
- ###
14
- ### You may obtain a copy of the Apache License at
15
- ###
16
- ### http://www.apache.org/licenses/LICENSE-2.0
17
- ###
18
- ### Unless required by applicable law or agreed to in writing, software
19
- ### distributed under the Apache License with the above modification is
20
- ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
- ### KIND, either express or implied. See the Apache License for the specific
22
- ### language governing permissions and limitations under the Apache License.
23
- ###
24
- ###
25
-
26
- ###
27
- module JSS
28
-
29
- #####################################
30
- ### Constants
31
- #####################################
1
+ # Copyright 2019 Pixar
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ # with the following modification; you may not use this file except in
5
+ # compliance with the Apache License and the following modification to it:
6
+ # Section 6. Trademarks. is deleted and replaced with:
7
+ #
8
+ # 6. Trademarks. This License does not grant permission to use the trade
9
+ # names, trademarks, service marks, or product names of the Licensor
10
+ # and its affiliates, except as required to comply with Section 4(c) of
11
+ # the License and to reproduce the content of the NOTICE file.
12
+ #
13
+ # You may obtain a copy of the Apache License at
14
+ #
15
+ # http://www.apache.org/licenses/LICENSE-2.0
16
+ #
17
+ # Unless required by applicable law or agreed to in writing, software
18
+ # distributed under the Apache License with the above modification is
19
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ # KIND, either express or implied. See the Apache License for the specific
21
+ # language governing permissions and limitations under the Apache License.
32
22
 
33
- #####################################
34
- ### Module Variables
35
- #####################################
23
+ module JSS
36
24
 
37
- #####################################
38
- ### Module Methods
25
+ # Classes
39
26
  #####################################
40
27
 
41
- ####################################
42
- ### Classes
43
- #####################################
44
28
 
45
- ###
46
- ### An extension attribute as defined in the JSS
47
- ###
48
- ### @see JSS::ExtensionAttribute
49
- ###
50
- ### @see JSS::APIObject
51
- ###
29
+ # An extension attribute as defined in the JSS
30
+ #
31
+ # @see JSS::ExtensionAttribute
32
+ #
33
+ # @see JSS::APIObject
34
+ #
52
35
  class MobileDeviceExtensionAttribute < JSS::ExtensionAttribute
53
36
 
54
- #####################################
55
- ### Mix-Ins
56
- #####################################
57
-
58
- #####################################
59
- ### Class Methods
60
- #####################################
61
-
62
- #####################################
63
- ### Class Constants
37
+ # Class Constants
64
38
  #####################################
65
39
 
66
- ### The base for REST resources of this class
40
+ # The base for REST resources of this class
67
41
  RSRC_BASE = 'mobiledeviceextensionattributes'.freeze
68
42
 
69
- ### the hash key used for the JSON list output of all objects in the JSS
43
+ # the hash key used for the JSON list output of all objects in the JSS
70
44
  RSRC_LIST_KEY = :mobile_device_extension_attributes
71
45
 
72
- ### The hash key used for the JSON object output.
73
- ### It's also used in various error messages
46
+ # The hash key used for the JSON object output.
47
+ # It's also used in various error messages
74
48
  RSRC_OBJECT_KEY = :mobile_device_extension_attribute
75
49
 
76
- ### these ext attribs are related to these kinds of objects
50
+ # these ext attribs are related to these kinds of objects
77
51
  TARGET_CLASS = JSS::MobileDevice
78
52
 
79
- ### A criterion that will return all members of the TARGET_CLASS
53
+ # A criterion that will return all members of the TARGET_CLASS
80
54
  ALL_TARGETS_CRITERION = JSS::Criteriable::Criterion.new(and_or: 'and', name: 'Last Inventory Update', search_type: 'after (yyyy-mm-dd)', value: '2003-01-01')
81
55
 
82
56
  # the object type for this object in
@@ -84,101 +58,44 @@ module JSS
84
58
  # See {APIObject#add_object_history_entry}
85
59
  OBJECT_HISTORY_OBJECT_TYPE = 86
86
60
 
87
- ######################
88
- ### Attributes
89
- ######################
90
-
91
- ### @return [String] the name of the LDAP attribute to use when the @input Type is "LDAP Attribute Mapping"
92
- attr_reader :attribute_mapping
93
-
94
- #####################################
95
- ### Constructor
96
- #####################################
97
-
98
- ###
99
- ### See JSS::APIObject.initialize
100
- ###
101
- def initialize(args = {})
102
- super args
103
- @attribute_mapping = @init_data[:input_type][:attribute_mapping] if @init_data[:input_type]
104
- end # init
105
-
106
- #####################################
107
- ### Public Instance Methods
61
+ # Public Instance Methods
108
62
  #####################################
109
63
 
110
- ###
111
- ### @see JSS::Creatable#create
112
- ###
113
- def create
114
- if @input_type == 'LDAP Attribute Mapping'
115
- raise MissingDataError, "No attribute_mapping defined for 'LDAP Attribute Mapping' input_type." unless @attribute_mapping
116
- end
117
- super
118
- end
64
+ # @see JSS::ExtensionAttribute#web_display=
65
+ #
66
+ def web_display=(new_val)
67
+ raise JSS::InvalidDataError, "Mobile Device Extension Attributes web_display cannot be '#{WEB_DISPLAY_CHOICE_OS}'" if new_val == WEB_DISPLAY_CHOICE_OS
119
68
 
120
- ###
121
- ### @see JSS::ExtensionAttribute#web_display=
122
- ###
123
- def web_display= (new_val)
124
- raise JSS::InvalidDataError, "web_display cannot be 'Operating System' for Mobile Device Extension Attributes." if new_val == 'Operating System'
125
69
  super
126
70
  end # end web_display
127
71
 
128
-
129
- ###
130
- ### @see JSS::ExtensionAttribute#input_type=
131
- ###
132
- def input_type= (new_val)
133
- raise JSS::InvalidDataError, "Mobile Device Extension Attribute input_type cannot be 'script'" if new_val == 'script'
72
+ # @see JSS::ExtensionAttribute#input_type=
73
+ #
74
+ def input_type=(new_val)
75
+ raise JSS::InvalidDataError, "Mobile Device Extension Attribute input_type cannot be '#{INPUT_TYPE_SCRIPT}'" if new_val == INPUT_TYPE_SCRIPT
134
76
 
135
77
  super
136
-
137
- if @input_type == 'LDAP Attribute Mapping'
138
- @popup_choices = nil
139
- else
140
- @attribute_mapping = nil
141
- end
142
78
  end # end input_type
143
79
 
144
- ###
145
- ### Set the ldap attribute to use for input_type 'LDAP Attribute Mapping'
146
- ###
147
- ### @param ldap_attrib[String] the attribute to use
148
- ###
149
- ### @return [void]
150
- ###
151
- def attribute_mapping= (ldap_attrib)
152
- return nil if ldap_attrib == @attribute_mapping
153
- @attribute_mapping = ldap_attrib
154
- @need_to_update = true
155
- end
156
-
157
- ### Return an Array of Hashes showing the history of reported values for this EA on one MobileDevice.
158
- ###
159
- ### Each hash contains these 2 keys:
160
- ### * :value - String, Integer, or Time, depending on @data_type
161
- ### * :timestamp - Time
162
- ###
163
- ### This method requires a MySQL database connection established via JSS::DB_CNX.connect
164
- ###
165
- ### @see JSS::DBConnection
166
- ###
167
- ### @param mobiledevice[Integer,String] the id or name of the MobileDevice.
168
- ###
169
- ### @return [Array<Hash{:timestamp=>Time,:value=>String,Integer,Time}>]
170
- ###
80
+ # Return an Array of Hashes showing the history of reported values for this EA on one MobileDevice.
81
+ #
82
+ # Each hash contains these 2 keys:
83
+ # * :value - String, Integer, or Time, depending on @data_type
84
+ # * :timestamp - Time
85
+ #
86
+ # This method requires a MySQL database connection established via JSS::DB_CNX.connect
87
+ #
88
+ # @see JSS::DBConnection
89
+ #
90
+ # @param mobiledevice[Integer,String] the id or name of the MobileDevice.
91
+ #
92
+ # @return [Array<Hash{:timestamp=>Time,:value=>String,Integer,Time}>]
93
+ #
171
94
  def history(mobiledevice)
172
95
  raise JSS::NoSuchItemError, "EA Not In JSS! Use #create to create this #{RSRC_OBJECT_KEY}." unless @in_jss
173
96
  raise JSS::InvalidConnectionError, "Database connection required for 'history' query." unless JSS::DB_CNX.connected?
174
97
 
175
- mobile_device_id = case mobiledevice
176
- when *JSS::MobileDevice.all_ids(api: @api)
177
- mobiledevice
178
- when *JSS::MobileDevice.all_names(api: @api)
179
- JSS::MobileDevice.map_all_ids_to(:name, api: @api).invert[mobiledevice]
180
- end # case
181
-
98
+ mobile_device_id = JSS::MobileDevice.valid_id mobiledevice, api: @api
182
99
  raise JSS::NoSuchItemError, "No MobileDevice found matching '#{mobiledevice}'" unless mobile_device_id
183
100
 
184
101
  the_query = <<-END_Q
@@ -192,11 +109,12 @@ module JSS
192
109
  qrez = JSS::DB_CNX.db.query the_query
193
110
  history = []
194
111
  qrez.each_hash do |entry|
195
- value = case @data_type
196
- when 'String' then entry['value']
197
- when 'Integer' then entry['value'].to_i
198
- when 'Date' then JSS.parse_datetime(entry['value'])
199
- end # case
112
+ value =
113
+ case @data_type
114
+ when 'String' then entry['value']
115
+ when 'Integer' then entry['value'].to_i
116
+ when 'Date' then JSS.parse_datetime(entry['value'])
117
+ end # case
200
118
  newhash = { value: value, timestamp: JSS.epoch_to_time(entry['timestamp_epoch']) }
201
119
  history << newhash
202
120
  end # each hash
@@ -204,29 +122,6 @@ module JSS
204
122
  history
205
123
  end # history
206
124
 
207
- ######################
208
- ### Private Instance Methods
209
- #####################
210
-
211
- private
212
-
213
- ###
214
- ### Return the REST XML for this item, with the current values,
215
- ### for saving or updating
216
- ###
217
- def rest_xml
218
- mdea = rest_rexml
219
- if @input_type == 'LDAP Attribute Mapping'
220
- it = mdea.elements["input_type"]
221
- it.add_element('attribute_mapping').text = @attribute_mapping
222
- end
223
-
224
- doc = REXML::Document.new APIConnection::XML_HEADER
225
- doc << mdea
226
-
227
- doc.to_s
228
- end # rest xml
229
-
230
125
  end # class ExtAttrib
231
126
 
232
127
  end # module
@@ -1,120 +1,79 @@
1
- ### Copyright 2019 Pixar
2
-
3
- ###
4
- ### Licensed under the Apache License, Version 2.0 (the "Apache License")
5
- ### with the following modification; you may not use this file except in
6
- ### compliance with the Apache License and the following modification to it:
7
- ### Section 6. Trademarks. is deleted and replaced with:
8
- ###
9
- ### 6. Trademarks. This License does not grant permission to use the trade
10
- ### names, trademarks, service marks, or product names of the Licensor
11
- ### and its affiliates, except as required to comply with Section 4(c) of
12
- ### the License and to reproduce the content of the NOTICE file.
13
- ###
14
- ### You may obtain a copy of the Apache License at
15
- ###
16
- ### http://www.apache.org/licenses/LICENSE-2.0
17
- ###
18
- ### Unless required by applicable law or agreed to in writing, software
19
- ### distributed under the Apache License with the above modification is
20
- ### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
- ### KIND, either express or implied. See the Apache License for the specific
22
- ### language governing permissions and limitations under the Apache License.
23
- ###
24
- ###
25
-
26
- ###
27
- module JSS
28
-
1
+ # Copyright 2019 Pixar
2
+
3
+ # Licensed under the Apache License, Version 2.0 (the "Apache License")
4
+ # with the following modification; you may not use this file except in
5
+ # compliance with the Apache License and the following modification to it:
6
+ # Section 6. Trademarks. is deleted and replaced with:
7
+ #
8
+ # 6. Trademarks. This License does not grant permission to use the trade
9
+ # names, trademarks, service marks, or product names of the Licensor
10
+ # and its affiliates, except as required to comply with Section 4(c) of
11
+ # the License and to reproduce the content of the NOTICE file.
12
+ #
13
+ # You may obtain a copy of the Apache License at
14
+ #
15
+ # http://www.apache.org/licenses/LICENSE-2.0
16
+ #
17
+ # Unless required by applicable law or agreed to in writing, software
18
+ # distributed under the Apache License with the above modification is
19
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
20
+ # KIND, either express or implied. See the Apache License for the specific
21
+ # language governing permissions and limitations under the Apache License.
29
22
 
23
+ module JSS
30
24
 
25
+ # Classes
31
26
  #####################################
32
- ### Constants
33
- #####################################
34
-
35
- #####################################
36
- ### Module Variables
37
- #####################################
38
-
39
- #####################################
40
- ### Module Methods
41
- #####################################
42
-
43
- ####################################
44
- ### Classes
45
- #####################################
46
-
47
27
 
48
- ###
49
- ### A User extension attribute as defined in the JSS
50
- ###
51
- ### @see JSS::ExtensionAttribute
52
- ### @see JSS::APIObject
53
- ###
28
+ # A User extension attribute as defined in the JSS
29
+ #
30
+ # @see JSS::ExtensionAttribute
31
+ # @see JSS::APIObject
32
+ #
54
33
  class UserExtensionAttribute < JSS::ExtensionAttribute
55
34
 
56
- #####################################
57
- ### Mix-Ins
58
- #####################################
59
-
60
- #####################################
61
- ### Class Methods
62
- #####################################
63
-
64
- #####################################
65
- ### Class Constants
35
+ # Class Constants
66
36
  #####################################
67
37
 
68
- ### The base for REST resources of this class
69
- RSRC_BASE = "userextensionattributes"
38
+ # The base for REST resources of this class
39
+ RSRC_BASE = 'userextensionattributes'.freeze
70
40
 
71
- ### the hash key used for the JSON list output of all objects in the JSS
41
+ # the hash key used for the JSON list output of all objects in the JSS
72
42
  RSRC_LIST_KEY = :user_extension_attributes
73
43
 
74
- ### The hash key used for the JSON object output.
75
- ### It's also used in various error messages
44
+ # The hash key used for the JSON object output.
45
+ # It's also used in various error messages
76
46
  RSRC_OBJECT_KEY = :user_extension_attribute
77
47
 
78
- ### these ext attribs are related to these kinds of objects
48
+ # these ext attribs are related to these kinds of objects
79
49
  TARGET_CLASS = JSS::User
80
50
 
81
- ### A criterion that will return all members of the TARGET_CLASS
82
- ALL_TARGETS_CRITERION = JSS::Criteriable::Criterion.new(:and_or => "and", :name => "Username", :search_type => "like", :value => '')
51
+ # A criterion that will return all members of the TARGET_CLASS
52
+ ALL_TARGETS_CRITERION = JSS::Criteriable::Criterion.new(and_or: 'and', name: 'Username', search_type: 'like', value: '')
83
53
 
84
54
  # the object type for this object in
85
55
  # the object history table.
86
56
  # See {APIObject#add_object_history_entry}
87
57
  OBJECT_HISTORY_OBJECT_TYPE = 87
88
58
 
89
- ######################
90
- ### Attributes
91
- ######################
92
-
93
- #####################################
94
- ### Constructor
59
+ # Public Instance Methods
95
60
  #####################################
96
61
 
97
- #####################################
98
- ### Public Instance Methods
99
- #####################################
62
+ # @see JSS::ExtensionAttribute#input_type=
63
+ #
64
+ def input_type=(new_val)
65
+ raise JSS::InvalidDataError, "User Extension Attribute input_type cannot be '#{INPUT_TYPE_SCRIPT}'" if new_val == INPUT_TYPE_SCRIPT
66
+ raise JSS::InvalidDataError, "User Extension Attribute input_type cannot be '#{INPUT_TYPE_LDAP}'" if new_val == INPUT_TYPE_LDAP
100
67
 
101
- ######################
102
- ### Private Instance Methods
103
- #####################
104
- private
105
-
106
- ###
107
- ### Return the REST XML for this item, with the current values,
108
- ### for saving or updating
109
- ###
110
- def rest_xml
111
- uea = rest_rexml
112
- doc = REXML::Document.new APIConnection::XML_HEADER
113
- doc << uea
114
- return doc.to_s
115
- end # rest xml
68
+ super
69
+ end # end input_type
116
70
 
117
- end # class ExtAttrib
71
+ # @see JSS::ExtensionAttribute#web_display=
72
+ #
73
+ def web_display=(_new_val)
74
+ raise JSS::UnsupportedError, 'User Extension Attributes web_display cannot be set'
75
+ end
118
76
 
77
+ end # class ExtAttrib
119
78
 
120
79
  end # module