zm-ruby-client 0.18.5 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (250) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/Gemfile +2 -2
  4. data/README.md +7 -0
  5. data/lib/zm/client/account/account.rb +31 -308
  6. data/lib/zm/client/account/account_aliases_collection.rb +52 -0
  7. data/lib/zm/client/account/account_dls_membership_collection.rb +4 -1
  8. data/lib/zm/client/account/account_dls_owner_collection.rb +8 -1
  9. data/lib/zm/client/account/account_jsns_builder.rb +77 -0
  10. data/lib/zm/client/account/account_jsns_initializer.rb +9 -24
  11. data/lib/zm/client/account/accounts_builder.rb +0 -1
  12. data/lib/zm/client/account/accounts_collection.rb +32 -8
  13. data/lib/zm/client/account.rb +1 -0
  14. data/lib/zm/client/ace/ace.rb +6 -22
  15. data/lib/zm/client/ace/ace_jsns_builder.rb +15 -16
  16. data/lib/zm/client/ace/ace_jsns_initializer.rb +0 -1
  17. data/lib/zm/client/ace/aces_builder.rb +0 -1
  18. data/lib/zm/client/ace/aces_collection.rb +2 -18
  19. data/lib/zm/client/appointment/appointment.rb +38 -30
  20. data/lib/zm/client/appointment/appointment_jsns_builder.rb +22 -34
  21. data/lib/zm/client/appointment/appointment_jsns_initializer.rb +6 -3
  22. data/lib/zm/client/appointment/appointments_builder.rb +6 -18
  23. data/lib/zm/client/appointment/appointments_collection.rb +25 -4
  24. data/lib/zm/client/backup/backup.rb +4 -32
  25. data/lib/zm/client/backup/backup_jsns_initializer.rb +26 -0
  26. data/lib/zm/client/backup/backups_builder.rb +8 -13
  27. data/lib/zm/client/backup/backups_collection.rb +2 -1
  28. data/lib/zm/client/backup.rb +1 -0
  29. data/lib/zm/client/base/account_search_objects_collection.rb +34 -13
  30. data/lib/zm/client/base/admin_objects_collection.rb +82 -17
  31. data/lib/zm/client/base/base_account_jsns_builder.rb +98 -0
  32. data/lib/zm/client/base/base_jsns_builder.rb +47 -0
  33. data/lib/zm/client/base/base_jsns_initializer.rb +43 -12
  34. data/lib/zm/client/base/ldap_filter.rb +20 -5
  35. data/lib/zm/client/base/mailbox_infos_collection.rb +68 -0
  36. data/lib/zm/client/base/mailbox_object.rb +299 -0
  37. data/lib/zm/client/base/mailbox_prefs_collection.rb +75 -0
  38. data/lib/zm/client/base/object.rb +28 -62
  39. data/lib/zm/client/base/objects_builder.rb +4 -10
  40. data/lib/zm/client/base/objects_collection.rb +13 -10
  41. data/lib/zm/client/base/zimbra_attribute.rb +10 -8
  42. data/lib/zm/client/base/zimbra_attributes_collection.rb +154 -10
  43. data/lib/zm/client/base.rb +5 -5
  44. data/lib/zm/client/cluster/cluster.rb +43 -39
  45. data/lib/zm/client/cluster/cluster_config.rb +5 -5
  46. data/lib/zm/client/common/recipients.rb +3 -3
  47. data/lib/zm/client/common/token_metadata.rb +4 -1
  48. data/lib/zm/client/common/utils.rb +57 -0
  49. data/lib/zm/client/common.rb +2 -1
  50. data/lib/zm/client/connector/rest_account.rb +15 -28
  51. data/lib/zm/client/connector/soap_account.rb +38 -441
  52. data/lib/zm/client/connector/soap_admin.rb +16 -552
  53. data/lib/zm/client/connector/soap_base.rb +30 -21
  54. data/lib/zm/client/connector/soap_error.rb +1 -3
  55. data/lib/zm/client/constant.rb +21 -11
  56. data/lib/zm/client/contact/contact.rb +42 -83
  57. data/lib/zm/client/contact/contact_jsns_builder.rb +60 -0
  58. data/lib/zm/client/contact/contact_jsns_initializer.rb +78 -0
  59. data/lib/zm/client/contact/contact_member.rb +29 -28
  60. data/lib/zm/client/contact/contact_members_collection.rb +44 -0
  61. data/lib/zm/client/contact/contacts_builder.rb +8 -1
  62. data/lib/zm/client/contact/contacts_collection.rb +17 -1
  63. data/lib/zm/client/contact/group_contact_jsns_builder.rb +51 -0
  64. data/lib/zm/client/contact/mod_group_contact.rb +4 -67
  65. data/lib/zm/client/contact.rb +5 -1
  66. data/lib/zm/client/cos/cos.rb +35 -40
  67. data/lib/zm/client/cos/cos_accounts_collection.rb +19 -0
  68. data/lib/zm/client/cos/cos_domains_collection.rb +20 -0
  69. data/lib/zm/client/cos/cos_jsns_builder.rb +72 -0
  70. data/lib/zm/client/cos/cos_jsns_initializer.rb +29 -0
  71. data/lib/zm/client/cos/cos_servers_collection.rb +60 -0
  72. data/lib/zm/client/cos/coses_builder.rb +8 -1
  73. data/lib/zm/client/cos/coses_collection.rb +8 -5
  74. data/lib/zm/client/cos.rb +5 -0
  75. data/lib/zm/client/datasource/datasource.rb +69 -0
  76. data/lib/zm/client/datasource/datasource_jsns_builder.rb +32 -0
  77. data/lib/zm/client/datasource/datasource_jsns_initializer.rb +27 -0
  78. data/lib/zm/client/datasource/datasources_builder.rb +29 -0
  79. data/lib/zm/client/datasource/datasources_collection.rb +21 -0
  80. data/lib/zm/client/datasource.rb +7 -0
  81. data/lib/zm/client/distributionlist/distributionlist.rb +52 -118
  82. data/lib/zm/client/distributionlist/distributionlist_aces_collection.rb +31 -0
  83. data/lib/zm/client/distributionlist/distributionlist_aliases_collection.rb +53 -0
  84. data/lib/zm/client/distributionlist/distributionlist_jsns_builder.rb +82 -0
  85. data/lib/zm/client/distributionlist/distributionlist_jsns_initializer.rb +32 -0
  86. data/lib/zm/client/distributionlist/distributionlist_members_collection.rb +47 -0
  87. data/lib/zm/client/distributionlist/distributionlist_owners_collection.rb +52 -0
  88. data/lib/zm/client/distributionlist/distributionlists_builder.rb +8 -1
  89. data/lib/zm/client/distributionlist/distributionlists_collection.rb +8 -9
  90. data/lib/zm/client/distributionlist/dls_membership_collection.rb +4 -1
  91. data/lib/zm/client/distributionlist.rb +2 -0
  92. data/lib/zm/client/document/document.rb +27 -24
  93. data/lib/zm/client/document/document_jsns_builder.rb +18 -0
  94. data/lib/zm/client/document/document_jsns_initializer.rb +44 -0
  95. data/lib/zm/client/document/documents_builder.rb +6 -16
  96. data/lib/zm/client/document/documents_collection.rb +17 -67
  97. data/lib/zm/client/document.rb +2 -0
  98. data/lib/zm/client/domain/domain.rb +39 -55
  99. data/lib/zm/client/domain/domain_accounts_collection.rb +1 -1
  100. data/lib/zm/client/domain/domain_distributionlists_collection.rb +13 -0
  101. data/lib/zm/client/domain/domain_jsns_builder.rb +69 -0
  102. data/lib/zm/client/domain/domain_jsns_initializer.rb +25 -0
  103. data/lib/zm/client/domain/domain_resources_collection.rb +13 -0
  104. data/lib/zm/client/domain/domains_builder.rb +8 -1
  105. data/lib/zm/client/domain/domains_collection.rb +7 -7
  106. data/lib/zm/client/domain.rb +4 -0
  107. data/lib/zm/client/filter_rule.rb +7 -0
  108. data/lib/zm/client/filter_rules/filter_rule.rb +10 -0
  109. data/lib/zm/client/filter_rules/filter_rule_jsns_initializer.rb +24 -0
  110. data/lib/zm/client/filter_rules/filter_rules_builder.rb +21 -0
  111. data/lib/zm/client/filter_rules/filter_rules_collection.rb +21 -0
  112. data/lib/zm/client/filter_rules/outgoing_filter_rules_collection.rb +15 -0
  113. data/lib/zm/client/folder/folder.rb +77 -61
  114. data/lib/zm/client/folder/folder_grant.rb +34 -14
  115. data/lib/zm/client/folder/folder_grant_jsns_builder.rb +15 -4
  116. data/lib/zm/client/folder/folder_grants_collection.rb +36 -2
  117. data/lib/zm/client/folder/folder_jsns_builder.rb +22 -48
  118. data/lib/zm/client/folder/folder_jsns_initializer.rb +34 -17
  119. data/lib/zm/client/folder/folder_retention_policies_collection.rb +2 -3
  120. data/lib/zm/client/folder/folder_retention_policy.rb +0 -1
  121. data/lib/zm/client/folder/folders_builder.rb +7 -10
  122. data/lib/zm/client/folder/folders_collection.rb +5 -2
  123. data/lib/zm/client/folder/folders_jsns_builder.rb +3 -1
  124. data/lib/zm/client/folder/mod_document_folder.rb +10 -6
  125. data/lib/zm/client/folder.rb +1 -1
  126. data/lib/zm/client/identity/identities_builder.rb +8 -1
  127. data/lib/zm/client/identity/identities_collection.rb +2 -1
  128. data/lib/zm/client/identity/identity.rb +34 -42
  129. data/lib/zm/client/identity/identity_jsns_builder.rb +57 -0
  130. data/lib/zm/client/identity/identity_jsns_initializer.rb +29 -0
  131. data/lib/zm/client/identity.rb +3 -1
  132. data/lib/zm/client/license/license.rb +9 -22
  133. data/lib/zm/client/license/license_jsns_initializer.rb +20 -0
  134. data/lib/zm/client/license/licenses_collection.rb +3 -13
  135. data/lib/zm/client/license.rb +2 -1
  136. data/lib/zm/client/message/attachments_collection.rb +55 -0
  137. data/lib/zm/client/message/message.rb +36 -264
  138. data/lib/zm/client/message/message_flags.rb +107 -0
  139. data/lib/zm/client/message/message_jsns_builder.rb +85 -0
  140. data/lib/zm/client/message/message_jsns_initializer.rb +71 -0
  141. data/lib/zm/client/message/message_recipients.rb +59 -0
  142. data/lib/zm/client/message/messages_builder.rb +7 -18
  143. data/lib/zm/client/message/messages_collection.rb +17 -2
  144. data/lib/zm/client/message.rb +5 -0
  145. data/lib/zm/client/mountpoint/mountpoint.rb +43 -20
  146. data/lib/zm/client/mountpoint/mountpoint_jsns_builder.rb +8 -53
  147. data/lib/zm/client/mountpoint/mountpoint_jsns_initializer.rb +22 -13
  148. data/lib/zm/client/mountpoint/mountpoints_builder.rb +4 -5
  149. data/lib/zm/client/mountpoint/mountpoints_collection.rb +1 -2
  150. data/lib/zm/client/mta_queue/mta_queue.rb +13 -28
  151. data/lib/zm/client/mta_queue/mta_queue_jsns_builder.rb +41 -0
  152. data/lib/zm/client/mta_queue/mta_queue_jsns_initializer.rb +23 -0
  153. data/lib/zm/client/mta_queue/mta_queues_builder.rb +4 -8
  154. data/lib/zm/client/mta_queue/mta_queues_collection.rb +8 -27
  155. data/lib/zm/client/mta_queue.rb +2 -0
  156. data/lib/zm/client/mta_queue_item/mta_queue_item.rb +4 -31
  157. data/lib/zm/client/mta_queue_item/mta_queue_item_jsns_initializer.rb +33 -0
  158. data/lib/zm/client/mta_queue_item/mta_queue_items_builder.rb +4 -9
  159. data/lib/zm/client/mta_queue_item/mta_queue_items_collection.rb +7 -42
  160. data/lib/zm/client/mta_queue_item.rb +2 -1
  161. data/lib/zm/client/resource/resource.rb +24 -91
  162. data/lib/zm/client/resource/resource_jsns_builder.rb +79 -0
  163. data/lib/zm/client/resource/resource_jsns_initializer.rb +29 -0
  164. data/lib/zm/client/resource/resources_builder.rb +8 -1
  165. data/lib/zm/client/resource/resources_collection.rb +9 -7
  166. data/lib/zm/client/resource.rb +2 -0
  167. data/lib/zm/client/search_folder/search_folder.rb +38 -16
  168. data/lib/zm/client/search_folder/search_folder_jsns_builder.rb +38 -19
  169. data/lib/zm/client/search_folder/search_folder_jsns_initializer.rb +17 -13
  170. data/lib/zm/client/search_folder/search_folders_builder.rb +0 -1
  171. data/lib/zm/client/search_folder/search_folders_collection.rb +2 -1
  172. data/lib/zm/client/server/server.rb +16 -488
  173. data/lib/zm/client/server/server_jsns_initializer.rb +16 -0
  174. data/lib/zm/client/server/servers_builder.rb +8 -1
  175. data/lib/zm/client/server/servers_collection.rb +13 -5
  176. data/lib/zm/client/server.rb +1 -0
  177. data/lib/zm/client/share/share.rb +5 -43
  178. data/lib/zm/client/share/share_jsns_initializer.rb +32 -0
  179. data/lib/zm/client/share/share_mountpoints_collection.rb +38 -0
  180. data/lib/zm/client/share/shares_builder.rb +8 -1
  181. data/lib/zm/client/share/shares_collection.rb +11 -16
  182. data/lib/zm/client/share.rb +2 -0
  183. data/lib/zm/client/signature/signature.rb +25 -29
  184. data/lib/zm/client/signature/signature_jsns_builder.rb +31 -13
  185. data/lib/zm/client/signature/signature_jsns_initializer.rb +16 -12
  186. data/lib/zm/client/signature/signatures_builder.rb +1 -2
  187. data/lib/zm/client/signature/signatures_collection.rb +2 -1
  188. data/lib/zm/client/signature.rb +1 -1
  189. data/lib/zm/client/soap_request/account_soap_constants.rb +76 -0
  190. data/lib/zm/client/soap_request/admin_soap_constants.rb +214 -0
  191. data/lib/zm/client/soap_request/mail_soap_constants.rb +162 -0
  192. data/lib/zm/client/soap_request/soap_constants.rb +55 -0
  193. data/lib/zm/client/soap_request/soap_context.rb +38 -0
  194. data/lib/zm/client/soap_request/soap_element.rb +90 -0
  195. data/lib/zm/client/soap_request.rb +8 -0
  196. data/lib/zm/client/tag/account_object_tags_collection.rb +65 -0
  197. data/lib/zm/client/tag/tag.rb +34 -22
  198. data/lib/zm/client/tag/tag_jsns_builder.rb +14 -35
  199. data/lib/zm/client/tag/tag_jsns_initializer.rb +4 -6
  200. data/lib/zm/client/tag/tags_builder.rb +0 -1
  201. data/lib/zm/client/tag/tags_collection.rb +2 -1
  202. data/lib/zm/client/tag.rb +1 -0
  203. data/lib/zm/client/task/task.rb +18 -49
  204. data/lib/zm/client/task/task_jsns_initializer.rb +45 -0
  205. data/lib/zm/client/task/tasks_builder.rb +6 -16
  206. data/lib/zm/client/task/tasks_collection.rb +29 -0
  207. data/lib/zm/client/task.rb +1 -0
  208. data/lib/zm/client/upload/upload.rb +26 -30
  209. data/lib/zm/client/version.rb +3 -3
  210. data/lib/zm/client.rb +4 -1
  211. data/lib/zm/modules/base.rb +10 -0
  212. data/lib/zm/modules/belongs_to_folder.rb +37 -0
  213. data/lib/zm/modules/belongs_to_tag.rb +11 -0
  214. data/lib/zm/modules/common/zimbra-attrs.json +1 -1
  215. data/lib/zm/modules/has_soap_admin_connector.rb +12 -0
  216. data/lib/zm/modules/inspector.rb +24 -0
  217. data/lib/zm/modules/missing_method_static_collection.rb +13 -0
  218. data/lib/zm/modules/zm_logger.rb +3 -1
  219. data/lib/zm/modules/zm_model.rb +4 -2
  220. data/lib/zm/utils/thread_pool.rb +4 -2
  221. data/lib/zm-ruby-client.rb +2 -0
  222. data/zm-ruby-client.gemspec +12 -9
  223. metadata +93 -34
  224. data/lib/zm/client/base/account_object.rb +0 -51
  225. data/lib/zm/client/base/admin_object.rb +0 -51
  226. data/lib/zm/client/base/folder_object.rb +0 -41
  227. data/lib/zm/client/config.rb +0 -12
  228. data/lib/zm/client/data_source.rb +0 -5
  229. data/lib/zm/modules/common/account_common.rb +0 -71
  230. data/lib/zm/modules/common/cos_common.rb +0 -463
  231. data/lib/zm/modules/common/dl_common.rb +0 -38
  232. data/lib/zm/modules/common/identity_common.rb +0 -19
  233. data/lib/zm/modules/common/resource_common.rb +0 -59
  234. data/lib/zm/modules/common/signature_common.rb +0 -16
  235. data/lib/zm/modules/common/zimbra-attrs.json.bak +0 -1
  236. data/test/accounts.rb +0 -89
  237. data/test/ace.rb +0 -50
  238. data/test/cluster.rb +0 -41
  239. data/test/cluster_config.rb +0 -30
  240. data/test/cluster_zimbra_attributes.rb +0 -38
  241. data/test/coses.rb +0 -26
  242. data/test/domains.rb +0 -70
  243. data/test/folder.rb +0 -125
  244. data/test/folder_grant.rb +0 -51
  245. data/test/mountpoint.rb +0 -49
  246. data/test/retention_policies.rb +0 -40
  247. data/test/search_folder.rb +0 -67
  248. data/test/signature.rb +0 -53
  249. data/test/tag.rb +0 -65
  250. data/test/zimbra_attributes.rb +0 -35
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zm
4
+ module Client
5
+ module HasSoapAdminConnector
6
+ def soap_admin_connector
7
+ @parent.soap_admin_connector
8
+ end
9
+ alias sac soap_admin_connector
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zm
4
+ module Inspector
5
+ def to_s
6
+ inspect
7
+ end
8
+
9
+ def to_h
10
+ Hash[instance_variables_map]
11
+ end
12
+
13
+ def inspect
14
+ keys_str = to_h.map { |k, v| "#{k}: #{v}" }.join(', ')
15
+ "#{self.class}:#{format('0x00%x', (object_id << 1))} #{keys_str}"
16
+ end
17
+
18
+ def instance_variables_map
19
+ keys = instance_variables.dup
20
+ keys.delete(:@parent)
21
+ keys.map { |key| [key, instance_variable_get(key)] }
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module MissingMethodStaticCollection
4
+ attr_reader :all
5
+
6
+ def method_missing(method, *args, &block)
7
+ if @all.respond_to?(method)
8
+ @all.send(method, *args, &block)
9
+ else
10
+ super
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ZmLogger
2
4
  attr_accessor :logger, :logger_file_path, :logger_level
3
5
 
@@ -21,4 +23,4 @@ module ZmLogger
21
23
  end
22
24
  logger
23
25
  end
24
- end
26
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Zm
2
4
  module Model
3
5
  module AttributeChangeObserver
@@ -17,11 +19,11 @@ module Zm
17
19
  def #{attr_name}_changed
18
20
  @#{attr_name}_changed ||= false
19
21
  end
20
-
22
+
21
23
  def #{attr_name}_changed?
22
24
  #{attr_name}_changed
23
25
  end
24
-
26
+
25
27
  def #{attr_name}=(value)
26
28
  return @#{attr_name} if value == @#{attr_name}
27
29
  @#{attr_name}_changed = true
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Zm
2
4
  module Utils
3
5
  class ThreadPool
@@ -20,7 +22,7 @@ module Zm
20
22
  @finish = true
21
23
  @result = result
22
24
  @number = number
23
- @jobs = [[ Proc.new {}, nil]]
25
+ @jobs = [[proc {}, nil]]
24
26
  end
25
27
 
26
28
  def jobs_size
@@ -61,7 +63,7 @@ module Zm
61
63
  loop do
62
64
  job, args = @jobs.pop
63
65
  job.call(*args)
64
- break if @jobs.size.zero?
66
+ break if @jobs.empty?
65
67
  end
66
68
  end
67
69
  end
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'zm/client'
@@ -1,29 +1,32 @@
1
1
  # frozen_string_literal: true
2
-
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $:.unshift lib unless $:.include?(lib)
5
4
 
6
5
  require './lib/zm-ruby-client'
7
6
 
8
7
  Gem::Specification.new do |s|
9
- s.platform = Gem::Platform::RUBY
8
+ s.platform = Gem::Platform::RUBY
10
9
  s.name = 'zm-ruby-client'
11
- s.version = Zm::Client.gem_version.to_s
10
+ s.version = Zm::Client::gem_version.to_s
12
11
  s.date = `date '+%Y-%m-%d'`
13
12
  s.summary = 'zm-ruby-client'
14
13
  s.description = 'Zimbra Soap Librairy using SOAP Json interface'
15
14
 
16
- s.required_ruby_version = '>= 2.6'
15
+ s.required_ruby_version = ">= 2.7"
16
+ s.required_rubygems_version = ">= 1.8.11"
17
+
17
18
  s.license = 'GPL-3.0'
18
19
 
19
20
  s.authors = ['Maxime Désécot']
20
21
  s.email = 'maxime.desecot@gmail.com'
21
22
  s.homepage = 'https://github.com/RaoH37/zm-ruby-client'
22
23
 
23
- s.files = `git ls-files`.split("\n")
24
+ s.files = `git ls-files`.split("\n").reject { |path| path.start_with?('test/', 'examples/') }
24
25
  s.require_paths = ['lib']
25
26
 
26
27
  s.add_dependency('addressable', ['~> 2.8'])
27
28
  s.add_dependency('curb', ['~> 1.0'])
28
- s.add_dependency('version_sorter', ['~> 2.3.0'])
29
- end
29
+ s.add_dependency('version_sorter', ['~> 2.3'])
30
+
31
+ s.add_dependency "bundler", ">= 1.15.0"
32
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zm-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.5
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxime Désécot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-17 00:00:00.000000000 Z
11
+ date: 2023-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -44,14 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.3.0
47
+ version: '2.3'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.3.0
54
+ version: '2.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.15.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 1.15.0
55
69
  description: Zimbra Soap Librairy using SOAP Json interface
56
70
  email: maxime.desecot@gmail.com
57
71
  executables: []
@@ -67,8 +81,10 @@ files:
67
81
  - lib/zm/client.rb
68
82
  - lib/zm/client/account.rb
69
83
  - lib/zm/client/account/account.rb
84
+ - lib/zm/client/account/account_aliases_collection.rb
70
85
  - lib/zm/client/account/account_dls_membership_collection.rb
71
86
  - lib/zm/client/account/account_dls_owner_collection.rb
87
+ - lib/zm/client/account/account_jsns_builder.rb
72
88
  - lib/zm/client/account/account_jsns_initializer.rb
73
89
  - lib/zm/client/account/accounts_builder.rb
74
90
  - lib/zm/client/account/accounts_collection.rb
@@ -86,18 +102,20 @@ files:
86
102
  - lib/zm/client/appointment/appointments_collection.rb
87
103
  - lib/zm/client/backup.rb
88
104
  - lib/zm/client/backup/backup.rb
105
+ - lib/zm/client/backup/backup_jsns_initializer.rb
89
106
  - lib/zm/client/backup/backups_builder.rb
90
107
  - lib/zm/client/backup/backups_collection.rb
91
108
  - lib/zm/client/base.rb
92
- - lib/zm/client/base/account_object.rb
93
109
  - lib/zm/client/base/account_objects_collection.rb
94
110
  - lib/zm/client/base/account_search_objects_collection.rb
95
- - lib/zm/client/base/admin_object.rb
96
111
  - lib/zm/client/base/admin_objects_collection.rb
112
+ - lib/zm/client/base/base_account_jsns_builder.rb
97
113
  - lib/zm/client/base/base_jsns_builder.rb
98
114
  - lib/zm/client/base/base_jsns_initializer.rb
99
- - lib/zm/client/base/folder_object.rb
100
115
  - lib/zm/client/base/ldap_filter.rb
116
+ - lib/zm/client/base/mailbox_infos_collection.rb
117
+ - lib/zm/client/base/mailbox_object.rb
118
+ - lib/zm/client/base/mailbox_prefs_collection.rb
101
119
  - lib/zm/client/base/object.rb
102
120
  - lib/zm/client/base/objects_builder.rb
103
121
  - lib/zm/client/base/objects_collection.rb
@@ -110,7 +128,7 @@ files:
110
128
  - lib/zm/client/common/message.rb
111
129
  - lib/zm/client/common/recipients.rb
112
130
  - lib/zm/client/common/token_metadata.rb
113
- - lib/zm/client/config.rb
131
+ - lib/zm/client/common/utils.rb
114
132
  - lib/zm/client/connector/rest_account.rb
115
133
  - lib/zm/client/connector/soap_account.rb
116
134
  - lib/zm/client/connector/soap_admin.rb
@@ -119,29 +137,61 @@ files:
119
137
  - lib/zm/client/constant.rb
120
138
  - lib/zm/client/contact.rb
121
139
  - lib/zm/client/contact/contact.rb
140
+ - lib/zm/client/contact/contact_jsns_builder.rb
141
+ - lib/zm/client/contact/contact_jsns_initializer.rb
122
142
  - lib/zm/client/contact/contact_member.rb
143
+ - lib/zm/client/contact/contact_members_collection.rb
123
144
  - lib/zm/client/contact/contacts_builder.rb
124
145
  - lib/zm/client/contact/contacts_collection.rb
146
+ - lib/zm/client/contact/group_contact_jsns_builder.rb
125
147
  - lib/zm/client/contact/mod_group_contact.rb
126
148
  - lib/zm/client/cos.rb
127
149
  - lib/zm/client/cos/cos.rb
150
+ - lib/zm/client/cos/cos_accounts_collection.rb
151
+ - lib/zm/client/cos/cos_domains_collection.rb
152
+ - lib/zm/client/cos/cos_jsns_builder.rb
153
+ - lib/zm/client/cos/cos_jsns_initializer.rb
154
+ - lib/zm/client/cos/cos_servers_collection.rb
128
155
  - lib/zm/client/cos/coses_builder.rb
129
156
  - lib/zm/client/cos/coses_collection.rb
130
- - lib/zm/client/data_source.rb
157
+ - lib/zm/client/datasource.rb
158
+ - lib/zm/client/datasource/datasource.rb
159
+ - lib/zm/client/datasource/datasource_jsns_builder.rb
160
+ - lib/zm/client/datasource/datasource_jsns_initializer.rb
161
+ - lib/zm/client/datasource/datasources_builder.rb
162
+ - lib/zm/client/datasource/datasources_collection.rb
131
163
  - lib/zm/client/distributionlist.rb
132
164
  - lib/zm/client/distributionlist/distributionlist.rb
165
+ - lib/zm/client/distributionlist/distributionlist_aces_collection.rb
166
+ - lib/zm/client/distributionlist/distributionlist_aliases_collection.rb
167
+ - lib/zm/client/distributionlist/distributionlist_jsns_builder.rb
168
+ - lib/zm/client/distributionlist/distributionlist_jsns_initializer.rb
169
+ - lib/zm/client/distributionlist/distributionlist_members_collection.rb
170
+ - lib/zm/client/distributionlist/distributionlist_owners_collection.rb
133
171
  - lib/zm/client/distributionlist/distributionlists_builder.rb
134
172
  - lib/zm/client/distributionlist/distributionlists_collection.rb
135
173
  - lib/zm/client/distributionlist/dls_membership_collection.rb
136
174
  - lib/zm/client/document.rb
137
175
  - lib/zm/client/document/document.rb
176
+ - lib/zm/client/document/document_jsns_builder.rb
177
+ - lib/zm/client/document/document_jsns_initializer.rb
138
178
  - lib/zm/client/document/documents_builder.rb
139
179
  - lib/zm/client/document/documents_collection.rb
140
180
  - lib/zm/client/domain.rb
141
181
  - lib/zm/client/domain/domain.rb
142
182
  - lib/zm/client/domain/domain_accounts_collection.rb
183
+ - lib/zm/client/domain/domain_distributionlists_collection.rb
184
+ - lib/zm/client/domain/domain_jsns_builder.rb
185
+ - lib/zm/client/domain/domain_jsns_initializer.rb
186
+ - lib/zm/client/domain/domain_resources_collection.rb
143
187
  - lib/zm/client/domain/domains_builder.rb
144
188
  - lib/zm/client/domain/domains_collection.rb
189
+ - lib/zm/client/filter_rule.rb
190
+ - lib/zm/client/filter_rules/filter_rule.rb
191
+ - lib/zm/client/filter_rules/filter_rule_jsns_initializer.rb
192
+ - lib/zm/client/filter_rules/filter_rules_builder.rb
193
+ - lib/zm/client/filter_rules/filter_rules_collection.rb
194
+ - lib/zm/client/filter_rules/outgoing_filter_rules_collection.rb
145
195
  - lib/zm/client/folder.rb
146
196
  - lib/zm/client/folder/folder.rb
147
197
  - lib/zm/client/folder/folder_grant.rb
@@ -159,11 +209,19 @@ files:
159
209
  - lib/zm/client/identity/identities_builder.rb
160
210
  - lib/zm/client/identity/identities_collection.rb
161
211
  - lib/zm/client/identity/identity.rb
212
+ - lib/zm/client/identity/identity_jsns_builder.rb
213
+ - lib/zm/client/identity/identity_jsns_initializer.rb
162
214
  - lib/zm/client/license.rb
163
215
  - lib/zm/client/license/license.rb
216
+ - lib/zm/client/license/license_jsns_initializer.rb
164
217
  - lib/zm/client/license/licenses_collection.rb
165
218
  - lib/zm/client/message.rb
219
+ - lib/zm/client/message/attachments_collection.rb
166
220
  - lib/zm/client/message/message.rb
221
+ - lib/zm/client/message/message_flags.rb
222
+ - lib/zm/client/message/message_jsns_builder.rb
223
+ - lib/zm/client/message/message_jsns_initializer.rb
224
+ - lib/zm/client/message/message_recipients.rb
167
225
  - lib/zm/client/message/messages_builder.rb
168
226
  - lib/zm/client/message/messages_collection.rb
169
227
  - lib/zm/client/mountpoint.rb
@@ -174,14 +232,19 @@ files:
174
232
  - lib/zm/client/mountpoint/mountpoints_collection.rb
175
233
  - lib/zm/client/mta_queue.rb
176
234
  - lib/zm/client/mta_queue/mta_queue.rb
235
+ - lib/zm/client/mta_queue/mta_queue_jsns_builder.rb
236
+ - lib/zm/client/mta_queue/mta_queue_jsns_initializer.rb
177
237
  - lib/zm/client/mta_queue/mta_queues_builder.rb
178
238
  - lib/zm/client/mta_queue/mta_queues_collection.rb
179
239
  - lib/zm/client/mta_queue_item.rb
180
240
  - lib/zm/client/mta_queue_item/mta_queue_item.rb
241
+ - lib/zm/client/mta_queue_item/mta_queue_item_jsns_initializer.rb
181
242
  - lib/zm/client/mta_queue_item/mta_queue_items_builder.rb
182
243
  - lib/zm/client/mta_queue_item/mta_queue_items_collection.rb
183
244
  - lib/zm/client/resource.rb
184
245
  - lib/zm/client/resource/resource.rb
246
+ - lib/zm/client/resource/resource_jsns_builder.rb
247
+ - lib/zm/client/resource/resource_jsns_initializer.rb
185
248
  - lib/zm/client/resource/resources_builder.rb
186
249
  - lib/zm/client/resource/resources_collection.rb
187
250
  - lib/zm/client/search_folder.rb
@@ -193,10 +256,13 @@ files:
193
256
  - lib/zm/client/server.rb
194
257
  - lib/zm/client/server/server.rb
195
258
  - lib/zm/client/server/server_accounts_collection.rb
259
+ - lib/zm/client/server/server_jsns_initializer.rb
196
260
  - lib/zm/client/server/servers_builder.rb
197
261
  - lib/zm/client/server/servers_collection.rb
198
262
  - lib/zm/client/share.rb
199
263
  - lib/zm/client/share/share.rb
264
+ - lib/zm/client/share/share_jsns_initializer.rb
265
+ - lib/zm/client/share/share_mountpoints_collection.rb
200
266
  - lib/zm/client/share/shares_builder.rb
201
267
  - lib/zm/client/share/shares_collection.rb
202
268
  - lib/zm/client/signature.rb
@@ -205,7 +271,15 @@ files:
205
271
  - lib/zm/client/signature/signature_jsns_initializer.rb
206
272
  - lib/zm/client/signature/signatures_builder.rb
207
273
  - lib/zm/client/signature/signatures_collection.rb
274
+ - lib/zm/client/soap_request.rb
275
+ - lib/zm/client/soap_request/account_soap_constants.rb
276
+ - lib/zm/client/soap_request/admin_soap_constants.rb
277
+ - lib/zm/client/soap_request/mail_soap_constants.rb
278
+ - lib/zm/client/soap_request/soap_constants.rb
279
+ - lib/zm/client/soap_request/soap_context.rb
280
+ - lib/zm/client/soap_request/soap_element.rb
208
281
  - lib/zm/client/tag.rb
282
+ - lib/zm/client/tag/account_object_tags_collection.rb
209
283
  - lib/zm/client/tag/tag.rb
210
284
  - lib/zm/client/tag/tag_jsns_builder.rb
211
285
  - lib/zm/client/tag/tag_jsns_initializer.rb
@@ -213,37 +287,22 @@ files:
213
287
  - lib/zm/client/tag/tags_collection.rb
214
288
  - lib/zm/client/task.rb
215
289
  - lib/zm/client/task/task.rb
290
+ - lib/zm/client/task/task_jsns_initializer.rb
216
291
  - lib/zm/client/task/tasks_builder.rb
217
292
  - lib/zm/client/task/tasks_collection.rb
218
293
  - lib/zm/client/upload.rb
219
294
  - lib/zm/client/upload/upload.rb
220
295
  - lib/zm/client/version.rb
221
- - lib/zm/modules/common/account_common.rb
222
- - lib/zm/modules/common/cos_common.rb
223
- - lib/zm/modules/common/dl_common.rb
224
- - lib/zm/modules/common/identity_common.rb
225
- - lib/zm/modules/common/resource_common.rb
226
- - lib/zm/modules/common/signature_common.rb
296
+ - lib/zm/modules/base.rb
297
+ - lib/zm/modules/belongs_to_folder.rb
298
+ - lib/zm/modules/belongs_to_tag.rb
227
299
  - lib/zm/modules/common/zimbra-attrs.json
228
- - lib/zm/modules/common/zimbra-attrs.json.bak
300
+ - lib/zm/modules/has_soap_admin_connector.rb
301
+ - lib/zm/modules/inspector.rb
302
+ - lib/zm/modules/missing_method_static_collection.rb
229
303
  - lib/zm/modules/zm_logger.rb
230
304
  - lib/zm/modules/zm_model.rb
231
305
  - lib/zm/utils/thread_pool.rb
232
- - test/accounts.rb
233
- - test/ace.rb
234
- - test/cluster.rb
235
- - test/cluster_config.rb
236
- - test/cluster_zimbra_attributes.rb
237
- - test/coses.rb
238
- - test/domains.rb
239
- - test/folder.rb
240
- - test/folder_grant.rb
241
- - test/mountpoint.rb
242
- - test/retention_policies.rb
243
- - test/search_folder.rb
244
- - test/signature.rb
245
- - test/tag.rb
246
- - test/zimbra_attributes.rb
247
306
  - zm-ruby-client.gemspec
248
307
  homepage: https://github.com/RaoH37/zm-ruby-client
249
308
  licenses:
@@ -257,14 +316,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
257
316
  requirements:
258
317
  - - ">="
259
318
  - !ruby/object:Gem::Version
260
- version: '2.6'
319
+ version: '2.7'
261
320
  required_rubygems_version: !ruby/object:Gem::Requirement
262
321
  requirements:
263
322
  - - ">="
264
323
  - !ruby/object:Gem::Version
265
- version: '0'
324
+ version: 1.8.11
266
325
  requirements: []
267
- rubygems_version: 3.4.19
326
+ rubygems_version: 3.1.6
268
327
  signing_key:
269
328
  specification_version: 4
270
329
  summary: zm-ruby-client
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Zm
4
- module Client
5
- module Base
6
- # Abstract Class Provisionning AccountObject
7
- class AccountObject < Object
8
-
9
- def soap_account_connector
10
- @parent.soap_account_connector
11
- end
12
-
13
- alias sacc soap_account_connector
14
-
15
- def concat
16
- all_instance_variable_keys.map { |key| instance_variable_get(arrow_name(key)) }
17
- end
18
-
19
- def init_from_json(json)
20
- all_instance_variable_keys.each do |key|
21
- next if json[key].nil?
22
- instance_variable_set(arrow_name(key), json[key])
23
- end
24
- end
25
-
26
- def to_h
27
- hashmap = Hash[all_instance_variable_keys.map { |key| [key, instance_variable_get(arrow_name(key))] }]
28
- hashmap.delete_if { |_, v| v.nil? }
29
- hashmap
30
- end
31
-
32
- def create!
33
- @id
34
- end
35
-
36
- def modify!
37
- rename!
38
- true
39
- end
40
-
41
- def rename!
42
- true
43
- end
44
-
45
- def delete!
46
- remove_instance_variable(:@id)
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'time'
4
-
5
- module Zm
6
- module Client
7
- module Base
8
- # Abstract Class Provisionning AdminObject
9
- class AdminObject < Object
10
-
11
- def soap_admin_connector
12
- @parent.soap_admin_connector
13
- end
14
-
15
- alias sac soap_admin_connector
16
-
17
- def soap_account_connector
18
- @parent.soap_account_connector
19
- end
20
-
21
- alias sacc soap_account_connector
22
-
23
- def to_h
24
- hashmap = Hash[all_instance_variable_keys.map { |key| [key, instance_variable_get(arrow_name(key))] }]
25
- hashmap.delete_if { |_, v| v.nil? }
26
- hashmap
27
- end
28
-
29
- def init_from_json(json)
30
- # TODO : know in advance the typing of variables
31
- super(json)
32
- return unless json[:a].is_a? Array
33
-
34
- # fix car le tableau peut contenir des {} vide !
35
- json[:a].reject! { |n| n[:n].nil? }
36
- json_map = json[:a].map { |n| ["@#{n[:n]}", n[:_content]] }.freeze
37
-
38
- json_hash = json_map.reduce({}) { |h, (k, v)| (h[k] ||= []); h[k].push(v); h }.inject({}) { |h, (k, v)| v.length == 1 ? h[k] = v.first : h[k] = v; h }
39
-
40
- json_hash.each do |k, v|
41
- instance_variable_set(k, convert_json_string_value(v))
42
- end
43
-
44
- # Hash[json_map].each do |k, v|
45
- # instance_variable_set(k, convert_json_string_value(v))
46
- # end
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Zm
4
- module Client
5
- module Base
6
- # Abstract Class FolderObject
7
- class FolderObject < AccountObject
8
-
9
- def initialize(parent)
10
- @l = FolderDefault::ROOT[:id]
11
- super(parent)
12
- end
13
-
14
- def color!
15
- @parent.sacc.folder_action(@parent.token, jsns_builder.to_color) if color_changed? || rgb_changed?
16
- true
17
- end
18
-
19
- def delete!
20
- @parent.sacc.folder_action(@parent.token, jsns_builder.to_delete)
21
- super
22
- end
23
-
24
- def modify!
25
- @parent.sacc.folder_action(@parent.token, jsns_builder.to_update)
26
- true
27
- end
28
-
29
- def move!
30
- @parent.sacc.folder_action(@parent.token, jsns_builder.to_move) if l_changed?
31
- true
32
- end
33
-
34
- def rename!
35
- @parent.sacc.folder_action(@parent.token, jsns_builder.to_rename) if name_changed?
36
- super
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Zm
4
- module Client
5
- # module de configuration du client Zm::Client
6
- module Config
7
- extend self
8
-
9
- # TODO
10
- end
11
- end
12
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/data_source/data_source'
4
- require 'zm/client/data_source/data_sources_builder'
5
- require 'zm/client/data_source/data_sources_collection'
@@ -1,71 +0,0 @@
1
- module AccountCommon
2
- ALL_ATTRS = JSON.parse(File.read(File.expand_path(File.dirname(__FILE__) + '/zimbra-attrs.json')))
3
- ATTRS_READ = ALL_ATTRS.select{|a|a['immutable']=='1'}.map{|a|a['name']}
4
- ATTRS_WRITE = ALL_ATTRS.reject{|a|a['immutable']=='1'}.map{|a|a['name']}
5
-
6
- ZM_ACCOUNT_ATTRS = %w[
7
- sn
8
- company
9
- cn
10
- co
11
- street
12
- l
13
- givenName
14
- postalAddress
15
- postalCode
16
- displayName
17
- gidNumber
18
- telephoneNumber
19
- description
20
- zimbraPrefGroupMailBy
21
- zimbraPrefFromDisplay
22
- zimbraPrefFromDisplay
23
- zimbraPrefMailSignature
24
- zimbraPrefMailSignatureHTML
25
- zimbraPrefMailSignatureStyle
26
- zimbraPrefDefaultSignatureId
27
- zimbraPrefForwardReplySignatureId
28
- zimbraPrefReplyToEnabled
29
- zimbraPrefIdentityName
30
- zimbraPrefFromAddress
31
- zimbraPrefWhenInFoldersEnabled
32
- zimbraPrefWhenSentToEnabled
33
- zimbraPrefSortOrder
34
- zimbraSignatureName
35
- userPassword
36
- zimbraPasswordMustChange
37
- zimbraPrefOutOfOfficeFromDate
38
- zimbraPrefOutOfOfficeReplyEnabled
39
- zimbraPrefOutOfOfficeUntilDate
40
- zimbraPrefOutOfOfficeReply
41
- zimbraAccountStatus
42
- zimbraMailStatus
43
- zimbraPasswordMustChange
44
- zimbraPrefSortOrder
45
- zimbraMailSieveScript
46
- zimbraPrefTasksReadingPaneLocation
47
- zimbraPrefShowCalendarWeek
48
- zimbraPrefForwardIncludeOriginalText
49
- zimbraPrefReplyIncludeOriginalText
50
- zimbraPrefHtmlEditorDefaultFontFamily
51
- zimbraPrefZimletTreeOpen
52
- zimbraPrefComposeFormat
53
- zimbraPrefFolderTreeOpen
54
- zimbraPrefCalendarFirstDayOfWeek
55
- zimbraPrefCalendarForwardInvitesTo
56
- zimbraPrefMailForwardingAddress
57
- zimbraMailDeliveryAddress
58
- zimbraCOSId
59
- ].freeze
60
-
61
- ATTRS_READ.each { |attr| attr_reader attr }
62
- ATTRS_WRITE.each { |attr| attr_accessor attr }
63
-
64
- def attrs_read
65
- ATTRS_READ
66
- end
67
-
68
- def attrs_write
69
- ATTRS_WRITE
70
- end
71
- end