Class: Files::User

Inherits:
Object
  • Object
show all
Defined in:
lib/files.com/models/user.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}, options = {}) ⇒ User

Returns a new instance of User.



7
8
9
10
# File 'lib/files.com/models/user.rb', line 7

def initialize(attributes = {}, options = {})
  @attributes = attributes || {}
  @options = options || {}
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



5
6
7
# File 'lib/files.com/models/user.rb', line 5

def attributes
  @attributes
end

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/files.com/models/user.rb', line 5

def options
  @options
end

Class Method Details

.all(params = {}, options = {}) ⇒ Object



605
606
607
# File 'lib/files.com/models/user.rb', line 605

def self.all(params = {}, options = {})
  list(params, options)
end

.create(params = {}, options = {}) ⇒ Object

Parameters:

avatar_file - file - An image file for your user avatar.
avatar_delete - boolean - If true, the avatar will be deleted.
change_password - string - Used for changing a password on an existing user.
change_password_confirmation - string - Optional, but if provided, we will ensure that it matches the value sent in `change_password`.
email - string - User's email.
grant_permission - string - Permission to grant on the user root.  Can be blank or `full`, `read`, `write`, `preview`, or `history`.
group_id - integer - Group ID to associate this user with.
group_ids - string - A list of group ids to associate this user with.  Comma delimited.
password - string - User password.
password_confirmation - string - Optional, but if provided, we will ensure that it matches the value sent in `password`.
announcements_read - boolean - Signifies that the user has read all the announcements in the UI.
allowed_ips - string - A list of allowed IPs if applicable.  Newline delimited
attachments_permission - boolean - Can the user create Bundles (aka Share Links)?  This field will be aliased or renamed in the future to `bundles_permission`.
authenticate_until - string - Scheduled Date/Time at which user will be deactivated
authentication_method - string - How is this user authenticated?
bypass_site_allowed_ips - boolean - Allow this user to skip site-wide IP blacklists?
dav_permission - boolean - Can the user connect with WebDAV?
disabled - boolean - Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
ftp_permission - boolean - Can the user access with FTP/FTPS?
language - string - Preferred language
notification_daily_send_time - integer - Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
name - string - User's full name
notes - string - Any internal notes on the user
password_validity_days - integer - Number of days to allow user to use the same password
receive_admin_alerts - boolean - Should the user receive admin alerts such a certificate expiration notifications and overages?
require_password_change - boolean - Is a password change required upon next user login?
restapi_permission - boolean - Can this user access the REST API?
self_managed - boolean - Does this user manage it's own credentials or is it a shared/bot user?
sftp_permission - boolean - Can the user access with SFTP?
site_admin - boolean - Is the user an administrator for this site?
skip_welcome_screen - boolean - Skip Welcome page in the UI?
ssl_required - string - SSL required setting
sso_strategy_id - integer - SSO (Single Sign On) strategy ID for the user, if applicable.
subscribe_to_newsletter - boolean - Is the user subscribed to the newsletter?
time_zone - string - User time zone
user_root - string - Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
username - string - User's username


663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
# File 'lib/files.com/models/user.rb', line 663

def self.create(params = {}, options = {})
  raise InvalidParameterError.new("Bad parameter: change_password must be an String") if params.dig(:change_password) and !params.dig(:change_password).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: change_password_confirmation must be an String") if params.dig(:change_password_confirmation) and !params.dig(:change_password_confirmation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: email must be an String") if params.dig(:email) and !params.dig(:email).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: grant_permission must be an String") if params.dig(:grant_permission) and !params.dig(:grant_permission).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_id must be an Integer") if params.dig(:group_id) and !params.dig(:group_id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password must be an String") if params.dig(:password) and !params.dig(:password).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password_confirmation must be an String") if params.dig(:password_confirmation) and !params.dig(:password_confirmation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: allowed_ips must be an String") if params.dig(:allowed_ips) and !params.dig(:allowed_ips).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: authenticate_until must be an String") if params.dig(:authenticate_until) and !params.dig(:authenticate_until).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: authentication_method must be an String") if params.dig(:authentication_method) and !params.dig(:authentication_method).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: language must be an String") if params.dig(:language) and !params.dig(:language).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: notification_daily_send_time must be an Integer") if params.dig(:notification_daily_send_time) and !params.dig(:notification_daily_send_time).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: notes must be an String") if params.dig(:notes) and !params.dig(:notes).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password_validity_days must be an Integer") if params.dig(:password_validity_days) and !params.dig(:password_validity_days).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: ssl_required must be an String") if params.dig(:ssl_required) and !params.dig(:ssl_required).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: sso_strategy_id must be an Integer") if params.dig(:sso_strategy_id) and !params.dig(:sso_strategy_id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: time_zone must be an String") if params.dig(:time_zone) and !params.dig(:time_zone).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_root must be an String") if params.dig(:user_root) and !params.dig(:user_root).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: username must be an String") if params.dig(:username) and !params.dig(:username).is_a?(String)

  response, options = Api.send_request("/users", :post, params, options)
  User.new(response.data, options)
end

.delete(id, params = {}, options = {}) ⇒ Object



792
793
794
795
796
797
798
799
800
# File 'lib/files.com/models/user.rb', line 792

def self.delete(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, _options = Api.send_request("/users/#{params[:id]}", :delete, params, options)
  response.data
end

.destroy(id, params = {}, options = {}) ⇒ Object



802
803
804
# File 'lib/files.com/models/user.rb', line 802

def self.destroy(id, params = {}, options = {})
  delete(id, params, options)
end

.find(id, params = {}, options = {}) ⇒ Object

Parameters:

id (required) - integer - User ID.


611
612
613
614
615
616
617
618
619
# File 'lib/files.com/models/user.rb', line 611

def self.find(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, options = Api.send_request("/users/#{params[:id]}", :get, params, options)
  User.new(response.data, options)
end

.get(id, params = {}, options = {}) ⇒ Object



621
622
623
# File 'lib/files.com/models/user.rb', line 621

def self.get(id, params = {}, options = {})
  find(id, params, options)
end

.list(params = {}, options = {}) ⇒ Object

Parameters:

page - integer - Current page number.
per_page - integer - Number of records to show per page.  (Max: 10,000, 1,000 or less is recommended).
action - string - Deprecated: If set to `count` returns a count of matching records rather than the records themselves.
q[username] - string - List users matching username.
q[email] - string - List users matching email.
q[notes] - string - List users matching notes field.
q[admin] - string - If `true`, list only admin users.
q[allowed_ips] - string - If set, list only users with overridden allowed IP setting.
q[password_validity_days] - string - If set, list only users with overridden password validity days setting.
q[ssl_required] - string - If set, list only users with overridden SSL required setting.
search - string - Searches for partial matches of name, username, or email.


595
596
597
598
599
600
601
602
603
# File 'lib/files.com/models/user.rb', line 595

def self.list(params = {}, options = {})
  raise InvalidParameterError.new("Bad parameter: page must be an Integer") if params.dig(:page) and !params.dig(:page).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: per_page must be an Integer") if params.dig(:per_page) and !params.dig(:per_page).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: action must be an String") if params.dig(:action) and !params.dig(:action).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: search must be an String") if params.dig(:search) and !params.dig(:search).is_a?(String)

  response, options = Api.send_request("/users", :get, params, options)
  response.data.map { |object| User.new(object, options) }
end

.resend_welcome_email(id, params = {}, options = {}) ⇒ Object

Resend user welcome email



702
703
704
705
706
707
708
709
710
# File 'lib/files.com/models/user.rb', line 702

def self.resend_welcome_email(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, _options = Api.send_request("/users/#{params[:id]}/resend_welcome_email", :post, params, options)
  response.data
end

.unlock(id, params = {}, options = {}) ⇒ Object

Unlock user who has been locked out due to failed logins



691
692
693
694
695
696
697
698
699
# File 'lib/files.com/models/user.rb', line 691

def self.unlock(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, _options = Api.send_request("/users/#{params[:id]}/unlock", :post, params, options)
  response.data
end

.update(id, params = {}, options = {}) ⇒ Object

Parameters:

avatar_file - file - An image file for your user avatar.
avatar_delete - boolean - If true, the avatar will be deleted.
change_password - string - Used for changing a password on an existing user.
change_password_confirmation - string - Optional, but if provided, we will ensure that it matches the value sent in `change_password`.
email - string - User's email.
grant_permission - string - Permission to grant on the user root.  Can be blank or `full`, `read`, `write`, `preview`, or `history`.
group_id - integer - Group ID to associate this user with.
group_ids - string - A list of group ids to associate this user with.  Comma delimited.
password - string - User password.
password_confirmation - string - Optional, but if provided, we will ensure that it matches the value sent in `password`.
announcements_read - boolean - Signifies that the user has read all the announcements in the UI.
allowed_ips - string - A list of allowed IPs if applicable.  Newline delimited
attachments_permission - boolean - Can the user create Bundles (aka Share Links)?  This field will be aliased or renamed in the future to `bundles_permission`.
authenticate_until - string - Scheduled Date/Time at which user will be deactivated
authentication_method - string - How is this user authenticated?
bypass_site_allowed_ips - boolean - Allow this user to skip site-wide IP blacklists?
dav_permission - boolean - Can the user connect with WebDAV?
disabled - boolean - Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
ftp_permission - boolean - Can the user access with FTP/FTPS?
language - string - Preferred language
notification_daily_send_time - integer - Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
name - string - User's full name
notes - string - Any internal notes on the user
password_validity_days - integer - Number of days to allow user to use the same password
receive_admin_alerts - boolean - Should the user receive admin alerts such a certificate expiration notifications and overages?
require_password_change - boolean - Is a password change required upon next user login?
restapi_permission - boolean - Can this user access the REST API?
self_managed - boolean - Does this user manage it's own credentials or is it a shared/bot user?
sftp_permission - boolean - Can the user access with SFTP?
site_admin - boolean - Is the user an administrator for this site?
skip_welcome_screen - boolean - Skip Welcome page in the UI?
ssl_required - string - SSL required setting
sso_strategy_id - integer - SSO (Single Sign On) strategy ID for the user, if applicable.
subscribe_to_newsletter - boolean - Is the user subscribed to the newsletter?
time_zone - string - User time zone
user_root - string - Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
username - string - User's username


761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
# File 'lib/files.com/models/user.rb', line 761

def self.update(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: change_password must be an String") if params.dig(:change_password) and !params.dig(:change_password).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: change_password_confirmation must be an String") if params.dig(:change_password_confirmation) and !params.dig(:change_password_confirmation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: email must be an String") if params.dig(:email) and !params.dig(:email).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: grant_permission must be an String") if params.dig(:grant_permission) and !params.dig(:grant_permission).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_id must be an Integer") if params.dig(:group_id) and !params.dig(:group_id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password must be an String") if params.dig(:password) and !params.dig(:password).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password_confirmation must be an String") if params.dig(:password_confirmation) and !params.dig(:password_confirmation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: allowed_ips must be an String") if params.dig(:allowed_ips) and !params.dig(:allowed_ips).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: authenticate_until must be an String") if params.dig(:authenticate_until) and !params.dig(:authenticate_until).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: authentication_method must be an String") if params.dig(:authentication_method) and !params.dig(:authentication_method).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: language must be an String") if params.dig(:language) and !params.dig(:language).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: notification_daily_send_time must be an Integer") if params.dig(:notification_daily_send_time) and !params.dig(:notification_daily_send_time).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: notes must be an String") if params.dig(:notes) and !params.dig(:notes).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password_validity_days must be an Integer") if params.dig(:password_validity_days) and !params.dig(:password_validity_days).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: ssl_required must be an String") if params.dig(:ssl_required) and !params.dig(:ssl_required).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: sso_strategy_id must be an Integer") if params.dig(:sso_strategy_id) and !params.dig(:sso_strategy_id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: time_zone must be an String") if params.dig(:time_zone) and !params.dig(:time_zone).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_root must be an String") if params.dig(:user_root) and !params.dig(:user_root).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: username must be an String") if params.dig(:username) and !params.dig(:username).is_a?(String)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, options = Api.send_request("/users/#{params[:id]}", :patch, params, options)
  User.new(response.data, options)
end

.user_2fa_reset(id, params = {}, options = {}) ⇒ Object

Trigger 2FA Reset process for user who has lost access to their existing 2FA methods



713
714
715
716
717
718
719
720
721
# File 'lib/files.com/models/user.rb', line 713

def self.user_2fa_reset(id, params = {}, options = {})
  params ||= {}
  params[:id] = id
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  response, _options = Api.send_request("/users/#{params[:id]}/2fa/reset", :post, params, options)
  response.data
end

Instance Method Details

#admin_group_idsObject

array - List of group IDs of which this user is an administrator



22
23
24
# File 'lib/files.com/models/user.rb', line 22

def admin_group_ids
  @attributes[:admin_group_ids]
end

#admin_group_ids=(value) ⇒ Object



26
27
28
# File 'lib/files.com/models/user.rb', line 26

def admin_group_ids=(value)
  @attributes[:admin_group_ids] = value
end

#allowed_ipsObject

string - A list of allowed IPs if applicable. Newline delimited



31
32
33
# File 'lib/files.com/models/user.rb', line 31

def allowed_ips
  @attributes[:allowed_ips]
end

#allowed_ips=(value) ⇒ Object



35
36
37
# File 'lib/files.com/models/user.rb', line 35

def allowed_ips=(value)
  @attributes[:allowed_ips] = value
end

#announcements_readObject

boolean - Signifies that the user has read all the announcements in the UI.



450
451
452
# File 'lib/files.com/models/user.rb', line 450

def announcements_read
  @attributes[:announcements_read]
end

#announcements_read=(value) ⇒ Object



454
455
456
# File 'lib/files.com/models/user.rb', line 454

def announcements_read=(value)
  @attributes[:announcements_read] = value
end

#api_keys_countObject

int64 - Number of api keys associated with this user



49
50
51
# File 'lib/files.com/models/user.rb', line 49

def api_keys_count
  @attributes[:api_keys_count]
end

#api_keys_count=(value) ⇒ Object



53
54
55
# File 'lib/files.com/models/user.rb', line 53

def api_keys_count=(value)
  @attributes[:api_keys_count] = value
end

#attachments_permissionObject

boolean - Can the user create Bundles (aka Share Links)? This field will be aliased or renamed in the future to ‘bundles_permission`.



40
41
42
# File 'lib/files.com/models/user.rb', line 40

def attachments_permission
  @attributes[:attachments_permission]
end

#attachments_permission=(value) ⇒ Object



44
45
46
# File 'lib/files.com/models/user.rb', line 44

def attachments_permission=(value)
  @attributes[:attachments_permission] = value
end

#authenticate_untilObject

date-time - Scheduled Date/Time at which user will be deactivated



58
59
60
# File 'lib/files.com/models/user.rb', line 58

def authenticate_until
  @attributes[:authenticate_until]
end

#authenticate_until=(value) ⇒ Object



62
63
64
# File 'lib/files.com/models/user.rb', line 62

def authenticate_until=(value)
  @attributes[:authenticate_until] = value
end

#authentication_methodObject

string - How is this user authenticated?



67
68
69
# File 'lib/files.com/models/user.rb', line 67

def authentication_method
  @attributes[:authentication_method]
end

#authentication_method=(value) ⇒ Object



71
72
73
# File 'lib/files.com/models/user.rb', line 71

def authentication_method=(value)
  @attributes[:authentication_method] = value
end

#avatar_deleteObject

boolean - If true, the avatar will be deleted.



387
388
389
# File 'lib/files.com/models/user.rb', line 387

def avatar_delete
  @attributes[:avatar_delete]
end

#avatar_delete=(value) ⇒ Object



391
392
393
# File 'lib/files.com/models/user.rb', line 391

def avatar_delete=(value)
  @attributes[:avatar_delete] = value
end

#avatar_fileObject

file - An image file for your user avatar.



378
379
380
# File 'lib/files.com/models/user.rb', line 378

def avatar_file
  @attributes[:avatar_file]
end

#avatar_file=(value) ⇒ Object



382
383
384
# File 'lib/files.com/models/user.rb', line 382

def avatar_file=(value)
  @attributes[:avatar_file] = value
end

#avatar_urlObject

string - URL holding the user’s avatar



76
77
78
# File 'lib/files.com/models/user.rb', line 76

def avatar_url
  @attributes[:avatar_url]
end

#avatar_url=(value) ⇒ Object



80
81
82
# File 'lib/files.com/models/user.rb', line 80

def avatar_url=(value)
  @attributes[:avatar_url] = value
end

#bypass_site_allowed_ipsObject

boolean - Allow this user to skip site-wide IP blacklists?



85
86
87
# File 'lib/files.com/models/user.rb', line 85

def bypass_site_allowed_ips
  @attributes[:bypass_site_allowed_ips]
end

#bypass_site_allowed_ips=(value) ⇒ Object



89
90
91
# File 'lib/files.com/models/user.rb', line 89

def bypass_site_allowed_ips=(value)
  @attributes[:bypass_site_allowed_ips] = value
end

#change_passwordObject

string - Used for changing a password on an existing user.



396
397
398
# File 'lib/files.com/models/user.rb', line 396

def change_password
  @attributes[:change_password]
end

#change_password=(value) ⇒ Object



400
401
402
# File 'lib/files.com/models/user.rb', line 400

def change_password=(value)
  @attributes[:change_password] = value
end

#change_password_confirmationObject

string - Optional, but if provided, we will ensure that it matches the value sent in ‘change_password`.



405
406
407
# File 'lib/files.com/models/user.rb', line 405

def change_password_confirmation
  @attributes[:change_password_confirmation]
end

#change_password_confirmation=(value) ⇒ Object



409
410
411
# File 'lib/files.com/models/user.rb', line 409

def change_password_confirmation=(value)
  @attributes[:change_password_confirmation] = value
end

#created_atObject

date-time - When this user was created



94
95
96
# File 'lib/files.com/models/user.rb', line 94

def created_at
  @attributes[:created_at]
end

#dav_permissionObject

boolean - Can the user connect with WebDAV?



99
100
101
# File 'lib/files.com/models/user.rb', line 99

def dav_permission
  @attributes[:dav_permission]
end

#dav_permission=(value) ⇒ Object



103
104
105
# File 'lib/files.com/models/user.rb', line 103

def dav_permission=(value)
  @attributes[:dav_permission] = value
end

#delete(params = {}) ⇒ Object



560
561
562
563
564
565
566
567
568
# File 'lib/files.com/models/user.rb', line 560

def delete(params = {})
  params ||= {}
  params[:id] = @attributes[:id]
  raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  Api.send_request("/users/#{@attributes[:id]}", :delete, params, @options)
end

#destroy(params = {}) ⇒ Object



570
571
572
# File 'lib/files.com/models/user.rb', line 570

def destroy(params = {})
  delete(params)
end

#disabledObject

boolean - Is user disabled? Disabled users cannot log in, and do not count for billing purposes. Users can be automatically disabled after an inactivity period via a Site setting.



108
109
110
# File 'lib/files.com/models/user.rb', line 108

def disabled
  @attributes[:disabled]
end

#disabled=(value) ⇒ Object



112
113
114
# File 'lib/files.com/models/user.rb', line 112

def disabled=(value)
  @attributes[:disabled] = value
end

#emailObject

email - User email address



117
118
119
# File 'lib/files.com/models/user.rb', line 117

def email
  @attributes[:email]
end

#email=(value) ⇒ Object



121
122
123
# File 'lib/files.com/models/user.rb', line 121

def email=(value)
  @attributes[:email] = value
end

#externally_managedObject

boolean - Is this user managed by an external source (such as LDAP)?



333
334
335
# File 'lib/files.com/models/user.rb', line 333

def externally_managed
  @attributes[:externally_managed]
end

#externally_managed=(value) ⇒ Object



337
338
339
# File 'lib/files.com/models/user.rb', line 337

def externally_managed=(value)
  @attributes[:externally_managed] = value
end

#ftp_permissionObject

boolean - Can the user access with FTP/FTPS?



126
127
128
# File 'lib/files.com/models/user.rb', line 126

def ftp_permission
  @attributes[:ftp_permission]
end

#ftp_permission=(value) ⇒ Object



130
131
132
# File 'lib/files.com/models/user.rb', line 130

def ftp_permission=(value)
  @attributes[:ftp_permission] = value
end

#grant_permissionObject

string - Permission to grant on the user root. Can be blank or ‘full`, `read`, `write`, `preview`, or `history`.



414
415
416
# File 'lib/files.com/models/user.rb', line 414

def grant_permission
  @attributes[:grant_permission]
end

#grant_permission=(value) ⇒ Object



418
419
420
# File 'lib/files.com/models/user.rb', line 418

def grant_permission=(value)
  @attributes[:grant_permission] = value
end

#group_idObject

int64 - Group ID to associate this user with.



423
424
425
# File 'lib/files.com/models/user.rb', line 423

def group_id
  @attributes[:group_id]
end

#group_id=(value) ⇒ Object



427
428
429
# File 'lib/files.com/models/user.rb', line 427

def group_id=(value)
  @attributes[:group_id] = value
end

#group_idsObject

array - List of group IDs of which this user is a member



135
136
137
# File 'lib/files.com/models/user.rb', line 135

def group_ids
  @attributes[:group_ids]
end

#group_ids=(value) ⇒ Object



139
140
141
# File 'lib/files.com/models/user.rb', line 139

def group_ids=(value)
  @attributes[:group_ids] = value
end

#idObject

int64 - User ID



13
14
15
# File 'lib/files.com/models/user.rb', line 13

def id
  @attributes[:id]
end

#id=(value) ⇒ Object



17
18
19
# File 'lib/files.com/models/user.rb', line 17

def id=(value)
  @attributes[:id] = value
end

#languageObject

string - Preferred language



144
145
146
# File 'lib/files.com/models/user.rb', line 144

def language
  @attributes[:language]
end

#language=(value) ⇒ Object



148
149
150
# File 'lib/files.com/models/user.rb', line 148

def language=(value)
  @attributes[:language] = value
end

#last_login_atObject

date-time - User’s last login time



153
154
155
# File 'lib/files.com/models/user.rb', line 153

def 
  @attributes[:last_login_at]
end

#last_login_at=(value) ⇒ Object



157
158
159
# File 'lib/files.com/models/user.rb', line 157

def (value)
  @attributes[:last_login_at] = value
end

#last_protocol_cipherObject

string - The last protocol and cipher used



162
163
164
# File 'lib/files.com/models/user.rb', line 162

def last_protocol_cipher
  @attributes[:last_protocol_cipher]
end

#last_protocol_cipher=(value) ⇒ Object



166
167
168
# File 'lib/files.com/models/user.rb', line 166

def last_protocol_cipher=(value)
  @attributes[:last_protocol_cipher] = value
end

#lockout_expiresObject

date-time - Time in the future that the user will no longer be locked out if applicable



171
172
173
# File 'lib/files.com/models/user.rb', line 171

def lockout_expires
  @attributes[:lockout_expires]
end

#lockout_expires=(value) ⇒ Object



175
176
177
# File 'lib/files.com/models/user.rb', line 175

def lockout_expires=(value)
  @attributes[:lockout_expires] = value
end

#nameObject

string - User’s full name



180
181
182
# File 'lib/files.com/models/user.rb', line 180

def name
  @attributes[:name]
end

#name=(value) ⇒ Object



184
185
186
# File 'lib/files.com/models/user.rb', line 184

def name=(value)
  @attributes[:name] = value
end

#notesObject

string - Any internal notes on the user



189
190
191
# File 'lib/files.com/models/user.rb', line 189

def notes
  @attributes[:notes]
end

#notes=(value) ⇒ Object



193
194
195
# File 'lib/files.com/models/user.rb', line 193

def notes=(value)
  @attributes[:notes] = value
end

#notification_daily_send_timeObject

int64 - Hour of the day at which daily notifications should be sent. Can be in range 0 to 23



198
199
200
# File 'lib/files.com/models/user.rb', line 198

def notification_daily_send_time
  @attributes[:notification_daily_send_time]
end

#notification_daily_send_time=(value) ⇒ Object



202
203
204
# File 'lib/files.com/models/user.rb', line 202

def notification_daily_send_time=(value)
  @attributes[:notification_daily_send_time] = value
end

#passwordObject

string - User password.



432
433
434
# File 'lib/files.com/models/user.rb', line 432

def password
  @attributes[:password]
end

#password=(value) ⇒ Object



436
437
438
# File 'lib/files.com/models/user.rb', line 436

def password=(value)
  @attributes[:password] = value
end

#password_confirmationObject

string - Optional, but if provided, we will ensure that it matches the value sent in ‘password`.



441
442
443
# File 'lib/files.com/models/user.rb', line 441

def password_confirmation
  @attributes[:password_confirmation]
end

#password_confirmation=(value) ⇒ Object



445
446
447
# File 'lib/files.com/models/user.rb', line 445

def password_confirmation=(value)
  @attributes[:password_confirmation] = value
end

#password_set_atObject

date-time - Last time the user’s password was set



207
208
209
# File 'lib/files.com/models/user.rb', line 207

def password_set_at
  @attributes[:password_set_at]
end

#password_set_at=(value) ⇒ Object



211
212
213
# File 'lib/files.com/models/user.rb', line 211

def password_set_at=(value)
  @attributes[:password_set_at] = value
end

#password_validity_daysObject

int64 - Number of days to allow user to use the same password



216
217
218
# File 'lib/files.com/models/user.rb', line 216

def password_validity_days
  @attributes[:password_validity_days]
end

#password_validity_days=(value) ⇒ Object



220
221
222
# File 'lib/files.com/models/user.rb', line 220

def password_validity_days=(value)
  @attributes[:password_validity_days] = value
end

#public_keys_countObject

int64 - Number of public keys associated with this user



225
226
227
# File 'lib/files.com/models/user.rb', line 225

def public_keys_count
  @attributes[:public_keys_count]
end

#public_keys_count=(value) ⇒ Object



229
230
231
# File 'lib/files.com/models/user.rb', line 229

def public_keys_count=(value)
  @attributes[:public_keys_count] = value
end

#receive_admin_alertsObject

boolean - Should the user receive admin alerts such a certificate expiration notifications and overages?



234
235
236
# File 'lib/files.com/models/user.rb', line 234

def receive_admin_alerts
  @attributes[:receive_admin_alerts]
end

#receive_admin_alerts=(value) ⇒ Object



238
239
240
# File 'lib/files.com/models/user.rb', line 238

def receive_admin_alerts=(value)
  @attributes[:receive_admin_alerts] = value
end

#require_2faObject

boolean - Is 2fa required to sign in?



243
244
245
# File 'lib/files.com/models/user.rb', line 243

def require_2fa
  @attributes[:require_2fa]
end

#require_2fa=(value) ⇒ Object



247
248
249
# File 'lib/files.com/models/user.rb', line 247

def require_2fa=(value)
  @attributes[:require_2fa] = value
end

#require_password_changeObject

boolean - Is a password change required upon next user login?



252
253
254
# File 'lib/files.com/models/user.rb', line 252

def require_password_change
  @attributes[:require_password_change]
end

#require_password_change=(value) ⇒ Object



256
257
258
# File 'lib/files.com/models/user.rb', line 256

def require_password_change=(value)
  @attributes[:require_password_change] = value
end

#resend_welcome_email(params = {}) ⇒ Object

Resend user welcome email



470
471
472
473
474
475
476
477
478
# File 'lib/files.com/models/user.rb', line 470

def resend_welcome_email(params = {})
  params ||= {}
  params[:id] = @attributes[:id]
  raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  Api.send_request("/users/#{@attributes[:id]}/resend_welcome_email", :post, params, @options)
end

#restapi_permissionObject

boolean - Can this user access the REST API?



261
262
263
# File 'lib/files.com/models/user.rb', line 261

def restapi_permission
  @attributes[:restapi_permission]
end

#restapi_permission=(value) ⇒ Object



265
266
267
# File 'lib/files.com/models/user.rb', line 265

def restapi_permission=(value)
  @attributes[:restapi_permission] = value
end

#saveObject



574
575
576
577
578
579
580
581
# File 'lib/files.com/models/user.rb', line 574

def save
  if @attributes[:id]
    update(@attributes)
  else
    new_obj = User.create(@attributes, @options)
    @attributes = new_obj.attributes
  end
end

#self_managedObject

boolean - Does this user manage it’s own credentials or is it a shared/bot user?



270
271
272
# File 'lib/files.com/models/user.rb', line 270

def self_managed
  @attributes[:self_managed]
end

#self_managed=(value) ⇒ Object



274
275
276
# File 'lib/files.com/models/user.rb', line 274

def self_managed=(value)
  @attributes[:self_managed] = value
end

#sftp_permissionObject

boolean - Can the user access with SFTP?



279
280
281
# File 'lib/files.com/models/user.rb', line 279

def sftp_permission
  @attributes[:sftp_permission]
end

#sftp_permission=(value) ⇒ Object



283
284
285
# File 'lib/files.com/models/user.rb', line 283

def sftp_permission=(value)
  @attributes[:sftp_permission] = value
end

#site_adminObject

boolean - Is the user an administrator for this site?



288
289
290
# File 'lib/files.com/models/user.rb', line 288

def site_admin
  @attributes[:site_admin]
end

#site_admin=(value) ⇒ Object



292
293
294
# File 'lib/files.com/models/user.rb', line 292

def site_admin=(value)
  @attributes[:site_admin] = value
end

#skip_welcome_screenObject

boolean - Skip Welcome page in the UI?



297
298
299
# File 'lib/files.com/models/user.rb', line 297

def skip_welcome_screen
  @attributes[:skip_welcome_screen]
end

#skip_welcome_screen=(value) ⇒ Object



301
302
303
# File 'lib/files.com/models/user.rb', line 301

def skip_welcome_screen=(value)
  @attributes[:skip_welcome_screen] = value
end

#ssl_requiredObject

string - SSL required setting



306
307
308
# File 'lib/files.com/models/user.rb', line 306

def ssl_required
  @attributes[:ssl_required]
end

#ssl_required=(value) ⇒ Object



310
311
312
# File 'lib/files.com/models/user.rb', line 310

def ssl_required=(value)
  @attributes[:ssl_required] = value
end

#sso_strategy_idObject

int64 - SSO (Single Sign On) strategy ID for the user, if applicable.



315
316
317
# File 'lib/files.com/models/user.rb', line 315

def sso_strategy_id
  @attributes[:sso_strategy_id]
end

#sso_strategy_id=(value) ⇒ Object



319
320
321
# File 'lib/files.com/models/user.rb', line 319

def sso_strategy_id=(value)
  @attributes[:sso_strategy_id] = value
end

#subscribe_to_newsletterObject

boolean - Is the user subscribed to the newsletter?



324
325
326
# File 'lib/files.com/models/user.rb', line 324

def subscribe_to_newsletter
  @attributes[:subscribe_to_newsletter]
end

#subscribe_to_newsletter=(value) ⇒ Object



328
329
330
# File 'lib/files.com/models/user.rb', line 328

def subscribe_to_newsletter=(value)
  @attributes[:subscribe_to_newsletter] = value
end

#time_zoneObject

string - User time zone



342
343
344
# File 'lib/files.com/models/user.rb', line 342

def time_zone
  @attributes[:time_zone]
end

#time_zone=(value) ⇒ Object



346
347
348
# File 'lib/files.com/models/user.rb', line 346

def time_zone=(value)
  @attributes[:time_zone] = value
end

#type_of_2faObject

string - Type(s) of 2FA methods in use. Will be either ‘sms`, `totp`, `u2f`, `yubi`, or multiple values sorted alphabetically and joined by an underscore.



351
352
353
# File 'lib/files.com/models/user.rb', line 351

def type_of_2fa
  @attributes[:type_of_2fa]
end

#type_of_2fa=(value) ⇒ Object



355
356
357
# File 'lib/files.com/models/user.rb', line 355

def type_of_2fa=(value)
  @attributes[:type_of_2fa] = value
end

#unlock(params = {}) ⇒ Object

Unlock user who has been locked out due to failed logins



459
460
461
462
463
464
465
466
467
# File 'lib/files.com/models/user.rb', line 459

def unlock(params = {})
  params ||= {}
  params[:id] = @attributes[:id]
  raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  Api.send_request("/users/#{@attributes[:id]}/unlock", :post, params, @options)
end

#update(params = {}) ⇒ Object

Parameters:

avatar_file - file - An image file for your user avatar.
avatar_delete - boolean - If true, the avatar will be deleted.
change_password - string - Used for changing a password on an existing user.
change_password_confirmation - string - Optional, but if provided, we will ensure that it matches the value sent in `change_password`.
email - string - User's email.
grant_permission - string - Permission to grant on the user root.  Can be blank or `full`, `read`, `write`, `preview`, or `history`.
group_id - integer - Group ID to associate this user with.
group_ids - string - A list of group ids to associate this user with.  Comma delimited.
password - string - User password.
password_confirmation - string - Optional, but if provided, we will ensure that it matches the value sent in `password`.
announcements_read - boolean - Signifies that the user has read all the announcements in the UI.
allowed_ips - string - A list of allowed IPs if applicable.  Newline delimited
attachments_permission - boolean - Can the user create Bundles (aka Share Links)?  This field will be aliased or renamed in the future to `bundles_permission`.
authenticate_until - string - Scheduled Date/Time at which user will be deactivated
authentication_method - string - How is this user authenticated?
bypass_site_allowed_ips - boolean - Allow this user to skip site-wide IP blacklists?
dav_permission - boolean - Can the user connect with WebDAV?
disabled - boolean - Is user disabled? Disabled users cannot log in, and do not count for billing purposes.  Users can be automatically disabled after an inactivity period via a Site setting.
ftp_permission - boolean - Can the user access with FTP/FTPS?
language - string - Preferred language
notification_daily_send_time - integer - Hour of the day at which daily notifications should be sent. Can be in range 0 to 23
name - string - User's full name
notes - string - Any internal notes on the user
password_validity_days - integer - Number of days to allow user to use the same password
receive_admin_alerts - boolean - Should the user receive admin alerts such a certificate expiration notifications and overages?
require_password_change - boolean - Is a password change required upon next user login?
restapi_permission - boolean - Can this user access the REST API?
self_managed - boolean - Does this user manage it's own credentials or is it a shared/bot user?
sftp_permission - boolean - Can the user access with SFTP?
site_admin - boolean - Is the user an administrator for this site?
skip_welcome_screen - boolean - Skip Welcome page in the UI?
ssl_required - string - SSL required setting
sso_strategy_id - integer - SSO (Single Sign On) strategy ID for the user, if applicable.
subscribe_to_newsletter - boolean - Is the user subscribed to the newsletter?
time_zone - string - User time zone
user_root - string - Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.)  Note that this is not used for API, Desktop, or Web interface.
username - string - User's username


529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
# File 'lib/files.com/models/user.rb', line 529

def update(params = {})
  params ||= {}
  params[:id] = @attributes[:id]
  raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: change_password must be an String") if params.dig(:change_password) and !params.dig(:change_password).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: change_password_confirmation must be an String") if params.dig(:change_password_confirmation) and !params.dig(:change_password_confirmation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: email must be an String") if params.dig(:email) and !params.dig(:email).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: grant_permission must be an String") if params.dig(:grant_permission) and !params.dig(:grant_permission).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: group_id must be an Integer") if params.dig(:group_id) and !params.dig(:group_id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: group_ids must be an String") if params.dig(:group_ids) and !params.dig(:group_ids).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password must be an String") if params.dig(:password) and !params.dig(:password).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password_confirmation must be an String") if params.dig(:password_confirmation) and !params.dig(:password_confirmation).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: allowed_ips must be an String") if params.dig(:allowed_ips) and !params.dig(:allowed_ips).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: authenticate_until must be an String") if params.dig(:authenticate_until) and !params.dig(:authenticate_until).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: authentication_method must be an String") if params.dig(:authentication_method) and !params.dig(:authentication_method).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: language must be an String") if params.dig(:language) and !params.dig(:language).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: notification_daily_send_time must be an Integer") if params.dig(:notification_daily_send_time) and !params.dig(:notification_daily_send_time).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: name must be an String") if params.dig(:name) and !params.dig(:name).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: notes must be an String") if params.dig(:notes) and !params.dig(:notes).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: password_validity_days must be an Integer") if params.dig(:password_validity_days) and !params.dig(:password_validity_days).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: ssl_required must be an String") if params.dig(:ssl_required) and !params.dig(:ssl_required).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: sso_strategy_id must be an Integer") if params.dig(:sso_strategy_id) and !params.dig(:sso_strategy_id).is_a?(Integer)
  raise InvalidParameterError.new("Bad parameter: time_zone must be an String") if params.dig(:time_zone) and !params.dig(:time_zone).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: user_root must be an String") if params.dig(:user_root) and !params.dig(:user_root).is_a?(String)
  raise InvalidParameterError.new("Bad parameter: username must be an String") if params.dig(:username) and !params.dig(:username).is_a?(String)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  Api.send_request("/users/#{@attributes[:id]}", :patch, params, @options)
end

#user_2fa_reset(params = {}) ⇒ Object

Trigger 2FA Reset process for user who has lost access to their existing 2FA methods



481
482
483
484
485
486
487
488
489
# File 'lib/files.com/models/user.rb', line 481

def user_2fa_reset(params = {})
  params ||= {}
  params[:id] = @attributes[:id]
  raise MissingParameterError.new("Current object doesn't have a id") unless @attributes[:id]
  raise InvalidParameterError.new("Bad parameter: id must be an Integer") if params.dig(:id) and !params.dig(:id).is_a?(Integer)
  raise MissingParameterError.new("Parameter missing: id") unless params.dig(:id)

  Api.send_request("/users/#{@attributes[:id]}/2fa/reset", :post, params, @options)
end

#user_rootObject

string - Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.) Note that this is not used for API, Desktop, or Web interface.



360
361
362
# File 'lib/files.com/models/user.rb', line 360

def user_root
  @attributes[:user_root]
end

#user_root=(value) ⇒ Object



364
365
366
# File 'lib/files.com/models/user.rb', line 364

def user_root=(value)
  @attributes[:user_root] = value
end

#usernameObject

string - User’s username



369
370
371
# File 'lib/files.com/models/user.rb', line 369

def username
  @attributes[:username]
end

#username=(value) ⇒ Object



373
374
375
# File 'lib/files.com/models/user.rb', line 373

def username=(value)
  @attributes[:username] = value
end