Class: ResourceSpace::User
- Inherits:
-
Object
- Object
- ResourceSpace::User
- Defined in:
- lib/resourcespace/user.rb
Overview
User management interface for ResourceSpace API
Instance Attribute Summary collapse
-
#client ⇒ Client
readonly
The ResourceSpace client.
Instance Method Summary collapse
-
#admin? ⇒ Boolean
Check if current user is an admin.
-
#can_access_resource?(resource_id) ⇒ Boolean
Check if user can access a specific resource.
-
#can_download? ⇒ Boolean
Check if current user can download files.
-
#can_edit_resource?(resource_id) ⇒ Boolean
Check if user can edit a specific resource.
-
#can_edit_resources? ⇒ Boolean
Check if current user can edit resources.
-
#can_manage_collections? ⇒ Boolean
Check if current user can manage collections.
-
#can_manage_users? ⇒ Boolean
Check if current user can manage users.
-
#can_upload? ⇒ Boolean
Check if current user can upload files.
-
#capabilities ⇒ Hash
Get user capabilities summary.
-
#check_permission(permission) ⇒ Boolean
Check if current user has a permission.
-
#check_permissions(permissions) ⇒ Hash
Check multiple permissions at once.
-
#current_user ⇒ Hash
Get current user information.
-
#get_admin_users ⇒ Array
Get users with administrative privileges.
-
#get_user_message(message_id) ⇒ Hash
Get user message.
-
#get_users ⇒ Array
Get list of users.
-
#get_users_by_permission(permission) ⇒ Array
Get users by permission.
-
#initialize(client) ⇒ User
constructor
Initialize the user interface.
-
#login(username, password) ⇒ String
Login and get a session key.
-
#mark_email_as_invalid(email) ⇒ Hash
Mark an email as invalid.
Constructor Details
#initialize(client) ⇒ User
Initialize the user interface
21 22 23 |
# File 'lib/resourcespace/user.rb', line 21 def initialize(client) @client = client end |
Instance Attribute Details
#client ⇒ Client (readonly)
Returns the ResourceSpace client.
16 17 18 |
# File 'lib/resourcespace/user.rb', line 16 def client @client end |
Instance Method Details
#admin? ⇒ Boolean
Check if current user is an admin
135 136 137 |
# File 'lib/resourcespace/user.rb', line 135 def admin? ("a") end |
#can_access_resource?(resource_id) ⇒ Boolean
Check if user can access a specific resource
84 85 86 87 88 89 90 91 |
# File 'lib/resourcespace/user.rb', line 84 def can_access_resource?(resource_id) begin access_level = client.resources.get_resource_access(resource_id) access_level >= 0 # 0 = open access, -1 = no access rescue NotFoundError, AuthorizationError false end end |
#can_download? ⇒ Boolean
Check if current user can download files
163 164 165 |
# File 'lib/resourcespace/user.rb', line 163 def can_download? ("d") end |
#can_edit_resource?(resource_id) ⇒ Boolean
Check if user can edit a specific resource
97 98 99 |
# File 'lib/resourcespace/user.rb', line 97 def can_edit_resource?(resource_id) client.resources.edit_access?(resource_id) end |
#can_edit_resources? ⇒ Boolean
Check if current user can edit resources
170 171 172 |
# File 'lib/resourcespace/user.rb', line 170 def can_edit_resources? ("e") end |
#can_manage_collections? ⇒ Boolean
Check if current user can manage collections
149 150 151 |
# File 'lib/resourcespace/user.rb', line 149 def can_manage_collections? ("k") end |
#can_manage_users? ⇒ Boolean
Check if current user can manage users
142 143 144 |
# File 'lib/resourcespace/user.rb', line 142 def can_manage_users? ("u") end |
#can_upload? ⇒ Boolean
Check if current user can upload files
156 157 158 |
# File 'lib/resourcespace/user.rb', line 156 def can_upload? ("c") end |
#capabilities ⇒ Hash
Get user capabilities summary
177 178 179 180 181 182 183 184 185 186 |
# File 'lib/resourcespace/user.rb', line 177 def capabilities { admin: admin?, manage_users: can_manage_users?, manage_collections: can_manage_collections?, upload: can_upload?, download: can_download?, edit_resources: can_edit_resources? } end |
#check_permission(permission) ⇒ Boolean
Check if current user has a permission
44 45 46 47 |
# File 'lib/resourcespace/user.rb', line 44 def () response = client.get("checkperm", { param1: }) response == true || response == "true" || response == 1 || response == "1" end |
#check_permissions(permissions) ⇒ Hash
Check multiple permissions at once
116 117 118 119 120 121 122 |
# File 'lib/resourcespace/user.rb', line 116 def () result = {} Array().each do || result[] = () end result end |
#current_user ⇒ Hash
Get current user information
104 105 106 107 108 109 110 |
# File 'lib/resourcespace/user.rb', line 104 def current_user # Note: ResourceSpace API doesn't have a direct "current user" endpoint # This would typically be implemented by getting user info based on the authenticated user # For now, we'll use the username from configuration and search for it users = get_users users.find { |user| user["username"] == client.config.user } end |
#get_admin_users ⇒ Array
Get users with administrative privileges
127 128 129 130 |
# File 'lib/resourcespace/user.rb', line 127 def get_admin_users # Typically admin users have 'a' permission ("a") end |
#get_user_message(message_id) ⇒ Hash
Get user message
76 77 78 |
# File 'lib/resourcespace/user.rb', line 76 def () client.get("get_user_message", { param1: .to_s }) end |
#get_users ⇒ Array
Get list of users
28 29 30 |
# File 'lib/resourcespace/user.rb', line 28 def get_users client.get("get_users") end |
#get_users_by_permission(permission) ⇒ Array
Get users by permission
36 37 38 |
# File 'lib/resourcespace/user.rb', line 36 def () client.get("get_users_by_permission", { param1: }) end |
#login(username, password) ⇒ String
Login and get a session key
54 55 56 57 58 59 60 61 62 |
# File 'lib/resourcespace/user.rb', line 54 def login(username, password) response = client.get("login", { param1: username, param2: password }) # The response should be a session key response.is_a?(Hash) ? response["key"] || response["session_key"] : response end |
#mark_email_as_invalid(email) ⇒ Hash
Mark an email as invalid
68 69 70 |
# File 'lib/resourcespace/user.rb', line 68 def mark_email_as_invalid(email) client.post("mark_email_as_invalid", { param1: email }) end |