groupdocs 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +9 -9
  3. data/CHANGELOG.md +482 -477
  4. data/Gemfile +3 -3
  5. data/LICENSE.txt +21 -21
  6. data/README.md +94 -94
  7. data/Rakefile +9 -9
  8. data/examples/README.md +12 -12
  9. data/examples/api-samples/Gemfile +5 -5
  10. data/examples/api-samples/Gemfile.lock +49 -49
  11. data/examples/api-samples/README.md +23 -23
  12. data/examples/api-samples/public/css/style.css +229 -229
  13. data/examples/api-samples/public/docs/annotation-sample.html +167 -167
  14. data/examples/api-samples/public/docs/docco.css +500 -500
  15. data/examples/api-samples/public/docs/envelope-sample.html +374 -374
  16. data/examples/api-samples/public/docs/sample01.html +181 -181
  17. data/examples/api-samples/public/docs/sample02.html +199 -199
  18. data/examples/api-samples/public/docs/sample03.html +318 -318
  19. data/examples/api-samples/public/docs/sample04.html +217 -217
  20. data/examples/api-samples/public/docs/sample05.html +296 -296
  21. data/examples/api-samples/public/docs/sample06.html +347 -347
  22. data/examples/api-samples/public/docs/sample07.html +209 -209
  23. data/examples/api-samples/public/docs/sample08.html +277 -277
  24. data/examples/api-samples/public/docs/sample09.html +314 -314
  25. data/examples/api-samples/public/docs/sample10.html +270 -270
  26. data/examples/api-samples/public/docs/sample11.html +462 -462
  27. data/examples/api-samples/public/docs/sample12.html +199 -199
  28. data/examples/api-samples/public/docs/sample13.html +201 -201
  29. data/examples/api-samples/public/docs/sample14.html +204 -204
  30. data/examples/api-samples/public/docs/sample15.html +182 -182
  31. data/examples/api-samples/public/docs/sample16.html +234 -234
  32. data/examples/api-samples/public/docs/sample17.html +309 -309
  33. data/examples/api-samples/public/docs/sample18.html +721 -721
  34. data/examples/api-samples/public/docs/sample19.html +631 -631
  35. data/examples/api-samples/public/docs/sample20.html +230 -230
  36. data/examples/api-samples/public/docs/sample21.html +790 -790
  37. data/examples/api-samples/public/docs/sample22.html +408 -408
  38. data/examples/api-samples/public/docs/sample25.html +550 -550
  39. data/examples/api-samples/public/templates/base-simple_source.html +191 -191
  40. data/examples/api-samples/public/templates/testdocument.html +100 -100
  41. data/examples/api-samples/public/templates/welcome.htm +137 -137
  42. data/examples/api-samples/samples/annotation-sample.rb +56 -56
  43. data/examples/api-samples/samples/envelope-sample.rb +133 -133
  44. data/examples/api-samples/samples/sample01.rb +44 -44
  45. data/examples/api-samples/samples/sample02.rb +50 -50
  46. data/examples/api-samples/samples/sample03.rb +79 -79
  47. data/examples/api-samples/samples/sample04.rb +54 -54
  48. data/examples/api-samples/samples/sample05.rb +83 -83
  49. data/examples/api-samples/samples/sample06.rb +86 -86
  50. data/examples/api-samples/samples/sample07.rb +59 -59
  51. data/examples/api-samples/samples/sample08.rb +76 -76
  52. data/examples/api-samples/samples/sample09.rb +85 -85
  53. data/examples/api-samples/samples/sample10.rb +70 -70
  54. data/examples/api-samples/samples/sample11.rb +132 -132
  55. data/examples/api-samples/samples/sample12.rb +48 -48
  56. data/examples/api-samples/samples/sample13.rb +49 -49
  57. data/examples/api-samples/samples/sample14.rb +54 -54
  58. data/examples/api-samples/samples/sample15.rb +43 -43
  59. data/examples/api-samples/samples/sample16.rb +57 -57
  60. data/examples/api-samples/samples/sample17.rb +70 -70
  61. data/examples/api-samples/samples/sample18.rb +190 -190
  62. data/examples/api-samples/samples/sample19.rb +188 -188
  63. data/examples/api-samples/samples/sample20.rb +68 -68
  64. data/examples/api-samples/samples/sample21.rb +212 -212
  65. data/examples/api-samples/samples/sample22.rb +109 -109
  66. data/examples/api-samples/samples/sample25.rb +127 -127
  67. data/examples/api-samples/views/_others_samples.haml +233 -233
  68. data/examples/api-samples/views/annotation_sample.haml +63 -63
  69. data/examples/api-samples/views/envelope_sample.haml +72 -72
  70. data/examples/api-samples/views/index.haml +235 -235
  71. data/examples/api-samples/views/layout.haml +3 -3
  72. data/examples/api-samples/views/sample01.haml +63 -63
  73. data/examples/api-samples/views/sample02.haml +52 -52
  74. data/examples/api-samples/views/sample03.haml +87 -87
  75. data/examples/api-samples/views/sample04.haml +55 -55
  76. data/examples/api-samples/views/sample05.haml +86 -86
  77. data/examples/api-samples/views/sample06.haml +58 -58
  78. data/examples/api-samples/views/sample07.haml +52 -52
  79. data/examples/api-samples/views/sample08.haml +100 -100
  80. data/examples/api-samples/views/sample09.haml +95 -95
  81. data/examples/api-samples/views/sample10.haml +93 -93
  82. data/examples/api-samples/views/sample11.haml +140 -140
  83. data/examples/api-samples/views/sample12.haml +68 -68
  84. data/examples/api-samples/views/sample13.haml +64 -64
  85. data/examples/api-samples/views/sample14.haml +60 -60
  86. data/examples/api-samples/views/sample15.haml +51 -51
  87. data/examples/api-samples/views/sample16.haml +50 -50
  88. data/examples/api-samples/views/sample17.haml +54 -54
  89. data/examples/api-samples/views/sample18.haml +143 -143
  90. data/examples/api-samples/views/sample19.haml +92 -92
  91. data/examples/api-samples/views/sample20.haml +54 -54
  92. data/examples/api-samples/views/sample21.haml +123 -123
  93. data/examples/api-samples/views/sample22.haml +106 -106
  94. data/examples/api-samples/views/sample25.haml +101 -101
  95. data/examples/api-samples/views/sample31.haml +2 -2
  96. data/examples/api-samples/web.rb +20 -20
  97. data/examples/viewer/Gemfile +5 -5
  98. data/examples/viewer/app.rb +52 -52
  99. data/groupdocs.gemspec +31 -31
  100. data/lib/groupdocs.rb +62 -62
  101. data/lib/groupdocs/api.rb +6 -6
  102. data/lib/groupdocs/api/entity.rb +112 -112
  103. data/lib/groupdocs/api/helpers.rb +11 -11
  104. data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
  105. data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
  106. data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
  107. data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
  108. data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
  109. data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
  110. data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
  111. data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
  112. data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
  113. data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
  114. data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
  115. data/lib/groupdocs/api/request.rb +91 -91
  116. data/lib/groupdocs/datasource.rb +249 -249
  117. data/lib/groupdocs/datasource/field.rb +39 -39
  118. data/lib/groupdocs/document.rb +1550 -1550
  119. data/lib/groupdocs/document/annotation.rb +421 -421
  120. data/lib/groupdocs/document/annotation/reply.rb +173 -173
  121. data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
  122. data/lib/groupdocs/document/change.rb +56 -56
  123. data/lib/groupdocs/document/field.rb +53 -53
  124. data/lib/groupdocs/document/metadata.rb +32 -32
  125. data/lib/groupdocs/document/rectangle.rb +18 -18
  126. data/lib/groupdocs/document/view.rb +36 -36
  127. data/lib/groupdocs/errors.rb +8 -8
  128. data/lib/groupdocs/job.rb +468 -468
  129. data/lib/groupdocs/questionnaire.rb +530 -530
  130. data/lib/groupdocs/questionnaire/collector.rb +335 -335
  131. data/lib/groupdocs/questionnaire/execution.rb +181 -181
  132. data/lib/groupdocs/questionnaire/page.rb +43 -43
  133. data/lib/groupdocs/questionnaire/question.rb +108 -108
  134. data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
  135. data/lib/groupdocs/signature.rb +380 -380
  136. data/lib/groupdocs/signature/contact.rb +181 -181
  137. data/lib/groupdocs/signature/envelope.rb +747 -747
  138. data/lib/groupdocs/signature/envelope/log.rb +20 -20
  139. data/lib/groupdocs/signature/field.rb +286 -286
  140. data/lib/groupdocs/signature/field/location.rb +71 -71
  141. data/lib/groupdocs/signature/form.rb +804 -804
  142. data/lib/groupdocs/signature/list.rb +92 -92
  143. data/lib/groupdocs/signature/recipient.rb +79 -79
  144. data/lib/groupdocs/signature/role.rb +54 -54
  145. data/lib/groupdocs/signature/shared.rb +6 -6
  146. data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
  147. data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
  148. data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
  149. data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
  150. data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
  151. data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
  152. data/lib/groupdocs/signature/template.rb +124 -124
  153. data/lib/groupdocs/storage.rb +44 -44
  154. data/lib/groupdocs/storage/file.rb +432 -432
  155. data/lib/groupdocs/storage/folder.rb +288 -288
  156. data/lib/groupdocs/storage/package.rb +48 -48
  157. data/lib/groupdocs/storage/provider.rb +32 -32
  158. data/lib/groupdocs/subscription.rb +323 -323
  159. data/lib/groupdocs/subscription/limit.rb +20 -20
  160. data/lib/groupdocs/user.rb +955 -930
  161. data/lib/groupdocs/version.rb +3 -3
  162. data/spec/groupdocs/api/entity_spec.rb +55 -55
  163. data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
  164. data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
  165. data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
  166. data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
  167. data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
  168. data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
  169. data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
  170. data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
  171. data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
  172. data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
  173. data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
  174. data/spec/groupdocs/api/request_spec.rb +112 -112
  175. data/spec/groupdocs/datasource/field_spec.rb +29 -29
  176. data/spec/groupdocs/datasource_spec.rb +145 -145
  177. data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
  178. data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
  179. data/spec/groupdocs/document/annotation_spec.rb +234 -234
  180. data/spec/groupdocs/document/change_spec.rb +39 -39
  181. data/spec/groupdocs/document/field_spec.rb +28 -28
  182. data/spec/groupdocs/document/metadata_spec.rb +21 -21
  183. data/spec/groupdocs/document/rectangle_spec.rb +14 -14
  184. data/spec/groupdocs/document/view_spec.rb +33 -33
  185. data/spec/groupdocs/document_spec.rb +859 -859
  186. data/spec/groupdocs/errors_spec.rb +7 -7
  187. data/spec/groupdocs/job_spec.rb +323 -323
  188. data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
  189. data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
  190. data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
  191. data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
  192. data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
  193. data/spec/groupdocs/questionnaire_spec.rb +295 -295
  194. data/spec/groupdocs/signature/contact_spec.rb +142 -142
  195. data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
  196. data/spec/groupdocs/signature/envelope_spec.rb +384 -384
  197. data/spec/groupdocs/signature/field/location_spec.rb +40 -40
  198. data/spec/groupdocs/signature/field_spec.rb +235 -235
  199. data/spec/groupdocs/signature/form_spec.rb +205 -205
  200. data/spec/groupdocs/signature/list_spec.rb +87 -87
  201. data/spec/groupdocs/signature/recipient_spec.rb +26 -26
  202. data/spec/groupdocs/signature/role_spec.rb +47 -47
  203. data/spec/groupdocs/signature/template_spec.rb +80 -80
  204. data/spec/groupdocs/signature_spec.rb +194 -194
  205. data/spec/groupdocs/storage/file_spec.rb +303 -303
  206. data/spec/groupdocs/storage/folder_spec.rb +270 -270
  207. data/spec/groupdocs/storage/package_spec.rb +38 -38
  208. data/spec/groupdocs/storage/provider_spec.rb +21 -21
  209. data/spec/groupdocs/storage_spec.rb +27 -27
  210. data/spec/groupdocs/subscription/limit_spec.rb +16 -16
  211. data/spec/groupdocs/subscription_spec.rb +74 -74
  212. data/spec/groupdocs/user_spec.rb +257 -257
  213. data/spec/groupdocs_spec.rb +63 -63
  214. data/spec/spec_helper.rb +73 -73
  215. data/spec/support/json/annotation_access_set.json +11 -11
  216. data/spec/support/json/annotation_collaborators_get.json +16 -16
  217. data/spec/support/json/annotation_collaborators_set.json +16 -16
  218. data/spec/support/json/annotation_create.json +12 -12
  219. data/spec/support/json/annotation_list.json +32 -32
  220. data/spec/support/json/annotation_marker_move.json +10 -10
  221. data/spec/support/json/annotation_move.json +8 -8
  222. data/spec/support/json/annotation_remove.json +9 -9
  223. data/spec/support/json/annotation_replies_create.json +9 -9
  224. data/spec/support/json/annotation_replies_get.json +25 -25
  225. data/spec/support/json/annotation_reviewers_get.json +18 -18
  226. data/spec/support/json/comparison_changes.json +46 -46
  227. data/spec/support/json/comparison_compare.json +8 -8
  228. data/spec/support/json/comparison_document.json +10 -10
  229. data/spec/support/json/contact_add.json +12 -12
  230. data/spec/support/json/contacts_get.json +19 -19
  231. data/spec/support/json/contacts_import.json +8 -8
  232. data/spec/support/json/datasource_add.json +8 -8
  233. data/spec/support/json/datasource_get.json +22 -22
  234. data/spec/support/json/datasource_remove.json +8 -8
  235. data/spec/support/json/datasource_update.json +8 -8
  236. data/spec/support/json/delete_account.json +9 -9
  237. data/spec/support/json/document_access_info_get.json +14 -14
  238. data/spec/support/json/document_convert.json +8 -8
  239. data/spec/support/json/document_datasource.json +10 -10
  240. data/spec/support/json/document_fields.json +34 -34
  241. data/spec/support/json/document_formats.json +8 -8
  242. data/spec/support/json/document_metadata.json +15 -15
  243. data/spec/support/json/document_page_images_get.json +20 -20
  244. data/spec/support/json/document_questionnaire_create.json +9 -9
  245. data/spec/support/json/document_questionnaires.json +23 -23
  246. data/spec/support/json/document_sharers_remove.json +8 -8
  247. data/spec/support/json/document_sharers_set.json +16 -16
  248. data/spec/support/json/document_thumbnails.json +24 -24
  249. data/spec/support/json/document_views.json +32 -32
  250. data/spec/support/json/envelope_get.json +46 -46
  251. data/spec/support/json/envelope_logs.json +16 -16
  252. data/spec/support/json/envelope_recipient_add.json +26 -26
  253. data/spec/support/json/envelopes_all.json +48 -48
  254. data/spec/support/json/envelopes_resources.json +31 -31
  255. data/spec/support/json/file_compress.json +8 -8
  256. data/spec/support/json/file_copy.json +14 -14
  257. data/spec/support/json/file_delete.json +5 -5
  258. data/spec/support/json/file_move.json +14 -14
  259. data/spec/support/json/file_upload.json +8 -8
  260. data/spec/support/json/folder_create.json +8 -8
  261. data/spec/support/json/folder_delete.json +5 -5
  262. data/spec/support/json/folder_list.json +22 -22
  263. data/spec/support/json/folder_move.json +8 -8
  264. data/spec/support/json/folder_sharers_get.json +16 -16
  265. data/spec/support/json/folder_sharers_remove.json +8 -8
  266. data/spec/support/json/folder_sharers_set.json +16 -16
  267. data/spec/support/json/form_get.json +21 -21
  268. data/spec/support/json/forms_all.json +23 -23
  269. data/spec/support/json/job_add_url.json +8 -8
  270. data/spec/support/json/job_create.json +8 -8
  271. data/spec/support/json/job_documents.json +40 -40
  272. data/spec/support/json/job_file_add.json +8 -8
  273. data/spec/support/json/job_get.json +30 -30
  274. data/spec/support/json/job_update.json +7 -7
  275. data/spec/support/json/jobs_get.json +58 -58
  276. data/spec/support/json/list_add.json +12 -12
  277. data/spec/support/json/lists_get.json +19 -19
  278. data/spec/support/json/package_create.json +7 -7
  279. data/spec/support/json/questionnaire_collector.json +17 -17
  280. data/spec/support/json/questionnaire_collectors.json +38 -38
  281. data/spec/support/json/questionnaire_collectors_add.json +10 -10
  282. data/spec/support/json/questionnaire_create.json +10 -10
  283. data/spec/support/json/questionnaire_datasources.json +26 -26
  284. data/spec/support/json/questionnaire_execution_add.json +9 -9
  285. data/spec/support/json/questionnaire_execution_status_set.json +8 -8
  286. data/spec/support/json/questionnaire_execution_update.json +8 -8
  287. data/spec/support/json/questionnaire_executions.json +28 -28
  288. data/spec/support/json/questionnaire_get.json +17 -17
  289. data/spec/support/json/questionnaire_remove.json +8 -8
  290. data/spec/support/json/questionnaire_update.json +8 -8
  291. data/spec/support/json/questionnaires_get.json +40 -40
  292. data/spec/support/json/sign_documents.json +16 -16
  293. data/spec/support/json/signature_create.json +12 -12
  294. data/spec/support/json/signature_field_add.json +25 -25
  295. data/spec/support/json/signature_fields_get.json +27 -27
  296. data/spec/support/json/signature_roles_get.json +17 -17
  297. data/spec/support/json/signatures_get.json +19 -19
  298. data/spec/support/json/storage_info.json +10 -10
  299. data/spec/support/json/subscription_plan_get.json +9 -9
  300. data/spec/support/json/subscription_plans_get.json +17 -17
  301. data/spec/support/json/template_get.json +35 -35
  302. data/spec/support/json/template_get_documents.json +15 -15
  303. data/spec/support/json/template_get_recipients.json +20 -20
  304. data/spec/support/json/templates_all.json +37 -37
  305. data/spec/support/json/templates_get.json +21 -21
  306. data/spec/support/json/update_account.json +10 -10
  307. data/spec/support/json/user_area.json +67 -67
  308. data/spec/support/json/user_embed_key.json +38 -38
  309. data/spec/support/json/user_get_embed_key.json +67 -67
  310. data/spec/support/json/user_login.json +67 -67
  311. data/spec/support/json/user_profile_get.json +24 -24
  312. data/spec/support/json/user_providers.json +31 -31
  313. data/spec/support/json/user_roles.json +25 -25
  314. data/spec/support/json/user_users_get.json +27 -27
  315. data/spec/support/shared_examples/api/entity.rb +39 -39
  316. data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
  317. data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
  318. data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
  319. data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
  320. data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
  321. data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
  322. data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
  323. data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
  324. metadata +35 -55
@@ -1,20 +1,20 @@
1
- module GroupDocs
2
- class Subscription::Limit < Api::Entity
3
-
4
- # @attr [Integer] Id
5
- attr_accessor :Id
6
- # @attr [Integer] Min
7
- attr_accessor :Min
8
- # @attr [Integer] Max
9
- attr_accessor :Max
10
- # @attr [String] Description
11
- attr_accessor :Description
12
-
13
- # Human-readable accessors
14
- alias_accessor :id, :Id
15
- alias_accessor :min, :Min
16
- alias_accessor :max, :Max
17
- alias_accessor :description, :Description
18
-
19
- end # Subscription::Limit
20
- end # GroupDocs
1
+ module GroupDocs
2
+ class Subscription::Limit < Api::Entity
3
+
4
+ # @attr [Integer] Id
5
+ attr_accessor :Id
6
+ # @attr [Integer] Min
7
+ attr_accessor :Min
8
+ # @attr [Integer] Max
9
+ attr_accessor :Max
10
+ # @attr [String] Description
11
+ attr_accessor :Description
12
+
13
+ # Human-readable accessors
14
+ alias_accessor :id, :Id
15
+ alias_accessor :min, :Min
16
+ alias_accessor :max, :Max
17
+ alias_accessor :description, :Description
18
+
19
+ end # Subscription::Limit
20
+ end # GroupDocs
@@ -1,930 +1,955 @@
1
- module GroupDocs
2
- class User < Api::Entity
3
-
4
- include Api::Helpers::AccessRights
5
-
6
- #
7
- # Returns current user profile.
8
- #
9
- # @example
10
- # user = GroupDocs::User.get!
11
- # user.first_name
12
- # #=> "John"
13
- #
14
- # @param [Hash] access Access credentials
15
- # @option access [String] :client_id
16
- # @option access [String] :private_key
17
- # @return [GroupDocs::User]
18
- #
19
- def self.get!(access = {})
20
- json = Api::Request.new do |request|
21
- request[:access] = access
22
- request[:method] = :GET
23
- request[:path] = '/mgmt/{{client_id}}/profile'
24
- end.execute!
25
-
26
- new(json[:user])
27
- end
28
-
29
- #
30
- # Updates user account if it's created, otherwise creates new.
31
- #
32
- # @example
33
- # user = GroupDocs::User.new
34
- # user.primary_email = 'john@smith.com'
35
- # user.nickname = 'johnsmith'
36
- # user.first_name = 'John'
37
- # user.last_name = 'Smith'
38
- # # make sure to save user as it has updated attributes
39
- # user = GroupDocs::User.update_account!(user)
40
- #
41
- # @param [GroupDocs::User] user
42
- # @param [Hash] access Access credentials
43
- # @option access [String] :client_id
44
- # @option access [String] :private_key
45
- # @return [GroupDocs::User]
46
- #
47
- def self.update_account!(user, access = {})
48
- user.is_a?(GroupDocs::User) or raise ArgumentError,
49
- "User should be GroupDocs::User object, received: #{user.inspect}"
50
-
51
- data = user.to_hash
52
-
53
- json = Api::Request.new do |request|
54
- request[:access] = access
55
- request[:method] = :PUT
56
- request[:path] = "/mgmt/{{client_id}}/account/users/#{user.nickname}"
57
- request[:request_body] = data
58
- end.execute!
59
-
60
- GroupDocs::User.new data.merge(json)
61
- end
62
-
63
- #
64
- # Delete account user.
65
- #
66
- # @example
67
- # user = GroupDocs::User.get!
68
- # GroupDocs::User.delete!(user.users!.last)
69
- # #=> "826e3b54e009ce51"
70
- #
71
- # @param [GroupDocs::User] user
72
- # @param [Hash] access Access credentials
73
- # @option access [String] :client_id
74
- # @option access [String] :private_key
75
- # @return [String]
76
- #
77
- # @raise [ArgumentError] if user is not GroupDocs::User object
78
- #
79
- def self.delete!(user, access = {})
80
- user.is_a?(GroupDocs::User) or raise ArgumentError,
81
- "User should be GroupDocs::User object, received: #{user.inspect}"
82
-
83
- json = Api::Request.new do |request|
84
- request[:access] = access
85
- request[:method] = :DELETE
86
- request[:path] = "/mgmt/{{client_id}}/account/users/#{user.primary_email}"
87
- end.execute!
88
-
89
- json[:guid]
90
- end
91
-
92
- #
93
- # Generates new user embed key.
94
- #
95
- # @example
96
- # GroupDocs::User.generate_embed_key!('test-area')
97
- # #=> "60a06ef8f23a49cf807977f1444fbdd8"
98
- #
99
- # @param [String] area
100
- # @param [Hash] access Access credentials
101
- # @option access [String] :client_id
102
- # @option access [String] :private_key
103
- # @return [String]
104
- #
105
- def self.generate_embed_key!(area, access = {})
106
- json = Api::Request.new do |request|
107
- request[:access] = access
108
- request[:method] = :GET
109
- request[:path] = "/mgmt/{{client_id}}/embedkey/new/#{area}"
110
- end.execute!
111
-
112
- json[:key][:guid]
113
- end
114
-
115
- #
116
- # Get user embed key. Generate new embed key if area not exists.
117
- #
118
- # @example
119
- # GroupDocs::User.get_embed_key!('test-area')
120
- # #=> "60a06ef8f23a49cf807977f1444fbdd8"
121
- #
122
- # @param [String] area
123
- # @param [Hash] access Access credentials
124
- # @option access [String] :client_id
125
- # @option access [String] :private_key
126
- # @return [String]
127
- #
128
- def self.get_embed_key!(area, access = {})
129
- json = Api::Request.new do |request|
130
- request[:access] = access
131
- request[:method] = :GET
132
- request[:path] = "/mgmt/{{client_id}}/embedkey/#{area}"
133
- end.execute!
134
-
135
- json[:key][:guid]
136
- end
137
-
138
- #
139
- # Get area name by embed key.
140
- #
141
- # @example
142
- # GroupDocs::User.area!('60a06eg8f23a49cf807977f1444fbdd8')
143
- # #=> "test-area"
144
- #
145
- # @param [String] embed_key
146
- # @param [Hash] access Access credentials
147
- # @option access [String] :client_id
148
- # @option access [String] :private_key
149
- # @return [String]
150
- #
151
- def self.area!(embed_key, access = {})
152
- json = Api::Request.new do |request|
153
- request[:access] = access
154
- request[:method] = :GET
155
- request[:path] = "/mgmt/{{client_id}}/embedkey/guid/#{embed_key}"
156
- end.execute!
157
-
158
- json[:key][:area]
159
- end
160
-
161
- #
162
- # Returns an array of storage providers.
163
- #
164
- # @example
165
- # providers = GroupDocs::User.providers!
166
- # providers.first.provider
167
- # #=> "Dropbox"
168
- #
169
- # @param [Hash] access Access credentials
170
- # @option access [String] :client_id
171
- # @option access [String] :private_key
172
- # @return [Array<GroupDocs::Storage::Provider>]
173
- #
174
- def self.providers!(access = {})
175
- json = Api::Request.new do |request|
176
- request[:access] = access
177
- request[:method] = :GET
178
- request[:path] = '/mgmt/{{client_id}}/storages'
179
- end.execute!
180
-
181
- json[:providers].map do |provider|
182
- Storage::Provider.new(provider)
183
- end
184
- end
185
-
186
- #
187
- # Adds a new storage provider configuration.
188
- #
189
- # @param [String] provider Storage provider name
190
- # @param [Hash] access Access credentials
191
- # @param [Array] provider_info
192
- # @option access [String] :client_id
193
- # @option access [String] :private_key
194
- #
195
- def add_provider!(provider, provider_info = {}, access = {})
196
- Api::Request.new do |request|
197
- request[:access] = access
198
- request[:method] = :POST
199
- request[:path] = "/mgmt/{{client_id}}/storages/#{provider}"
200
- request[:request_body] = provider_info
201
- end.execute!
202
-
203
- end
204
-
205
- #
206
- # Updates user's storage provider configuration.
207
- #
208
- # @param [String] provider Storage provider name
209
- # @param [Hash] access Access credentials
210
- # @param [Array] provider_info
211
- # @option access [String] :client_id
212
- # @option access [String] :private_key
213
- #
214
- def update_provider!(provider, provider_info = {}, access = {})
215
- Api::Request.new do |request|
216
- request[:access] = access
217
- request[:method] = :PUT
218
- request[:path] = "/mgmt/{{client_id}}/storages/#{provider}"
219
- request[:request_body] = provider_info
220
- end.execute!
221
-
222
- end
223
-
224
-
225
- #
226
- # Revoke.
227
- #
228
- # @param [Hash] access Access credentials
229
- # @option access [String] :client_id
230
- # @option access [String] :private_key
231
- #
232
- def self.revoke!(access = {})
233
- Api::Request.new do |request|
234
- request[:access] = access
235
- request[:method] = :PUT
236
- request[:path] = "/mgmt/{{client_id}}/revoke"
237
- end.execute!
238
-
239
- end
240
- #
241
- # Logins user using user name and password.
242
- #
243
- # @example
244
- # user = GroupDocs::User.login!('doe@john.com', 'password')
245
- # user.first_name
246
- # #=> "John"
247
- #
248
- # @return [GroupDocs::User]
249
- #
250
- def self.login!(email, password)
251
- json = Api::Request.new do |request|
252
- request[:sign] = false
253
- request[:method] = :POST
254
- request[:path] = "/shared/users/#{email}/logins"
255
- request[:request_body] = password
256
- end.execute!
257
-
258
- new(json[:user])
259
- end
260
-
261
- #
262
- # Logins user using user name and password.
263
- #
264
- # @param [String]guid
265
- # @param [Hash] options
266
- # @option [String] :filename File name
267
- # @option [Boolean] :render Render
268
- #
269
- def self.download!(path, name, guid, options = {})
270
- api = Api::Request.new do |request|
271
- request[:sign] = false
272
- request[:method] = :DOWNLOAD
273
- request[:path] = "/shared/files/#{guid}"
274
- end
275
- api.add_params(options)
276
- response = api.execute!
277
-
278
- filepath = "#{path}/#{name}"
279
- Object::File.open(filepath, 'wb') do |file|
280
- file.write(response)
281
- end
282
-
283
- filepath
284
- end
285
-
286
- #
287
- # Get file in xml.
288
- #
289
- #@param [String] guid
290
- #
291
- def self.get_xml!(path, name, guid)
292
- response = Api::Request.new do |request|
293
- request[:sign] = false
294
- request[:method] = :DOWNLOAD
295
- request[:path] = "/shared/files/#{guid}/xml"
296
- end.execute!
297
-
298
- filepath = "#{path}/#{name}"
299
- Object::File.open(filepath, 'wb') do |file|
300
- file.write(response)
301
- end
302
-
303
- filepath
304
- end
305
-
306
- #
307
- # Get file in html.
308
- #
309
- #@param [String] guid
310
- #
311
- def self.get_html!(path, name, guid)
312
- response = Api::Request.new do |request|
313
- request[:sign] = false
314
- request[:method] = :DOWNLOAD
315
- request[:path] = "/shared/files/#{guid}/html"
316
- end.execute!
317
-
318
- filepath = "#{path}/#{name}"
319
- Object::File.open(filepath, 'wb') do |file|
320
- file.write(response)
321
- end
322
-
323
- filepath
324
- end
325
-
326
- #
327
- # Get file in html.
328
- #
329
- #@param [String] path
330
- #
331
- def get_packages!(path)
332
- response = Api::Request.new do |request|
333
- request[:sign] = false
334
- request[:method] = :GET
335
- request[:path] = "/shared/packages/#{path}"
336
- end.execute!
337
-
338
- Object::File.open(path, 'wb') do |file|
339
- file.write(response)
340
- end
341
-
342
- path
343
- end
344
-
345
- # @attr [Integer] id
346
- attr_accessor :id
347
- # @attr [String] guid
348
- attr_accessor :guid
349
- # @attr [String] nickname
350
- attr_accessor :nickname
351
- # @attr [String] firstname
352
- attr_accessor :firstname
353
- # @attr [String] lastname
354
- attr_accessor :lastname
355
- # @attr [String] primary_email
356
- attr_accessor :primary_email
357
- # @attr [String] private_key
358
- attr_accessor :private_key
359
- # @attr [String] password_salt
360
- attr_accessor :password_salt
361
- # @attr [Integer] claimed_id
362
- attr_accessor :claimed_id
363
- # @attr [String] token
364
- attr_accessor :token
365
- # @attr [String] storage
366
- attr_accessor :storage
367
- # @attr [String] photo
368
- attr_accessor :photo
369
- # @attr [Boolean] active
370
- attr_accessor :active
371
- # @attr [Boolean] news_enabled
372
- attr_accessor :news_enabled
373
- # @attr [Time] signed_up_on
374
- attr_accessor :signed_up_on
375
- # @attr [Integer] color
376
- attr_accessor :color
377
- # @attr [String] customEmailMessage
378
- attr_accessor :customEmailMessage
379
- # @attr [Array] roles
380
- attr_accessor :roles
381
-
382
- # added in release 1.5.8
383
- # @attr [List] avatar
384
- attr_accessor :avatar
385
-
386
- # added in release 1.7.0
387
- # @attr [Boolean] trial
388
- attr_accessor :trial
389
- # @attr [Boolean] news_eanbled
390
- attr_accessor :news_eanbled
391
- # @attr [Boolean] alerts_eanbled
392
- attr_accessor :alerts_eanbled
393
- # @attr [Boolean] support_eanbled
394
- attr_accessor :support_eanbled
395
- # @attr [Boolean] support_email
396
- attr_accessor :support_email
397
- # @attr [String] apps
398
- attr_accessor :apps
399
- # @attr [Boolean] annotation_branded
400
- attr_accessor :annotation_branded
401
- # @attr [Boolean] viewer_branded
402
- attr_accessor :viewer_branded
403
- # @attr [Boolean] is_real_time_broadcast_enabled
404
- attr_accessor :is_real_time_broadcast_enabled
405
- # @attr [Boolean] is_scroll_broadcast_enabled
406
- attr_accessor :is_scroll_broadcast_enabled
407
- # @attr [Boolean] is_zoom_broadcast_enabled
408
- attr_accessor :is_zoom_broadcast_enabled
409
- # @attr [List] annotation_logo
410
- attr_accessor :annotation_logo
411
- # @attr [List] pointer_tool_cursor
412
- attr_accessor :pointer_tool_cursor
413
- # @attr [Integer] annotation_header_options
414
- attr_accessor :annotation_header_options
415
- # @attr [Boolean] is_annotation_navigation_widget_enabled
416
- attr_accessor :is_annotation_navigation_widget_enabled
417
- # @attr [Boolean] is_annotation_zoom_widget_enabled
418
- attr_accessor :is_annotation_zoom_widget_enabled
419
- # @attr [Boolean] is_annotation_download_widget_enabled
420
- attr_accessor :is_annotation_download_widget_enabled
421
- # @attr [Boolean] is_annotation_print_widget_enabled
422
- attr_accessor :is_annotation_print_widget_enabled
423
- # @attr [Boolean] is_annotation_help_widget_enabled
424
- attr_accessor :is_annotation_help_widget_enabled
425
- # @attr [Boolean] is_right_panel_enabled
426
- attr_accessor :is_right_panel_enabled
427
- # @attr [Boolean] is_thumbnails_panel_enabled
428
- attr_accessor :is_thumbnails_panel_enabled
429
- # @attr [Boolean] is_standard_header_always_shown
430
- attr_accessor :is_standard_header_always_shown
431
- # @attr [Boolean] is_toolbar_enabled
432
- attr_accessor :is_toolbar_enabled
433
- # @attr [Boolean] is_text_annotation_button_enabled
434
- attr_accessor :is_text_annotation_button_enabled
435
- # @attr [Boolean] is_rectangle_annotation_button_enabled
436
- attr_accessor :is_rectangle_annotation_button_enabled
437
- # @attr [Boolean] is_point_annotation_button_enabled
438
- attr_accessor :is_point_annotation_button_enabled
439
- # @attr [Boolean] is_strikeout_annotation_button_enabled
440
- attr_accessor :is_strikeout_annotation_button_enabled
441
- # @attr [Boolean] is_polyline_annotation_button_enabled
442
- attr_accessor :is_polyline_annotation_button_enabled
443
- # @attr [Boolean] is_typewriter_annotation_button_enabled
444
- attr_accessor :is_typewriter_annotation_button_enabled
445
- # @attr [Boolean] is_watermark_annotation_button_enabled
446
- attr_accessor :is_watermark_annotation_button_enabled
447
- # @attr [Boolean] is_annotation_document_name_shown
448
- attr_accessor :is_annotation_document_name_shown
449
- # @attr [List] annotation_navigation_icons
450
- attr_accessor :annotation_navigation_icons
451
- # @attr [List] annotation_tool_icons
452
- attr_accessor :annotation_tool_icons
453
- # @attr [Integer] annotation_background_color
454
- attr_accessor :annotation_background_color
455
- # @attr [Integer] viewer_logo
456
- attr_accessor :viewer_logo
457
- # @attr [Integer] viewer_options
458
- attr_accessor :viewer_options
459
- # @attr [Boolean] is_viewer_navigation_widget_enabled
460
- attr_accessor :is_viewer_navigation_widget_enabled
461
- # @attr [Boolean] is_viewer_zoom_widget_enabled
462
- attr_accessor :is_viewer_zoom_widget_enabled
463
- # @attr [Boolean] is_viewer_download_widget_enabled
464
- attr_accessor :is_viewer_download_widget_enabled
465
- # @attr [Boolean] is_viewer_print_widget_enabled
466
- attr_accessor :is_viewer_print_widget_enabled
467
- # @attr [Boolean] is_viewer_help_widget_enabled
468
- attr_accessor :is_viewer_help_widget_enabled
469
- # @attr [Boolean] is_viewer_document_name_shown
470
- attr_accessor :is_viewer_document_name_shown
471
- # @attr [Boolean] isviewer_right_mouse_button_menu_enabled
472
- attr_accessor :isviewer_right_mouse_button_menu_enabled
473
- # @attr [Time] signedinOn
474
- attr_accessor :signedinOn
475
- # @attr [Integer] signin_count
476
- attr_accessor :signin_count
477
- # @attr [Boolean] signature_watermark_enabled
478
- attr_accessor :signature_watermark_enabled
479
- # @attr [Boolean] signature_desktop_notifications
480
- attr_accessor :signature_desktop_notifications
481
- # @attr [Integer] webhook_notification_retries
482
- attr_accessor :webhook_notification_retries
483
- # @attr [String] webhook_notification_failed_recipients
484
- attr_accessor :webhook_notification_failed_recipients
485
- # @attr [String] signature_color
486
- attr_accessor :signature_color
487
- # @attr [Boolean] signature_save_field_changes_automatically
488
- attr_accessor :signature_save_field_changes_automatically
489
- # @attr [Boolean] signature_use_custom_email_templates
490
- attr_accessor :signature_use_custom_email_templates
491
- # @attr [String] signature_envelope_sent_owner_template
492
- attr_accessor :signature_envelope_sent_owner_template
493
- # @attr [String] signature_envelope_sent_other_template
494
- attr_accessor :signature_envelope_sent_other_template
495
- # @attr [String] signature_envelope_completed_template
496
- attr_accessor :signature_envelope_completed_template
497
- # @attr [String] signature_envelope_signed_template
498
- attr_accessor :signature_envelope_signed_template
499
- # @attr [String] signature_envelope_declined_template
500
- attr_accessor :signature_envelope_declined_template
501
- # @attr [String] signature_envelope_failed_template
502
- attr_accessor :signature_envelope_failed_template
503
- # @attr [String] signature_envelope_cancelled_template
504
- attr_accessor :signature_envelope_cancelled_template
505
- # @attr [String] signature_envelope_expired_template
506
- attr_accessor :signature_envelope_expired_template
507
- # @attr [String] signature_envelope_step_expired_template
508
- attr_accessor :signature_envelope_step_expired_template
509
- # @attr [String] signature_envelope_recipient_reminder_template
510
- attr_accessor :signature_envelope_recipient_reminder_template
511
- # @attr [String] signature_form_signed_template
512
- attr_accessor :signature_form_signed_template
513
- # @attr [Boolean] signature_form_require_user_auth_for_sign
514
- attr_accessor :signature_form_require_user_auth_for_sign
515
- # @attr [Boolean] signature_form_request_user_auth_by_photo
516
- attr_accessor :signature_form_request_user_auth_by_photo
517
- # @attr [Boolean] signature_form_require_user_identity_validation
518
- attr_accessor :signature_form_require_user_identity_validation
519
- # @attr [Boolean] signature_envelope_require_user_auth_for_sign
520
- attr_accessor :signature_envelope_require_user_auth_for_sign
521
- # @attr [Boolean] signature_envelope_request_user_auth_by_photo
522
- attr_accessor :signature_envelope_request_user_auth_by_photo
523
- # @attr [Boolean] signature_enable_uploaded_signature
524
- attr_accessor :signature_enable_uploaded_signature
525
- # @attr [Boolean] signature_enable_typed_signature
526
- attr_accessor :signature_enable_typed_signature
527
- # @attr [Boolean] signature_enable_envelope_comment
528
- attr_accessor :signature_enable_envelope_comment
529
- # @attr [Boolean] signature_enable_form_comment
530
- attr_accessor :signature_enable_form_comment
531
-
532
- # added in release 1.9.0
533
- # @attr [Boolean] is_text_replacement_annotation_button_enabled
534
- attr_accessor :is_text_replacement_annotation_button_enabled
535
- # @attr [Boolean] is_arrow_annotation_button_enabled
536
- attr_accessor :is_arrow_annotation_button_enabled
537
- # @attr [Boolean] is_text_redaction_annotation_button_enabled
538
- attr_accessor :is_text_redaction_annotation_button_enabled
539
- # @attr [Boolean] is_resource_redaction_annotation_button_enabled
540
- attr_accessor :is_resource_redaction_annotation_button_enabled
541
- # @attr [Boolean] is_text_underline_annotation_button_enabled
542
- attr_accessor :is_text_underline_annotation_button_enabled
543
- # @attr [Boolean] is_distance_annotation_button_enabled
544
- attr_accessor :is_distance_annotation_button_enabled
545
-
546
-
547
- # Human-readable accessors
548
- alias_accessor :first_name, :firstname
549
- alias_accessor :last_name, :lastname
550
- alias_accessor :custom_email_message, :customEmailMessage
551
-
552
-
553
- #
554
- # Converts access rights to human-readable format flag.
555
- # @return [Array<Symbol>]
556
- #
557
- def access_rights
558
- convert_byte_to_access_rights @access_rights if @access_rights
559
- end
560
-
561
- #
562
- # Converts access rights to machine-readable format flag.
563
- # @param [Array<Symbol>] rights
564
- #
565
- def access_rights=(rights)
566
- if rights.is_a?(Array)
567
- rights = convert_access_rights_to_byte(rights)
568
- end
569
- @access_rights = rights
570
- end
571
-
572
- #
573
- # Converts timestamp which is return by API server to Time object.
574
- #
575
- # @return [Time]
576
- #
577
- def signed_up_on
578
- Time.at(@signed_up_on / 1000)
579
- end
580
-
581
- # Compatibility with response JSON
582
- alias_method :pkey=, :private_key=
583
- alias_method :pswd_salt=, :password_salt=
584
- alias_method :signedupOn=, :signed_up_on=
585
-
586
- #
587
- # Updates user profile.
588
- #
589
- # @example
590
- # user = GroupDocs::User.get!
591
- # user.first_name = 'John'
592
- # user.last_name = 'Smith'
593
- # user.update!
594
- #
595
- # @param [Hash] access Access credentials
596
- # @option access [String] :client_id
597
- # @option access [String] :private_key
598
- #
599
- def update!(access = {})
600
- Api::Request.new do |request|
601
- request[:access] = access
602
- request[:method] = :PUT
603
- request[:path] = '/mgmt/{{client_id}}/profile'
604
- request[:request_body] = to_hash
605
- end.execute!
606
- end
607
-
608
- #
609
- # Updates user profile.
610
- #
611
- # @example
612
- # user = GroupDocs::User.get!
613
- # old_password = user.password_salt
614
- # new_password = 'Smith'
615
- # user.update_password!
616
- # @param [Array] pas_info ([old_password, new_password, reset_token])
617
- # @param [Hash] access Access credentials
618
- # @option access [String] :client_id
619
- # @option access [String] :private_key
620
- #
621
- def self.update_password!(pas_info = {}, access = {})
622
- Api::Request.new do |request|
623
- request[:access] = access
624
- request[:method] = :PUT
625
- request[:path] = '/mgmt/{{client_id}}/profile/password'
626
- request[:request_body] = pas_info
627
- end.execute!
628
- end
629
-
630
- #
631
- # Get user profile by reset token
632
- #
633
- # @param [String] callerId
634
- # @param [Array] options
635
- # @option [Hash] :token
636
- # @param [Hash] access Access credentials
637
- # @option access [String] :client_id
638
- # @option access [String] :private_key
639
- # @return [String]
640
- #
641
- def self.reset_token!(caller_id, options ={}, access = {})
642
- api = Api::Request.new do |request|
643
- request[:access] = access
644
- request[:method] = :GET
645
- request[:path] = "/mgmt/#{caller_id}/reset-tokens"
646
- end
647
- api.add_params(options)
648
- api.execute!
649
-
650
- end
651
-
652
- #
653
- # Get user profile by reset token
654
- #
655
- # @param [String] callerId
656
- # @param [Array] options
657
- # @option [Hash] :token
658
- # @param [Hash] access Access credentials
659
- # @option access [String] :client_id
660
- # @option access [String] :private_key
661
- # @return [String]
662
- #
663
- def self.verif_token!(caller_id, options ={}, access = {})
664
- api = Api::Request.new do |request|
665
- request[:access] = access
666
- request[:method] = :GET
667
- request[:path] = "/mgmt/#{caller_id}/verif-tokens"
668
- end
669
- api.add_params(options)
670
- api.execute!
671
-
672
- end
673
-
674
- #
675
- # Get user profile by verif token
676
- #
677
- # @param [Hash] access Access credentials
678
- # @option access [String] :client_id
679
- # @option access [String] :private_key
680
- # @return [Array<GroupDocs::User>]
681
- #
682
- def users!(access = {})
683
- json = Api::Request.new do |request|
684
- request[:access] = access
685
- request[:method] = :GET
686
- request[:path] = '/mgmt/{{client_id}}/account/users'
687
- end.execute!
688
-
689
- json[:users].map do |user|
690
- GroupDocs::User.new(user)
691
- end
692
- end
693
-
694
- #
695
- # Get user profile by claimed token
696
- #
697
- # @param [String] callerId
698
- # @param [Array] options
699
- # @option [Hash] :token
700
- # @param [Hash] access Access credentials
701
- # @option access [String] :client_id
702
- # @option access [String] :private_key
703
- # @return [String]
704
- #
705
- def self.claimed_token!(caller_id, options ={}, access = {})
706
- api = Api::Request.new do |request|
707
- request[:access] = access
708
- request[:method] = :GET
709
- request[:path] = "/mgmt/#{caller_id}/claimed-tokens"
710
- end
711
- api.add_params(options)
712
- api.execute!
713
-
714
- end
715
-
716
- #
717
- # Get alien user profile
718
- #
719
- # @param [String] callerId
720
- # @param [Hash] access Access credentials
721
- # @option access [String] :client_id
722
- # @option access [String] :private_key
723
- # @return [String]
724
- #
725
- def self.get_profile!(caller_id, access = {})
726
- json = Api::Request.new do |request|
727
- request[:access] = access
728
- request[:method] = :GET
729
- request[:path] = "/mgmt/#{caller_id}/user/{{client_id}}/profile"
730
- end.execute!
731
-
732
- json[:user]
733
- end
734
-
735
- #
736
- # Update alien user profile
737
- #
738
- # @param [String] callerId
739
- # @param [Hash] access Access credentials
740
- # @option access [String] :client_id
741
- # @option access [String] :private_key
742
- # @return [String]
743
- #
744
- def update_profile!(caller_id, access = {})
745
- json = Api::Request.new do |request|
746
- request[:access] = access
747
- request[:method] = :PUT
748
- request[:path] = "/mgmt/#{caller_id}/user/{{client_id}}/profile"
749
- request[:request_body] = to_hash
750
- end.execute!
751
-
752
- json[:user_guid]
753
- end
754
-
755
- #
756
- # Create new user
757
- #
758
- # @param [String] callerId
759
- # @param [Hash] access Access credentials
760
- # @option access [String] :client_id
761
- # @option access [String] :private_key
762
- # @return [GroupDocs::User]
763
- #
764
- def create_user!(caller_id, access = {})
765
- json = Api::Request.new do |request|
766
- request[:access] = access
767
- request[:method] = :POST
768
- request[:path] = "/mgmt/#{caller_id}/user"
769
- request[:request_body] = to_hash
770
- end.execute!
771
-
772
- end
773
-
774
- #
775
- # Create new login
776
- #
777
- # @param [String] callerId
778
- # @param [Hash] options
779
- # @option options [String] :password
780
- # @param [Hash] access Access credentials
781
- # @option access [String] :client_id
782
- # @option access [String] :private_key
783
- # @return [GroupDocs::User]
784
- #
785
- def self.create_login!(caller_id, options = {}, access = {})
786
- api = Api::Request.new do |request|
787
- request[:access] = access
788
- request[:method] = :POST
789
- request[:path] = "/mgmt/#{caller_id}/user/{{client_id}}/logins"
790
- end
791
- api.add_params(options)
792
- api.execute!
793
-
794
- end
795
-
796
- #
797
- # Change alien user password.
798
- #
799
- # @example
800
- # user = GroupDocs::User.get!
801
- # old_password = user.password_salt
802
- # new_password = 'Smith'
803
- # user.update_password!
804
- #
805
- # @param [String] callerId
806
- # @param [Array] pas_info ([old_password, new_password, reset_token])
807
- # @param [Hash] access Access credentials
808
- # @option access [String] :client_id
809
- # @option access [String] :private_key
810
- #
811
- def self.update_alien_password!(caller_id, pas_info = {}, access = {})
812
- json = Api::Request.new do |request|
813
- request[:access] = access
814
- request[:method] = :PUT
815
- request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}password"
816
- request[:request_body] = pas_info
817
- end.execute!
818
-
819
- json[:user_guid]
820
- end
821
-
822
- #
823
- # Change alien user password.
824
- #
825
- # @param [String] callerId
826
- # @param [Hash] access Access credentials
827
- # @option access [String] :client_id
828
- # @option access [String] :private_key
829
- #
830
- def self.reset_alien_password!(caller_id, access = {})
831
- json = Api::Request.new do |request|
832
- request[:access] = access
833
- request[:method] = :DELETE
834
- request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}password"
835
- end.execute!
836
-
837
- json[:user_name]
838
- end
839
-
840
- #
841
- # Returns an array of roles.
842
- #
843
- # @param [Hash] access Access credentials
844
- # @option access [String] :client_id
845
- # @option access [String] :private_key
846
- # @return [Array]
847
- #
848
- def roles!(access = {})
849
- json = Api::Request.new do |request|
850
- request[:access] = access
851
- request[:method] = :GET
852
- request[:path] = '/mgmt/{{client_id}}/roles'
853
- end.execute!
854
-
855
- json[:roles]
856
- end
857
-
858
- #
859
- # Returns an array of roles.
860
- #
861
- # # @param [String] callerId
862
- # @param [Hash] access Access credentials
863
- # @option access [String] :client_id
864
- # @option access [String] :private_key
865
- # @return [Array]
866
- #
867
- def self.user_roles!(caller_id, access = {})
868
- json = Api::Request.new do |request|
869
- request[:access] = access
870
- request[:method] = :GET
871
- request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}/roles"
872
- end.execute!
873
-
874
- json[:roles]
875
- end
876
-
877
- #
878
- # Set user roles.
879
- #
880
- # @param [String] callerId
881
- # @param [Hash] role_info (:id, :name)
882
- # @param [Hash] access Access credentials
883
- # @option access [String] :client_id
884
- # @option access [String] :private_key
885
- # @return [Array]
886
- #
887
- def self.set_user_roles!(caller_id, role_info = {}, access = {})
888
- Api::Request.new do |request|
889
- request[:access] = access
890
- request[:method] = :GET
891
- request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}/roles"
892
- request[:request_body] = role_info
893
- end.execute!
894
-
895
- end
896
-
897
- #
898
- # Returns an account information
899
- #
900
- # @param [Hash] access Access credentials
901
- # @option access [String] :client_id
902
- # @option access [String] :private_key
903
- # @return [Array]
904
- #
905
- def self.get_account!(access = {})
906
- Api::Request.new do |request|
907
- request[:access] = access
908
- request[:method] = :GET
909
- request[:path] = "/mgmt/{{client_id}}/account"
910
- end.execute!
911
- end
912
-
913
- #
914
- # Remove account user.
915
- #
916
- # @param [Hash] access Access credentials
917
- # @option access [String] :client_id
918
- # @option access [String] :private_key
919
- # @return [String]
920
- #
921
- def self.remove_account!(access = {})
922
- Api::Request.new do |request|
923
- request[:access] = access
924
- request[:method] = :DELETE
925
- request[:path] = "/mgmt/{{client_id}}/account"
926
- end.execute!
927
- end
928
-
929
- end # User
930
- end # GroupDocs
1
+ module GroupDocs
2
+ class User < Api::Entity
3
+
4
+ include Api::Helpers::AccessRights
5
+
6
+ #
7
+ # Returns current user profile.
8
+ #
9
+ # @example
10
+ # user = GroupDocs::User.get!
11
+ # user.first_name
12
+ # #=> "John"
13
+ #
14
+ # @param [Hash] access Access credentials
15
+ # @option access [String] :client_id
16
+ # @option access [String] :private_key
17
+ # @return [GroupDocs::User]
18
+ #
19
+ def self.get!(access = {})
20
+ json = Api::Request.new do |request|
21
+ request[:access] = access
22
+ request[:method] = :GET
23
+ request[:path] = '/mgmt/{{client_id}}/profile'
24
+ end.execute!
25
+
26
+ new(json[:user])
27
+ end
28
+
29
+ #
30
+ # Updates user account if it's created, otherwise creates new.
31
+ #
32
+ # @example
33
+ # user = GroupDocs::User.new
34
+ # user.primary_email = 'john@smith.com'
35
+ # user.nickname = 'johnsmith'
36
+ # user.first_name = 'John'
37
+ # user.last_name = 'Smith'
38
+ # # make sure to save user as it has updated attributes
39
+ # user = GroupDocs::User.update_account!(user)
40
+ #
41
+ # @param [GroupDocs::User] user
42
+ # @param [Hash] access Access credentials
43
+ # @option access [String] :client_id
44
+ # @option access [String] :private_key
45
+ # @return [GroupDocs::User]
46
+ #
47
+ def self.update_account!(user, access = {})
48
+ user.is_a?(GroupDocs::User) or raise ArgumentError,
49
+ "User should be GroupDocs::User object, received: #{user.inspect}"
50
+
51
+ data = user.to_hash
52
+
53
+ json = Api::Request.new do |request|
54
+ request[:access] = access
55
+ request[:method] = :PUT
56
+ request[:path] = "/mgmt/{{client_id}}/account/users/#{user.nickname}"
57
+ request[:request_body] = data
58
+ end.execute!
59
+
60
+ GroupDocs::User.new data.merge(json)
61
+ end
62
+
63
+ #
64
+ # Delete account user.
65
+ #
66
+ # @example
67
+ # user = GroupDocs::User.get!
68
+ # GroupDocs::User.delete!(user.users!.last)
69
+ # #=> "826e3b54e009ce51"
70
+ #
71
+ # @param [GroupDocs::User] user
72
+ # @param [Hash] access Access credentials
73
+ # @option access [String] :client_id
74
+ # @option access [String] :private_key
75
+ # @return [String]
76
+ #
77
+ # @raise [ArgumentError] if user is not GroupDocs::User object
78
+ #
79
+ def self.delete!(user, access = {})
80
+ user.is_a?(GroupDocs::User) or raise ArgumentError,
81
+ "User should be GroupDocs::User object, received: #{user.inspect}"
82
+
83
+ json = Api::Request.new do |request|
84
+ request[:access] = access
85
+ request[:method] = :DELETE
86
+ request[:path] = "/mgmt/{{client_id}}/account/users/#{user.primary_email}"
87
+ end.execute!
88
+
89
+ json[:guid]
90
+ end
91
+
92
+ #
93
+ # Generates new user embed key.
94
+ #
95
+ # @example
96
+ # GroupDocs::User.generate_embed_key!('test-area')
97
+ # #=> "60a06ef8f23a49cf807977f1444fbdd8"
98
+ #
99
+ # @param [String] area
100
+ # @param [Hash] access Access credentials
101
+ # @option access [String] :client_id
102
+ # @option access [String] :private_key
103
+ # @return [String]
104
+ #
105
+ def self.generate_embed_key!(area, access = {})
106
+ json = Api::Request.new do |request|
107
+ request[:access] = access
108
+ request[:method] = :GET
109
+ request[:path] = "/mgmt/{{client_id}}/embedkey/new/#{area}"
110
+ end.execute!
111
+
112
+ json[:key][:guid]
113
+ end
114
+
115
+ #
116
+ # Get user embed key. Generate new embed key if area not exists.
117
+ #
118
+ # @example
119
+ # GroupDocs::User.get_embed_key!('test-area')
120
+ # #=> "60a06ef8f23a49cf807977f1444fbdd8"
121
+ #
122
+ # @param [String] area
123
+ # @param [Hash] access Access credentials
124
+ # @option access [String] :client_id
125
+ # @option access [String] :private_key
126
+ # @return [String]
127
+ #
128
+ def self.get_embed_key!(area, access = {})
129
+ json = Api::Request.new do |request|
130
+ request[:access] = access
131
+ request[:method] = :GET
132
+ request[:path] = "/mgmt/{{client_id}}/embedkey/#{area}"
133
+ end.execute!
134
+
135
+ json[:key][:guid]
136
+ end
137
+
138
+ #
139
+ # Get area name by embed key.
140
+ #
141
+ # @example
142
+ # GroupDocs::User.area!('60a06eg8f23a49cf807977f1444fbdd8')
143
+ # #=> "test-area"
144
+ #
145
+ # @param [String] embed_key
146
+ # @param [Hash] access Access credentials
147
+ # @option access [String] :client_id
148
+ # @option access [String] :private_key
149
+ # @return [String]
150
+ #
151
+ def self.area!(embed_key, access = {})
152
+ json = Api::Request.new do |request|
153
+ request[:access] = access
154
+ request[:method] = :GET
155
+ request[:path] = "/mgmt/{{client_id}}/embedkey/guid/#{embed_key}"
156
+ end.execute!
157
+
158
+ json[:key][:area]
159
+ end
160
+
161
+ #
162
+ # Returns an array of storage providers.
163
+ #
164
+ # @example
165
+ # providers = GroupDocs::User.providers!
166
+ # providers.first.provider
167
+ # #=> "Dropbox"
168
+ #
169
+ # @param [Hash] access Access credentials
170
+ # @option access [String] :client_id
171
+ # @option access [String] :private_key
172
+ # @return [Array<GroupDocs::Storage::Provider>]
173
+ #
174
+ def self.providers!(access = {})
175
+ json = Api::Request.new do |request|
176
+ request[:access] = access
177
+ request[:method] = :GET
178
+ request[:path] = '/mgmt/{{client_id}}/storages'
179
+ end.execute!
180
+
181
+ json[:providers].map do |provider|
182
+ Storage::Provider.new(provider)
183
+ end
184
+ end
185
+
186
+ #
187
+ # Adds a new storage provider configuration.
188
+ #
189
+ # @param [String] provider Storage provider name
190
+ # @param [Hash] access Access credentials
191
+ # @param [Array] provider_info
192
+ # @option access [String] :client_id
193
+ # @option access [String] :private_key
194
+ #
195
+ def add_provider!(provider, provider_info = {}, access = {})
196
+ Api::Request.new do |request|
197
+ request[:access] = access
198
+ request[:method] = :POST
199
+ request[:path] = "/mgmt/{{client_id}}/storages/#{provider}"
200
+ request[:request_body] = provider_info
201
+ end.execute!
202
+
203
+ end
204
+
205
+ #
206
+ # Updates user's storage provider configuration.
207
+ #
208
+ # @param [String] provider Storage provider name
209
+ # @param [Hash] access Access credentials
210
+ # @param [Array] provider_info
211
+ # @option access [String] :client_id
212
+ # @option access [String] :private_key
213
+ #
214
+ def update_provider!(provider, provider_info = {}, access = {})
215
+ Api::Request.new do |request|
216
+ request[:access] = access
217
+ request[:method] = :PUT
218
+ request[:path] = "/mgmt/{{client_id}}/storages/#{provider}"
219
+ request[:request_body] = provider_info
220
+ end.execute!
221
+
222
+ end
223
+
224
+
225
+ #
226
+ # Revoke.
227
+ #
228
+ # @param [Hash] access Access credentials
229
+ # @option access [String] :client_id
230
+ # @option access [String] :private_key
231
+ #
232
+ def self.revoke!(access = {})
233
+ Api::Request.new do |request|
234
+ request[:access] = access
235
+ request[:method] = :PUT
236
+ request[:path] = "/mgmt/{{client_id}}/revoke"
237
+ end.execute!
238
+
239
+ end
240
+ #
241
+ # Logins user using user name and password.
242
+ #
243
+ # @example
244
+ # user = GroupDocs::User.login!('doe@john.com', 'password')
245
+ # user.first_name
246
+ # #=> "John"
247
+ #
248
+ # @return [GroupDocs::User]
249
+ #
250
+ def self.login!(email, password)
251
+ json = Api::Request.new do |request|
252
+ request[:sign] = false
253
+ request[:method] = :POST
254
+ request[:path] = "/shared/users/#{email}/logins"
255
+ request[:request_body] = password
256
+ end.execute!
257
+
258
+ new(json[:user])
259
+ end
260
+
261
+ #
262
+ # Logins user using user name and password.
263
+ #
264
+ # @param [String]guid
265
+ # @param [Hash] options
266
+ # @option [String] :filename File name
267
+ # @option [Boolean] :render Render
268
+ #
269
+ def self.download!(path, name, guid, options = {})
270
+ api = Api::Request.new do |request|
271
+ request[:sign] = false
272
+ request[:method] = :DOWNLOAD
273
+ request[:path] = "/shared/files/#{guid}"
274
+ end
275
+ api.add_params(options)
276
+ response = api.execute!
277
+
278
+ filepath = "#{path}/#{name}"
279
+ Object::File.open(filepath, 'wb') do |file|
280
+ file.write(response)
281
+ end
282
+
283
+ filepath
284
+ end
285
+
286
+ #
287
+ # Get file in xml.
288
+ #
289
+ #@param [String] guid
290
+ #
291
+ def self.get_xml!(path, name, guid)
292
+ response = Api::Request.new do |request|
293
+ request[:sign] = false
294
+ request[:method] = :DOWNLOAD
295
+ request[:path] = "/shared/files/#{guid}/xml"
296
+ end.execute!
297
+
298
+ filepath = "#{path}/#{name}"
299
+ Object::File.open(filepath, 'wb') do |file|
300
+ file.write(response)
301
+ end
302
+
303
+ filepath
304
+ end
305
+
306
+ #
307
+ # Get file in html.
308
+ #
309
+ #@param [String] guid
310
+ #
311
+ def self.get_html!(path, name, guid)
312
+ response = Api::Request.new do |request|
313
+ request[:sign] = false
314
+ request[:method] = :DOWNLOAD
315
+ request[:path] = "/shared/files/#{guid}/html"
316
+ end.execute!
317
+
318
+ filepath = "#{path}/#{name}"
319
+ Object::File.open(filepath, 'wb') do |file|
320
+ file.write(response)
321
+ end
322
+
323
+ filepath
324
+ end
325
+
326
+ #
327
+ # Get file in html.
328
+ #
329
+ #@param [String] path
330
+ #
331
+ def get_packages!(path)
332
+ response = Api::Request.new do |request|
333
+ request[:sign] = false
334
+ request[:method] = :GET
335
+ request[:path] = "/shared/packages/#{path}"
336
+ end.execute!
337
+
338
+ Object::File.open(path, 'wb') do |file|
339
+ file.write(response)
340
+ end
341
+
342
+ path
343
+ end
344
+
345
+ # @attr [Integer] id
346
+ attr_accessor :id
347
+ # @attr [String] guid
348
+ attr_accessor :guid
349
+ # @attr [String] nickname
350
+ attr_accessor :nickname
351
+ # @attr [String] firstname
352
+ attr_accessor :firstname
353
+ # @attr [String] lastname
354
+ attr_accessor :lastname
355
+ # @attr [String] primary_email
356
+ attr_accessor :primary_email
357
+ # @attr [String] private_key
358
+ attr_accessor :private_key
359
+ # @attr [String] password_salt
360
+ attr_accessor :password_salt
361
+ # @attr [Integer] claimed_id
362
+ attr_accessor :claimed_id
363
+ # @attr [String] token
364
+ attr_accessor :token
365
+ # @attr [String] storage
366
+ attr_accessor :storage
367
+ # @attr [String] photo
368
+ attr_accessor :photo
369
+ # @attr [Boolean] active
370
+ attr_accessor :active
371
+ # @attr [Boolean] news_enabled
372
+ attr_accessor :news_enabled
373
+ # @attr [Time] signed_up_on
374
+ attr_accessor :signed_up_on
375
+ # @attr [Integer] color
376
+ attr_accessor :color
377
+ # @attr [String] customEmailMessage
378
+ attr_accessor :customEmailMessage
379
+ # @attr [Array] roles
380
+ attr_accessor :roles
381
+
382
+ # added in release 1.5.8
383
+ # @attr [List] avatar
384
+ attr_accessor :avatar
385
+
386
+ # added in release 1.7.0
387
+ # @attr [Boolean] trial
388
+ attr_accessor :trial
389
+ # @attr [Boolean] news_eanbled
390
+ attr_accessor :news_eanbled
391
+ # @attr [Boolean] alerts_eanbled
392
+ attr_accessor :alerts_eanbled
393
+ # @attr [Boolean] support_eanbled
394
+ attr_accessor :support_eanbled
395
+ # @attr [Boolean] support_email
396
+ attr_accessor :support_email
397
+ # @attr [String] apps
398
+ attr_accessor :apps
399
+ # @attr [Boolean] annotation_branded
400
+ attr_accessor :annotation_branded
401
+ # @attr [Boolean] viewer_branded
402
+ attr_accessor :viewer_branded
403
+ # @attr [Boolean] is_real_time_broadcast_enabled
404
+ attr_accessor :is_real_time_broadcast_enabled
405
+ # @attr [Boolean] is_scroll_broadcast_enabled
406
+ attr_accessor :is_scroll_broadcast_enabled
407
+ # @attr [Boolean] is_zoom_broadcast_enabled
408
+ attr_accessor :is_zoom_broadcast_enabled
409
+ # @attr [List] annotation_logo
410
+ attr_accessor :annotation_logo
411
+ # @attr [List] pointer_tool_cursor
412
+ attr_accessor :pointer_tool_cursor
413
+ # @attr [Integer] annotation_header_options
414
+ attr_accessor :annotation_header_options
415
+ # @attr [Boolean] is_annotation_navigation_widget_enabled
416
+ attr_accessor :is_annotation_navigation_widget_enabled
417
+ # @attr [Boolean] is_annotation_zoom_widget_enabled
418
+ attr_accessor :is_annotation_zoom_widget_enabled
419
+ # @attr [Boolean] is_annotation_download_widget_enabled
420
+ attr_accessor :is_annotation_download_widget_enabled
421
+ # @attr [Boolean] is_annotation_print_widget_enabled
422
+ attr_accessor :is_annotation_print_widget_enabled
423
+ # @attr [Boolean] is_annotation_help_widget_enabled
424
+ attr_accessor :is_annotation_help_widget_enabled
425
+ # @attr [Boolean] is_right_panel_enabled
426
+ attr_accessor :is_right_panel_enabled
427
+ # @attr [Boolean] is_thumbnails_panel_enabled
428
+ attr_accessor :is_thumbnails_panel_enabled
429
+ # @attr [Boolean] is_standard_header_always_shown
430
+ attr_accessor :is_standard_header_always_shown
431
+ # @attr [Boolean] is_toolbar_enabled
432
+ attr_accessor :is_toolbar_enabled
433
+ # @attr [Boolean] is_text_annotation_button_enabled
434
+ attr_accessor :is_text_annotation_button_enabled
435
+ # @attr [Boolean] is_rectangle_annotation_button_enabled
436
+ attr_accessor :is_rectangle_annotation_button_enabled
437
+ # @attr [Boolean] is_point_annotation_button_enabled
438
+ attr_accessor :is_point_annotation_button_enabled
439
+ # @attr [Boolean] is_strikeout_annotation_button_enabled
440
+ attr_accessor :is_strikeout_annotation_button_enabled
441
+ # @attr [Boolean] is_polyline_annotation_button_enabled
442
+ attr_accessor :is_polyline_annotation_button_enabled
443
+ # @attr [Boolean] is_typewriter_annotation_button_enabled
444
+ attr_accessor :is_typewriter_annotation_button_enabled
445
+ # @attr [Boolean] is_watermark_annotation_button_enabled
446
+ attr_accessor :is_watermark_annotation_button_enabled
447
+ # @attr [Boolean] is_annotation_document_name_shown
448
+ attr_accessor :is_annotation_document_name_shown
449
+ # @attr [List] annotation_navigation_icons
450
+ attr_accessor :annotation_navigation_icons
451
+ # @attr [List] annotation_tool_icons
452
+ attr_accessor :annotation_tool_icons
453
+ # @attr [Integer] annotation_background_color
454
+ attr_accessor :annotation_background_color
455
+ # @attr [Integer] viewer_logo
456
+ attr_accessor :viewer_logo
457
+ # @attr [Integer] viewer_options
458
+ attr_accessor :viewer_options
459
+ # @attr [Boolean] is_viewer_navigation_widget_enabled
460
+ attr_accessor :is_viewer_navigation_widget_enabled
461
+ # @attr [Boolean] is_viewer_zoom_widget_enabled
462
+ attr_accessor :is_viewer_zoom_widget_enabled
463
+ # @attr [Boolean] is_viewer_download_widget_enabled
464
+ attr_accessor :is_viewer_download_widget_enabled
465
+ # @attr [Boolean] is_viewer_print_widget_enabled
466
+ attr_accessor :is_viewer_print_widget_enabled
467
+ # @attr [Boolean] is_viewer_help_widget_enabled
468
+ attr_accessor :is_viewer_help_widget_enabled
469
+ # @attr [Boolean] is_viewer_document_name_shown
470
+ attr_accessor :is_viewer_document_name_shown
471
+ # @attr [Boolean] isviewer_right_mouse_button_menu_enabled
472
+ attr_accessor :isviewer_right_mouse_button_menu_enabled
473
+ # @attr [Time] signedinOn
474
+ attr_accessor :signedinOn
475
+ # @attr [Integer] signin_count
476
+ attr_accessor :signin_count
477
+ # @attr [Boolean] signature_watermark_enabled
478
+ attr_accessor :signature_watermark_enabled
479
+ # @attr [Boolean] signature_desktop_notifications
480
+ attr_accessor :signature_desktop_notifications
481
+ # @attr [Integer] webhook_notification_retries
482
+ attr_accessor :webhook_notification_retries
483
+ # @attr [String] webhook_notification_failed_recipients
484
+ attr_accessor :webhook_notification_failed_recipients
485
+ # @attr [String] signature_color
486
+ attr_accessor :signature_color
487
+ # @attr [Boolean] signature_save_field_changes_automatically
488
+ attr_accessor :signature_save_field_changes_automatically
489
+ # @attr [Boolean] signature_use_custom_email_templates
490
+ attr_accessor :signature_use_custom_email_templates
491
+ # @attr [String] signature_envelope_sent_owner_template
492
+ attr_accessor :signature_envelope_sent_owner_template
493
+ # @attr [String] signature_envelope_sent_other_template
494
+ attr_accessor :signature_envelope_sent_other_template
495
+ # @attr [String] signature_envelope_completed_template
496
+ attr_accessor :signature_envelope_completed_template
497
+ # @attr [String] signature_envelope_signed_template
498
+ attr_accessor :signature_envelope_signed_template
499
+ # @attr [String] signature_envelope_declined_template
500
+ attr_accessor :signature_envelope_declined_template
501
+ # @attr [String] signature_envelope_failed_template
502
+ attr_accessor :signature_envelope_failed_template
503
+ # @attr [String] signature_envelope_cancelled_template
504
+ attr_accessor :signature_envelope_cancelled_template
505
+ # @attr [String] signature_envelope_expired_template
506
+ attr_accessor :signature_envelope_expired_template
507
+ # @attr [String] signature_envelope_step_expired_template
508
+ attr_accessor :signature_envelope_step_expired_template
509
+ # @attr [String] signature_envelope_recipient_reminder_template
510
+ attr_accessor :signature_envelope_recipient_reminder_template
511
+ # @attr [String] signature_form_signed_template
512
+ attr_accessor :signature_form_signed_template
513
+ # @attr [Boolean] signature_form_require_user_auth_for_sign
514
+ attr_accessor :signature_form_require_user_auth_for_sign
515
+ # @attr [Boolean] signature_form_request_user_auth_by_photo
516
+ attr_accessor :signature_form_request_user_auth_by_photo
517
+ # @attr [Boolean] signature_form_require_user_identity_validation
518
+ attr_accessor :signature_form_require_user_identity_validation
519
+ # @attr [Boolean] signature_envelope_require_user_auth_for_sign
520
+ attr_accessor :signature_envelope_require_user_auth_for_sign
521
+ # @attr [Boolean] signature_envelope_request_user_auth_by_photo
522
+ attr_accessor :signature_envelope_request_user_auth_by_photo
523
+ # @attr [Boolean] signature_enable_uploaded_signature
524
+ attr_accessor :signature_enable_uploaded_signature
525
+ # @attr [Boolean] signature_enable_typed_signature
526
+ attr_accessor :signature_enable_typed_signature
527
+ # @attr [Boolean] signature_enable_envelope_comment
528
+ attr_accessor :signature_enable_envelope_comment
529
+ # @attr [Boolean] signature_enable_form_comment
530
+ attr_accessor :signature_enable_form_comment
531
+
532
+ # added in release 1.9.0
533
+ # @attr [Boolean] is_text_replacement_annotation_button_enabled
534
+ attr_accessor :is_text_replacement_annotation_button_enabled
535
+ # @attr [Boolean] is_arrow_annotation_button_enabled
536
+ attr_accessor :is_arrow_annotation_button_enabled
537
+ # @attr [Boolean] is_text_redaction_annotation_button_enabled
538
+ attr_accessor :is_text_redaction_annotation_button_enabled
539
+ # @attr [Boolean] is_resource_redaction_annotation_button_enabled
540
+ attr_accessor :is_resource_redaction_annotation_button_enabled
541
+ # @attr [Boolean] is_text_underline_annotation_button_enabled
542
+ attr_accessor :is_text_underline_annotation_button_enabled
543
+ # @attr [Boolean] is_distance_annotation_button_enabled
544
+ attr_accessor :is_distance_annotation_button_enabled
545
+
546
+ # added in release 2.3.0
547
+ # @attr [Boolean] is_viewer_search_widget_enabled
548
+ attr_accessor :is_viewer_search_widget_enabled
549
+
550
+ # Human-readable accessors
551
+ alias_accessor :first_name, :firstname
552
+ alias_accessor :last_name, :lastname
553
+ alias_accessor :custom_email_message, :customEmailMessage
554
+
555
+
556
+ #
557
+ # Converts access rights to human-readable format flag.
558
+ # @return [Array<Symbol>]
559
+ #
560
+ def access_rights
561
+ convert_byte_to_access_rights @access_rights if @access_rights
562
+ end
563
+
564
+ #
565
+ # Converts access rights to machine-readable format flag.
566
+ # @param [Array<Symbol>] rights
567
+ #
568
+ def access_rights=(rights)
569
+ if rights.is_a?(Array)
570
+ rights = convert_access_rights_to_byte(rights)
571
+ end
572
+ @access_rights = rights
573
+ end
574
+
575
+ #
576
+ # Converts timestamp which is return by API server to Time object.
577
+ #
578
+ # @return [Time]
579
+ #
580
+ def signed_up_on
581
+ Time.at(@signed_up_on / 1000)
582
+ end
583
+
584
+ # Compatibility with response JSON
585
+ alias_method :pkey=, :private_key=
586
+ alias_method :pswd_salt=, :password_salt=
587
+ alias_method :signedupOn=, :signed_up_on=
588
+
589
+ #
590
+ # Updates user profile.
591
+ #
592
+ # @example
593
+ # user = GroupDocs::User.get!
594
+ # user.first_name = 'John'
595
+ # user.last_name = 'Smith'
596
+ # user.update!
597
+ #
598
+ # @param [Hash] access Access credentials
599
+ # @option access [String] :client_id
600
+ # @option access [String] :private_key
601
+ #
602
+ def update!(access = {})
603
+ Api::Request.new do |request|
604
+ request[:access] = access
605
+ request[:method] = :PUT
606
+ request[:path] = '/mgmt/{{client_id}}/profile'
607
+ request[:request_body] = to_hash
608
+ end.execute!
609
+ end
610
+
611
+ #
612
+ # Updates user profile.
613
+ #
614
+ # @example
615
+ # user = GroupDocs::User.get!
616
+ # old_password = user.password_salt
617
+ # new_password = 'Smith'
618
+ # user.update_password!
619
+ # @param [Array] pas_info ([old_password, new_password, reset_token])
620
+ # @param [Hash] access Access credentials
621
+ # @option access [String] :client_id
622
+ # @option access [String] :private_key
623
+ #
624
+ def self.update_password!(pas_info = {}, access = {})
625
+ Api::Request.new do |request|
626
+ request[:access] = access
627
+ request[:method] = :PUT
628
+ request[:path] = '/mgmt/{{client_id}}/profile/password'
629
+ request[:request_body] = pas_info
630
+ end.execute!
631
+ end
632
+
633
+ #
634
+ # Get user profile by reset token
635
+ #
636
+ # @param [String] callerId
637
+ # @param [Array] options
638
+ # @option [Hash] :token
639
+ # @param [Hash] access Access credentials
640
+ # @option access [String] :client_id
641
+ # @option access [String] :private_key
642
+ # @return [String]
643
+ #
644
+ def self.reset_token!(caller_id, options ={}, access = {})
645
+ api = Api::Request.new do |request|
646
+ request[:access] = access
647
+ request[:method] = :GET
648
+ request[:path] = "/mgmt/#{caller_id}/reset-tokens"
649
+ end
650
+ api.add_params(options)
651
+ api.execute!
652
+
653
+ end
654
+
655
+ #
656
+ # Get user profile by reset token
657
+ #
658
+ # @param [String] callerId
659
+ # @param [Array] options
660
+ # @option [Hash] :token
661
+ # @param [Hash] access Access credentials
662
+ # @option access [String] :client_id
663
+ # @option access [String] :private_key
664
+ # @return [String]
665
+ #
666
+ def self.verif_token!(caller_id, options ={}, access = {})
667
+ api = Api::Request.new do |request|
668
+ request[:access] = access
669
+ request[:method] = :GET
670
+ request[:path] = "/mgmt/#{caller_id}/verif-tokens"
671
+ end
672
+ api.add_params(options)
673
+ api.execute!
674
+
675
+ end
676
+
677
+ #
678
+ # Get user profile by verif token
679
+ #
680
+ # @param [Hash] access Access credentials
681
+ # @option access [String] :client_id
682
+ # @option access [String] :private_key
683
+ # @return [Array<GroupDocs::User>]
684
+ #
685
+ def users!(access = {})
686
+ json = Api::Request.new do |request|
687
+ request[:access] = access
688
+ request[:method] = :GET
689
+ request[:path] = '/mgmt/{{client_id}}/account/users'
690
+ end.execute!
691
+
692
+ json[:users].map do |user|
693
+ GroupDocs::User.new(user)
694
+ end
695
+ end
696
+
697
+ #
698
+ # Get user profile by claimed token
699
+ #
700
+ # @param [String] callerId
701
+ # @param [Array] options
702
+ # @option [Hash] :token
703
+ # @param [Hash] access Access credentials
704
+ # @option access [String] :client_id
705
+ # @option access [String] :private_key
706
+ # @return [String]
707
+ #
708
+ def self.claimed_token!(caller_id, options ={}, access = {})
709
+ api = Api::Request.new do |request|
710
+ request[:access] = access
711
+ request[:method] = :GET
712
+ request[:path] = "/mgmt/#{caller_id}/claimed-tokens"
713
+ end
714
+ api.add_params(options)
715
+ api.execute!
716
+
717
+ end
718
+
719
+ #
720
+ # Get alien user profile
721
+ #
722
+ # @param [String] callerId
723
+ # @param [Hash] access Access credentials
724
+ # @option access [String] :client_id
725
+ # @option access [String] :private_key
726
+ # @return [String]
727
+ #
728
+ def self.get_profile!(caller_id, access = {})
729
+ json = Api::Request.new do |request|
730
+ request[:access] = access
731
+ request[:method] = :GET
732
+ request[:path] = "/mgmt/#{caller_id}/user/{{client_id}}/profile"
733
+ end.execute!
734
+
735
+ json[:user]
736
+ end
737
+
738
+ #
739
+ # Update alien user profile
740
+ #
741
+ # @param [String] callerId
742
+ # @param [Hash] access Access credentials
743
+ # @option access [String] :client_id
744
+ # @option access [String] :private_key
745
+ # @return [String]
746
+ #
747
+ def update_profile!(caller_id, access = {})
748
+ json = Api::Request.new do |request|
749
+ request[:access] = access
750
+ request[:method] = :PUT
751
+ request[:path] = "/mgmt/#{caller_id}/user/{{client_id}}/profile"
752
+ request[:request_body] = to_hash
753
+ end.execute!
754
+
755
+ json[:user_guid]
756
+ end
757
+
758
+ #
759
+ # Create new user
760
+ #
761
+ # @param [String] callerId
762
+ # @param [Hash] access Access credentials
763
+ # @option access [String] :client_id
764
+ # @option access [String] :private_key
765
+ # @return [GroupDocs::User]
766
+ #
767
+ def create_user!(caller_id, access = {})
768
+ json = Api::Request.new do |request|
769
+ request[:access] = access
770
+ request[:method] = :POST
771
+ request[:path] = "/mgmt/#{caller_id}/user"
772
+ request[:request_body] = to_hash
773
+ end.execute!
774
+
775
+ end
776
+
777
+ #
778
+ # Create new login
779
+ #
780
+ # @param [String] callerId
781
+ # @param [Hash] options
782
+ # @option options [String] :password
783
+ # @param [Hash] access Access credentials
784
+ # @option access [String] :client_id
785
+ # @option access [String] :private_key
786
+ # @return [GroupDocs::User]
787
+ #
788
+ def self.create_login!(caller_id, options = {}, access = {})
789
+ api = Api::Request.new do |request|
790
+ request[:access] = access
791
+ request[:method] = :POST
792
+ request[:path] = "/mgmt/#{caller_id}/user/{{client_id}}/logins"
793
+ end
794
+ api.add_params(options)
795
+ api.execute!
796
+
797
+ end
798
+
799
+ #
800
+ # Change alien user password.
801
+ #
802
+ # @example
803
+ # user = GroupDocs::User.get!
804
+ # old_password = user.password_salt
805
+ # new_password = 'Smith'
806
+ # user.update_password!
807
+ #
808
+ # @param [String] callerId
809
+ # @param [Array] pas_info ([old_password, new_password, reset_token])
810
+ # @param [Hash] access Access credentials
811
+ # @option access [String] :client_id
812
+ # @option access [String] :private_key
813
+ #
814
+ def self.update_alien_password!(caller_id, pas_info = {}, access = {})
815
+ json = Api::Request.new do |request|
816
+ request[:access] = access
817
+ request[:method] = :PUT
818
+ request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}password"
819
+ request[:request_body] = pas_info
820
+ end.execute!
821
+
822
+ json[:user_guid]
823
+ end
824
+
825
+ #
826
+ # Change alien user password.
827
+ #
828
+ # @param [String] callerId
829
+ # @param [Hash] access Access credentials
830
+ # @option access [String] :client_id
831
+ # @option access [String] :private_key
832
+ #
833
+ def self.reset_alien_password!(caller_id, access = {})
834
+ json = Api::Request.new do |request|
835
+ request[:access] = access
836
+ request[:method] = :DELETE
837
+ request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}password"
838
+ end.execute!
839
+
840
+ json[:user_name]
841
+ end
842
+
843
+ #
844
+ # Returns an array of roles.
845
+ #
846
+ # @param [Hash] access Access credentials
847
+ # @option access [String] :client_id
848
+ # @option access [String] :private_key
849
+ # @return [Array]
850
+ #
851
+ def roles!(access = {})
852
+ json = Api::Request.new do |request|
853
+ request[:access] = access
854
+ request[:method] = :GET
855
+ request[:path] = '/mgmt/{{client_id}}/roles'
856
+ end.execute!
857
+
858
+ json[:roles]
859
+ end
860
+
861
+ #
862
+ # Returns an array of roles.
863
+ #
864
+ # # @param [String] callerId
865
+ # @param [Hash] access Access credentials
866
+ # @option access [String] :client_id
867
+ # @option access [String] :private_key
868
+ # @return [Array]
869
+ #
870
+ def self.user_roles!(caller_id, access = {})
871
+ json = Api::Request.new do |request|
872
+ request[:access] = access
873
+ request[:method] = :GET
874
+ request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}/roles"
875
+ end.execute!
876
+
877
+ json[:roles]
878
+ end
879
+
880
+ #
881
+ # Set user roles.
882
+ #
883
+ # @param [String] callerId
884
+ # @param [Hash] role_info (:id, :name)
885
+ # @param [Hash] access Access credentials
886
+ # @option access [String] :client_id
887
+ # @option access [String] :private_key
888
+ # @return [Array]
889
+ #
890
+ def self.set_user_roles!(caller_id, role_info = {}, access = {})
891
+ Api::Request.new do |request|
892
+ request[:access] = access
893
+ request[:method] = :GET
894
+ request[:path] = "/mgmt/#{caller_id}/users/{{client_id}}/roles"
895
+ request[:request_body] = role_info
896
+ end.execute!
897
+
898
+ end
899
+
900
+ #
901
+ # Returns an account information
902
+ #
903
+ # @param [Hash] access Access credentials
904
+ # @option access [String] :client_id
905
+ # @option access [String] :private_key
906
+ # @return [Array]
907
+ #
908
+ def self.get_account!(access = {})
909
+ Api::Request.new do |request|
910
+ request[:access] = access
911
+ request[:method] = :GET
912
+ request[:path] = "/mgmt/{{client_id}}/account"
913
+ end.execute!
914
+ end
915
+
916
+ #
917
+ # Remove account user.
918
+ #
919
+ # @param [Hash] access Access credentials
920
+ # @option access [String] :client_id
921
+ # @option access [String] :private_key
922
+ # @return [String]
923
+ #
924
+ def self.remove_account!(access = {})
925
+ Api::Request.new do |request|
926
+ request[:access] = access
927
+ request[:method] = :DELETE
928
+ request[:path] = "/mgmt/{{client_id}}/account"
929
+ end.execute!
930
+ end
931
+
932
+
933
+ # added in release 2.3.0
934
+ #
935
+ # Remove account by request.
936
+ #
937
+ # @param [String] email User email
938
+ # @param [String] nonce Removal nonce
939
+ # @param [Hash] access Access credentials
940
+ # @option access [String] :client_id
941
+ # @option access [String] :private_key
942
+ # @return [String]
943
+ #
944
+ def self.delete_account!(email, nonce, access = {})
945
+ api = Api::Request.new do |request|
946
+ request[:access] = access
947
+ request[:method] = :DELETE
948
+ request[:path] = "/mgmt/{{client_id}}/account/users/removeaccount/#{email}"
949
+ end
950
+ api.add_params(nonce)
951
+ api.execute!
952
+ end
953
+
954
+ end # User
955
+ end # GroupDocs