Class: Zm::Client::Base::MailboxObject
Overview
Abstract Class for Account and Resource
Instance Attribute Summary collapse
Attributes inherited from Object
#id, #name, #parent, #token
Instance Method Summary
collapse
#soap_admin_connector
Methods inherited from Object
#clone, #initialize, #inspect, #instance_variables_map, #logger, #recorded?, #save!, #to_h, #to_s, #update_attribute
Instance Attribute Details
#carLicense ⇒ Object
Returns the value of attribute carLicense.
28
29
30
|
# File 'lib/zm/client/base/mailbox_object.rb', line 28
def carLicense
@carLicense
end
|
#domain_key ⇒ Object
85
86
87
88
89
|
# File 'lib/zm/client/base/mailbox_object.rb', line 85
def domain_key
return @domain_key if defined?(@domain_key)
@parent.domain_key(domain_name)
end
|
Returns the value of attribute home_url.
28
29
30
|
# File 'lib/zm/client/base/mailbox_object.rb', line 28
def home_url
@home_url
end
|
Returns the value of attribute password.
28
29
30
|
# File 'lib/zm/client/base/mailbox_object.rb', line 28
def password
@password
end
|
#public_url ⇒ Object
Returns the value of attribute public_url.
28
29
30
|
# File 'lib/zm/client/base/mailbox_object.rb', line 28
def public_url
@public_url
end
|
54
55
56
|
# File 'lib/zm/client/base/mailbox_object.rb', line 54
def used
@used || used!
end
|
Instance Method Details
#account_content_by ⇒ Object
127
128
129
|
# File 'lib/zm/client/base/mailbox_object.rb', line 127
def account_content_by
@id ? [@id, :id] : [@name, :name]
end
|
#account_login ⇒ Object
99
100
101
102
103
104
105
106
107
|
# File 'lib/zm/client/base/mailbox_object.rb', line 99
def account_login
sacc.token = nil
if password
account_login_password
else
account_login_preauth
end
end
|
#account_login_password ⇒ Object
118
119
120
121
122
123
124
125
|
# File 'lib/zm/client/base/mailbox_object.rb', line 118
def account_login_password
raise ZmError, 'password is required to login !' if password.nil?
content, by = account_content_by
@token = sacc.auth_password(content, by, @password)
sacc.context.token(@token)
end
|
#account_login_preauth(expires = 0) ⇒ Object
109
110
111
112
113
114
115
116
|
# File 'lib/zm/client/base/mailbox_object.rb', line 109
def account_login_preauth(expires = 0)
raise ZmError, 'domain key is required to login !' if domain_key.nil?
content, by = account_content_by
@token = sacc.auth_preauth(content, by, expires, domain_key)
sacc.context.token(@token)
end
|
#aces ⇒ Object
Also known as:
rights
196
197
198
|
# File 'lib/zm/client/base/mailbox_object.rb', line 196
def aces
@aces ||= AcesCollection.new(self)
end
|
#admin_login ⇒ Object
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# File 'lib/zm/client/base/mailbox_object.rb', line 131
def admin_login
soap_request = SoapElement.admin(SoapAdminConstants::DELEGATE_AUTH_REQUEST)
node_account = SoapElement.create(SoapConstants::ACCOUNT)
if recorded?
node_account.add_attribute(SoapConstants::BY, SoapConstants::ID).add_content(@id)
else
node_account.add_attribute(SoapConstants::BY, SoapConstants::NAME).add_content(@name)
end
soap_request.add_node(node_account)
@token = sac.invoke(soap_request)[:DelegateAuthResponse][:authToken].first[:_content]
sacc.context.token(@token)
end
|
#appointments ⇒ Object
184
185
186
|
# File 'lib/zm/client/base/mailbox_object.rb', line 184
def appointments
@appointments ||= AppointmentsCollection.new(self)
end
|
180
181
182
|
# File 'lib/zm/client/base/mailbox_object.rb', line 180
def contacts
@contacts ||= ContactsCollection.new(self)
end
|
#data_sources ⇒ Object
225
226
227
|
# File 'lib/zm/client/base/mailbox_object.rb', line 225
def data_sources
@data_sources ||= DataSourcesCollection.new(self)
end
|
#dls_owner ⇒ Object
213
214
215
|
# File 'lib/zm/client/base/mailbox_object.rb', line 213
def dls_owner
@dls_owner ||= AccountDlsOwnerCollection.new(self)
end
|
#documents ⇒ Object
205
206
207
|
# File 'lib/zm/client/base/mailbox_object.rb', line 205
def documents
@documents ||= DocumentsCollection.new(self)
end
|
#domain_name ⇒ Object
42
43
44
|
# File 'lib/zm/client/base/mailbox_object.rb', line 42
def domain_name
@domain_name ||= @name.split('@').last
end
|
#filter_rules ⇒ Object
217
218
219
|
# File 'lib/zm/client/base/mailbox_object.rb', line 217
def filter_rules
@filter_rules ||= FilterRulesCollection.new(self)
end
|
160
161
162
|
# File 'lib/zm/client/base/mailbox_object.rb', line 160
def folders
@folders ||= FoldersCollection.new(self)
end
|
#identities ⇒ Object
172
173
174
|
# File 'lib/zm/client/base/mailbox_object.rb', line 172
def identities
@identities ||= IdentitiesCollection.new(self)
end
|
46
47
48
|
# File 'lib/zm/client/base/mailbox_object.rb', line 46
def infos
@infos ||= MailboxInfosCollection.new(self)
end
|
#is_external_transport? ⇒ Boolean
280
281
282
283
284
|
# File 'lib/zm/client/base/mailbox_object.rb', line 280
def is_external_transport?
return nil unless zimbraMailTransport
zimbraMailTransport.start_with?(SoapConstants::SMTP)
end
|
#is_local_transport? ⇒ Boolean
274
275
276
277
278
|
# File 'lib/zm/client/base/mailbox_object.rb', line 274
def is_local_transport?
return nil unless zimbraMailTransport
zimbraMailTransport.start_with?(SoapConstants::LMTP)
end
|
#last_logon ⇒ Object
286
287
288
|
# File 'lib/zm/client/base/mailbox_object.rb', line 286
def last_logon
@last_logon ||= Time.parse(zimbraLastLogonTimestamp) unless zimbraLastLogonTimestamp.nil?
end
|
#local_transport ⇒ Object
264
265
266
267
268
|
# File 'lib/zm/client/base/mailbox_object.rb', line 264
def local_transport
raise Zm::Client::ZmError, 'zimbraMailHost is null' if zimbraMailHost.nil?
"lmtp:#{zimbraMailHost}:7025"
end
|
#local_transport! ⇒ Object
270
271
272
|
# File 'lib/zm/client/base/mailbox_object.rb', line 270
def local_transport!
update!(zimbraMailTransport: local_transport)
end
|
#logged? ⇒ Boolean
################################################################# Authentication #################################################################
81
82
83
|
# File 'lib/zm/client/base/mailbox_object.rb', line 81
def logged?
!@token.nil?
end
|
91
92
93
94
95
96
97
|
# File 'lib/zm/client/base/mailbox_object.rb', line 91
def login
if parent_logged?
admin_login
else
account_login
end
end
|
#mailbox_infos ⇒ Object
70
71
72
73
74
75
|
# File 'lib/zm/client/base/mailbox_object.rb', line 70
def mailbox_infos
soap_request = SoapElement.admin(SoapAdminConstants::GET_MAILBOX_REQUEST)
node_mbox = SoapElement.create(SoapConstants::MBOX).add_attribute(SoapConstants::ID, @id)
soap_request.add_node(node_mbox)
sac.invoke(soap_request)[:GetMailboxResponse][:mbox].first
end
|
62
63
64
|
# File 'lib/zm/client/base/mailbox_object.rb', line 62
def mbxid
@mbxid || mbxid!
end
|
66
67
68
|
# File 'lib/zm/client/base/mailbox_object.rb', line 66
def mbxid!
@mbxid = mailbox_infos[:mbxid]
end
|
#memberships ⇒ Object
209
210
211
|
# File 'lib/zm/client/base/mailbox_object.rb', line 209
def memberships
@memberships ||= AccountDlsMembershipCollection.new(self)
end
|
156
157
158
|
# File 'lib/zm/client/base/mailbox_object.rb', line 156
def messages
@messages ||= MessagesCollection.new(self)
end
|
#mountpoints ⇒ Object
164
165
166
|
# File 'lib/zm/client/base/mailbox_object.rb', line 164
def mountpoints
@mountpoints ||= MountPointsCollection.new(self)
end
|
#outgoing_filter_rules ⇒ Object
221
222
223
|
# File 'lib/zm/client/base/mailbox_object.rb', line 221
def outgoing_filter_rules
@outgoing_filter_rules ||= OutgoingFilterRulesCollection.new(self)
end
|
#password!(new_password = nil) ⇒ Object
################################################################# SOAP Actions #################################################################
233
234
235
236
237
238
239
240
241
242
|
# File 'lib/zm/client/base/mailbox_object.rb', line 233
def password!(new_password = nil)
new_password ||= @password
return false if new_password.nil?
soap_request = SoapElement.admin(SoapAdminConstants::SET_PASSWORD_REQUEST)
soap_request.add_attributes({ id: @id, newPassword: new_password })
sac.invoke(soap_request)
@password = new_password
end
|
50
51
52
|
# File 'lib/zm/client/base/mailbox_object.rb', line 50
def prefs
@prefs ||= MailboxPrefsCollection.new(self)
end
|
#rename!(email) ⇒ Object
244
245
246
247
248
249
250
|
# File 'lib/zm/client/base/mailbox_object.rb', line 244
def rename!(email)
soap_request = SoapElement.admin(SoapAdminConstants::RENAME_ACCOUNT_REQUEST)
soap_request.add_attributes({ id: @id, newName: email })
sac.invoke(soap_request)
@name = email
end
|
#rest_account_connector ⇒ Object
Also known as:
rac
36
37
38
|
# File 'lib/zm/client/base/mailbox_object.rb', line 36
def rest_account_connector
@rest_account_connector ||= RestAccountConnector.new
end
|
#search_folders ⇒ Object
168
169
170
|
# File 'lib/zm/client/base/mailbox_object.rb', line 168
def search_folders
@search_folders ||= SearchFoldersCollection.new(self)
end
|
176
177
178
|
# File 'lib/zm/client/base/mailbox_object.rb', line 176
def shares
@shares ||= SharesCollection.new(self)
end
|
#signatures ⇒ Object
201
202
203
|
# File 'lib/zm/client/base/mailbox_object.rb', line 201
def signatures
@signatures ||= SignaturesCollection.new(self)
end
|
#soap_account_connector ⇒ Object
Also known as:
sacc
31
32
33
|
# File 'lib/zm/client/base/mailbox_object.rb', line 31
def soap_account_connector
@soap_account_connector ||= SoapAccountConnector.create(soap_config)
end
|
188
189
190
|
# File 'lib/zm/client/base/mailbox_object.rb', line 188
def tags
@tags ||= TagsCollection.new(self)
end
|
192
193
194
|
# File 'lib/zm/client/base/mailbox_object.rb', line 192
def tasks
@tasks ||= TasksCollection.new(self)
end
|
################################################################# Associations #################################################################
152
153
154
|
# File 'lib/zm/client/base/mailbox_object.rb', line 152
def token_metadata
@token_metadata ||= TokenMetaData.new(@token)
end
|
#update!(hash) ⇒ Object
252
253
254
255
256
257
258
259
260
261
262
|
# File 'lib/zm/client/base/mailbox_object.rb', line 252
def update!(hash)
return false if hash.delete_if { |k, v| v.nil? || !respond_to?(k) }.empty?
do_update!(hash)
hash.each do |key, value|
update_attribute(key, value)
end
true
end
|
#################################################################
292
293
294
|
# File 'lib/zm/client/base/mailbox_object.rb', line 292
def uploader
@uploader ||= Upload.new(self)
end
|
58
59
60
|
# File 'lib/zm/client/base/mailbox_object.rb', line 58
def used!
@used = mailbox_infos[:s]
end
|