files.com 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc12dc51a718f7038296a0977a646b081b3c94ecb3607a63a991a17b55ed6055
4
- data.tar.gz: 1b1dd7732ddb9b1afb7040e6b224be756cd5726e74a8d7c95dfc1d13be164d81
3
+ metadata.gz: 7d204d36cb4681395bf61b23e0c9d73d33827e4c04211334b7cd0b57633f5029
4
+ data.tar.gz: ab71996f578fcb8249c2d2d36888d3202889a6793cb5a90242012627e8845943
5
5
  SHA512:
6
- metadata.gz: bbc0e7a34b1eff8583435a7f8d98a05caf569de77bb1053704662eb5b5dffc69c7e095aca3848cb0a544d55637bc2da63abb176714e603bcf7816f23b4162ad2
7
- data.tar.gz: 9529b09d0e24ab182b6aef0bc5c0de3c8b3a0f679ee4c88a11ea0a2436adbcc9ccf07c6732261f5ecf6acd963f52c6af5cb3515d8f89c179d200e5d0f7e17bac
6
+ metadata.gz: dbb4c50ed59def6332dac58512c5732dc0beab6f19d2d9e87355736566321af92d55b33667461430d8a3d0c0337b40b73bffc8d5fdd076f967061ff2a9874511
7
+ data.tar.gz: 02c8ebf097990aa18dc3d05be9e97011a385b95611f752979b46641f852b1429716358b8853583355a58a9a58619788eb590a2c04de5c6c5f5af79fc55c714b9
data/_VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.4
1
+ 1.1.6
data/docs/group.md CHANGED
@@ -9,7 +9,11 @@
9
9
  "admin_ids": "1",
10
10
  "notes": "example",
11
11
  "user_ids": "1",
12
- "usernames": "example"
12
+ "usernames": "example",
13
+ "ftp_permission": true,
14
+ "sftp_permission": true,
15
+ "dav_permission": true,
16
+ "restapi_permission": true
13
17
  }
14
18
  ```
15
19
 
@@ -19,6 +23,10 @@
19
23
  * `notes` (string): Notes about this group
20
24
  * `user_ids` (string): Comma-delimited list of user IDs who belong to this group (separated by commas)
21
25
  * `usernames` (string): Comma-delimited list of usernames who belong to this group (separated by commas)
26
+ * `ftp_permission` (boolean): If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
27
+ * `sftp_permission` (boolean): If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
28
+ * `dav_permission` (boolean): If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
29
+ * `restapi_permission` (boolean): If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
22
30
 
23
31
 
24
32
  ---
@@ -63,6 +71,10 @@ Files::Group.create(
63
71
  notes: "example",
64
72
  user_ids: "1",
65
73
  admin_ids: "1",
74
+ ftp_permission: true,
75
+ sftp_permission: true,
76
+ dav_permission: true,
77
+ restapi_permission: true,
66
78
  name: "name"
67
79
  )
68
80
  ```
@@ -72,6 +84,10 @@ Files::Group.create(
72
84
  * `notes` (string): Group notes.
73
85
  * `user_ids` (string): A list of user ids. If sent as a string, should be comma-delimited.
74
86
  * `admin_ids` (string): A list of group admin user ids. If sent as a string, should be comma-delimited.
87
+ * `ftp_permission` (boolean): If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
88
+ * `sftp_permission` (boolean): If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
89
+ * `dav_permission` (boolean): If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
90
+ * `restapi_permission` (boolean): If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
75
91
  * `name` (string): Required - Group name.
76
92
 
77
93
 
@@ -84,6 +100,10 @@ Files::Group.update(id,
84
100
  notes: "example",
85
101
  user_ids: "1",
86
102
  admin_ids: "1",
103
+ ftp_permission: true,
104
+ sftp_permission: true,
105
+ dav_permission: true,
106
+ restapi_permission: true,
87
107
  name: "owners"
88
108
  )
89
109
  ```
@@ -94,6 +114,10 @@ Files::Group.update(id,
94
114
  * `notes` (string): Group notes.
95
115
  * `user_ids` (string): A list of user ids. If sent as a string, should be comma-delimited.
96
116
  * `admin_ids` (string): A list of group admin user ids. If sent as a string, should be comma-delimited.
117
+ * `ftp_permission` (boolean): If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
118
+ * `sftp_permission` (boolean): If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
119
+ * `dav_permission` (boolean): If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
120
+ * `restapi_permission` (boolean): If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
97
121
  * `name` (string): Group name.
98
122
 
99
123
 
@@ -121,6 +145,10 @@ group.update(
121
145
  notes: "example",
122
146
  user_ids: "1",
123
147
  admin_ids: "1",
148
+ ftp_permission: true,
149
+ sftp_permission: true,
150
+ dav_permission: true,
151
+ restapi_permission: true,
124
152
  name: "owners"
125
153
  )
126
154
  ```
@@ -131,6 +159,10 @@ group.update(
131
159
  * `notes` (string): Group notes.
132
160
  * `user_ids` (string): A list of user ids. If sent as a string, should be comma-delimited.
133
161
  * `admin_ids` (string): A list of group admin user ids. If sent as a string, should be comma-delimited.
162
+ * `ftp_permission` (boolean): If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
163
+ * `sftp_permission` (boolean): If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
164
+ * `dav_permission` (boolean): If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
165
+ * `restapi_permission` (boolean): If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
134
166
  * `name` (string): Group name.
135
167
 
136
168
 
data/docs/site.md CHANGED
@@ -486,6 +486,7 @@ Files::Site.update(
486
486
  sftp_enabled: true,
487
487
  sftp_host_key_type: "default",
488
488
  active_sftp_host_key_id: 1,
489
+ protocol_access_groups_only: true,
489
490
  bundle_watermark_value: {"key":"example value"},
490
491
  group_admins_can_set_user_password: true,
491
492
  bundle_recipient_blacklist_free_email_domains: true,
@@ -624,6 +625,7 @@ Files::Site.update(
624
625
  * `sftp_enabled` (boolean): Is SFTP enabled?
625
626
  * `sftp_host_key_type` (string): Sftp Host Key Type
626
627
  * `active_sftp_host_key_id` (int64): Id of the currently selected custom SFTP Host Key
628
+ * `protocol_access_groups_only` (boolean): If `true`, protocol access permissions on users will be ignored, and only protocol access permissions set on Groups will be honored. Make sure that your current user is a member of a group with API permission when changing this value to avoid locking yourself out of your site.
627
629
  * `bundle_watermark_value` (object): Preview watermark settings applied to all bundle items. Uses the same keys as Behavior.value
628
630
  * `group_admins_can_set_user_password` (boolean): Allow group admins set password authentication method
629
631
  * `bundle_recipient_blacklist_free_email_domains` (boolean): Disallow free email domains for Bundle/Inbox recipients?
@@ -28,17 +28,18 @@ module Files
28
28
  class NotImplementedError < Error; end
29
29
 
30
30
  class APIError < Error
31
- attr_reader :detail, :error, :errors, :http_code, :instance, :model_errors, :title, :type
31
+ attr_reader :detail, :error, :errors, :http_code, :instance, :model_errors, :title, :type, :data
32
32
 
33
33
  def initialize(message = nil, **kwargs)
34
- @detail = kwargs.dig(:json_body, 'detail')
35
- @error = kwargs.dig(:json_body, 'error')
36
- @errors = kwargs.dig(:json_body, 'errors')
37
- @http_code = kwargs.dig(:json_body, 'http-code')
38
- @instance = kwargs.dig(:json_body, 'instance')
39
- @model_errors = kwargs.dig(:json_body, 'model_errors')
40
- @title = kwargs.dig(:json_body, 'title')
41
- @type = kwargs.dig(:json_body, 'type')
34
+ @detail = kwargs.dig(:json_body, :detail)
35
+ @error = kwargs.dig(:json_body, :error)
36
+ @errors = kwargs.dig(:json_body, :errors)
37
+ @http_code = kwargs.dig(:json_body, :'http-code')
38
+ @instance = kwargs.dig(:json_body, :instance)
39
+ @model_errors = kwargs.dig(:json_body, :model_errors)
40
+ @title = kwargs.dig(:json_body, :title)
41
+ @type = kwargs.dig(:json_body, :type)
42
+ @data = kwargs.dig(:json_body, :data)
42
43
 
43
44
  super(message, **kwargs)
44
45
  end
@@ -63,10 +63,50 @@ module Files
63
63
  @attributes[:usernames] = value
64
64
  end
65
65
 
66
+ # boolean - If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
67
+ def ftp_permission
68
+ @attributes[:ftp_permission]
69
+ end
70
+
71
+ def ftp_permission=(value)
72
+ @attributes[:ftp_permission] = value
73
+ end
74
+
75
+ # boolean - If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
76
+ def sftp_permission
77
+ @attributes[:sftp_permission]
78
+ end
79
+
80
+ def sftp_permission=(value)
81
+ @attributes[:sftp_permission] = value
82
+ end
83
+
84
+ # boolean - If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
85
+ def dav_permission
86
+ @attributes[:dav_permission]
87
+ end
88
+
89
+ def dav_permission=(value)
90
+ @attributes[:dav_permission] = value
91
+ end
92
+
93
+ # boolean - If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
94
+ def restapi_permission
95
+ @attributes[:restapi_permission]
96
+ end
97
+
98
+ def restapi_permission=(value)
99
+ @attributes[:restapi_permission] = value
100
+ end
101
+
66
102
  # Parameters:
67
103
  # notes - string - Group notes.
68
104
  # user_ids - string - A list of user ids. If sent as a string, should be comma-delimited.
69
105
  # admin_ids - string - A list of group admin user ids. If sent as a string, should be comma-delimited.
106
+ # ftp_permission - boolean - If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
107
+ # sftp_permission - boolean - If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
108
+ # dav_permission - boolean - If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
109
+ # restapi_permission - boolean - If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
70
110
  # name - string - Group name.
71
111
  def update(params = {})
72
112
  params ||= {}
@@ -152,6 +192,10 @@ module Files
152
192
  # notes - string - Group notes.
153
193
  # user_ids - string - A list of user ids. If sent as a string, should be comma-delimited.
154
194
  # admin_ids - string - A list of group admin user ids. If sent as a string, should be comma-delimited.
195
+ # ftp_permission - boolean - If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
196
+ # sftp_permission - boolean - If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
197
+ # dav_permission - boolean - If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
198
+ # restapi_permission - boolean - If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
155
199
  # name (required) - string - Group name.
156
200
  def self.create(params = {}, options = {})
157
201
  raise InvalidParameterError.new("Bad parameter: notes must be an String") if params[:notes] and !params[:notes].is_a?(String)
@@ -168,6 +212,10 @@ module Files
168
212
  # notes - string - Group notes.
169
213
  # user_ids - string - A list of user ids. If sent as a string, should be comma-delimited.
170
214
  # admin_ids - string - A list of group admin user ids. If sent as a string, should be comma-delimited.
215
+ # ftp_permission - boolean - If true, users in this group can use FTP to login. This will override a false value of `ftp_permission` on the user level.
216
+ # sftp_permission - boolean - If true, users in this group can use SFTP to login. This will override a false value of `sftp_permission` on the user level.
217
+ # dav_permission - boolean - If true, users in this group can use WebDAV to login. This will override a false value of `dav_permission` on the user level.
218
+ # restapi_permission - boolean - If true, users in this group can use the REST API to login. This will override a false value of `restapi_permission` on the user level.
171
219
  # name - string - Group name.
172
220
  def self.update(id, params = {}, options = {})
173
221
  params ||= {}
@@ -851,6 +851,7 @@ module Files
851
851
  # sftp_enabled - boolean - Is SFTP enabled?
852
852
  # sftp_host_key_type - string - Sftp Host Key Type
853
853
  # active_sftp_host_key_id - int64 - Id of the currently selected custom SFTP Host Key
854
+ # protocol_access_groups_only - boolean - If `true`, protocol access permissions on users will be ignored, and only protocol access permissions set on Groups will be honored. Make sure that your current user is a member of a group with API permission when changing this value to avoid locking yourself out of your site.
854
855
  # bundle_watermark_value - object - Preview watermark settings applied to all bundle items. Uses the same keys as Behavior.value
855
856
  # group_admins_can_set_user_password - boolean - Allow group admins set password authentication method
856
857
  # bundle_recipient_blacklist_free_email_domains - boolean - Disallow free email domains for Bundle/Inbox recipients?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Files
4
- VERSION = "1.1.4"
4
+ VERSION = "1.1.6"
5
5
  end
@@ -53,12 +53,24 @@ RSpec.describe Files::ApiClient do
53
53
  type: "bad-request/request-param-path-cannot-have-trailing-whitespace"
54
54
  }
55
55
  }
56
+ let(:bad_region_request_with_data) {
57
+ {
58
+ error: "You have connected to a URL that has different security settings than those required for your site.",
59
+ 'http-code': 403,
60
+ title: "Lockout Region Mismatch",
61
+ type: "not-authenticated/lockout-region-mismatch",
62
+ data: {
63
+ host: "test.host"
64
+ }
65
+ }
66
+ }
56
67
  let(:bad_request_without_data) {
57
68
  {
58
69
  error: 'Bad Request'
59
70
  }
60
71
  }
61
72
  let(:mock_good_response) { { status: 400, headers: {}, body: bad_request_with_data.to_json } }
73
+ let(:mock_good_region_response) { { status: 403, headers: {}, body: bad_region_request_with_data.to_json } }
62
74
  let(:mock_response_without_type) { { status: 400, headers: {}, body: bad_request_without_data.to_json } }
63
75
  let(:mock_empty_response) { { status: 400, headers: {}, body: '' } }
64
76
 
@@ -66,7 +78,14 @@ RSpec.describe Files::ApiClient do
66
78
  allow(subject).to receive(:log_request).and_raise(Faraday::BadRequestError.new('', mock_good_response))
67
79
  expect {
68
80
  subject.execute_request_with_rescues(1, context) { 'empty block' }
69
- }.to raise_error(Files::RequestParamPathCannotHaveTrailingWhitespaceError, bad_request_with_data[:error])
81
+ }.to raise_error do |error|
82
+ expect(error).to be_a(Files::RequestParamPathCannotHaveTrailingWhitespaceError)
83
+ expect(error.message).to eq bad_request_with_data[:error]
84
+ expect(error.title).to eq "Request Param Path Cannot Have Trailing Whitespace"
85
+ expect(error.type).to eq "bad-request/request-param-path-cannot-have-trailing-whitespace"
86
+ expect(error.http_code).to eq 400
87
+ expect(error.data).to be_nil
88
+ end
70
89
  end
71
90
 
72
91
  it "throws generic bad request error when no type" do
@@ -82,5 +101,20 @@ RSpec.describe Files::ApiClient do
82
101
  subject.execute_request_with_rescues(1, context) { 'empty block' }
83
102
  }.to raise_error(Files::APIConnectionError)
84
103
  end
104
+
105
+ it "handles region lockout error response" do
106
+ allow(subject).to receive(:log_request).and_raise(Faraday::BadRequestError.new('', mock_good_region_response))
107
+ expect {
108
+ subject.execute_request_with_rescues(1, context) { 'empty block' }
109
+ }.to raise_error do |error|
110
+ expect(error).to be_a(Files::LockoutRegionMismatchError)
111
+ expect(error.message).to eq bad_region_request_with_data[:error]
112
+ expect(error.title).to eq "Lockout Region Mismatch"
113
+ expect(error.type).to eq "not-authenticated/lockout-region-mismatch"
114
+ expect(error.http_code).to eq 403
115
+ expect(error.data).to have_key(:host)
116
+ expect(error.data[:host]).to eq "test.host"
117
+ end
118
+ end
85
119
  end
86
120
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: files.com
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - files.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-15 00:00:00.000000000 Z
11
+ date: 2023-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable