Class: Symgate::Auth::Client
- Defined in:
- lib/symgate/auth/client.rb
Overview
client for the Symgate authentication system
Instance Attribute Summary
Attributes inherited from Client
#account, #endpoint, #key, #password, #savon_client, #savon_opts, #token, #user, #wsdl
Instance Method Summary collapse
-
#add_group_language(group, language) ⇒ Object
adds a language to the specified group and returns ‘OK’ if successful or ‘Exists’ if the language is already assigned to the account.
-
#authenticate(user_to_impersonate = nil) ⇒ Object
authenticates a user and returns a token, optionally with a user to impersonate.
-
#create_group(group_id) ⇒ Object
creates a new group.
-
#create_user(user, password) ⇒ Object
creates a new user from a Symgate::Auth::User, with the specified password.
-
#destroy_group(group_id) ⇒ Object
destroys an existing group.
-
#destroy_user(user_id) ⇒ Object
destroys a user.
-
#enumerate_group_languages(group_id) ⇒ Object
lists the languages assigned to a group.
-
#enumerate_groups ⇒ Object
returns a list of groups for the current symgate account.
-
#enumerate_languages ⇒ Object
lists the language for the currently authenticated user.
-
#enumerate_users(group_id) ⇒ Object
returns a list of users for the specified group.
-
#move_user(old_user_id, new_user_id) ⇒ Object
moves a user between groups.
-
#query_group_language(group_id, language) ⇒ Object
queries whether a language is available for a group.
-
#query_language(language) ⇒ Object
queries whether a language is available for the currently authenticated user.
-
#remove_group_language(group, language) ⇒ Object
removes a language from the specified group and returns ‘OK’ if successful or ‘NotExist’ if the language is not assigned to the account.
-
#rename_group(old_group_id, new_group_id) ⇒ Object
renames a group.
-
#rename_user(old_user_id, new_user_id) ⇒ Object
renames a user (must be within the same group).
-
#set_user_password(user_id, password) ⇒ Object
sets the password for a user.
-
#update_user(user) ⇒ Object
updates a user (sets the is_group_admin member).
Methods inherited from Client
Constructor Details
This class inherits a constructor from Symgate::Client
Instance Method Details
#add_group_language(group, language) ⇒ Object
adds a language to the specified group and returns ‘OK’ if successful or ‘Exists’ if the language is already assigned to the account
103 104 105 106 107 |
# File 'lib/symgate/auth/client.rb', line 103 def add_group_language(group, language) savon_request(:add_group_language) do |soap| soap.(groupid: group, language: language) end.body[:add_group_language_response] end |
#authenticate(user_to_impersonate = nil) ⇒ Object
authenticates a user and returns a token, optionally with a user to impersonate
93 94 95 96 97 98 99 |
# File 'lib/symgate/auth/client.rb', line 93 def authenticate(user_to_impersonate = nil) r = savon_request(:authenticate) do |soap| soap.(userid: user_to_impersonate) if user_to_impersonate end.body[:authenticate_response] r ? r[:authtoken] : nil end |
#create_group(group_id) ⇒ Object
creates a new group
17 18 19 20 21 |
# File 'lib/symgate/auth/client.rb', line 17 def create_group(group_id) savon_request(:create_group, returns_error_string: true) do |soap| soap.(groupid: group_id) end end |
#create_user(user, password) ⇒ Object
creates a new user from a Symgate::Auth::User, with the specified password
49 50 51 52 53 54 |
# File 'lib/symgate/auth/client.rb', line 49 def create_user(user, password) savon_request(:create_user, returns_error_string: true) do |soap| soap.(password: password) user.to_soap(soap[:message]) end end |
#destroy_group(group_id) ⇒ Object
destroys an existing group
24 25 26 27 28 |
# File 'lib/symgate/auth/client.rb', line 24 def destroy_group(group_id) savon_request(:destroy_group, returns_error_string: true) do |soap| soap.(groupid: group_id) end end |
#destroy_user(user_id) ⇒ Object
destroys a user
86 87 88 89 90 |
# File 'lib/symgate/auth/client.rb', line 86 def destroy_user(user_id) savon_request(:destroy_user, returns_error_string: true) do |soap| soap.(userid: user_id) end end |
#enumerate_group_languages(group_id) ⇒ Object
lists the languages assigned to a group
118 119 120 121 122 123 124 125 |
# File 'lib/symgate/auth/client.rb', line 118 def enumerate_group_languages(group_id) resp = savon_request(:enumerate_group_languages) { |soap| soap.(groupid: group_id) } Symgate::Client.savon_array( resp.body[:enumerate_group_languages_response], :language ) end |
#enumerate_groups ⇒ Object
returns a list of groups for the current symgate account
9 10 11 12 13 14 |
# File 'lib/symgate/auth/client.rb', line 9 def enumerate_groups Symgate::Client.savon_array( savon_request(:enumerate_groups).body[:enumerate_groups_response], :groupid ) end |
#enumerate_languages ⇒ Object
lists the language for the currently authenticated user
135 136 137 138 139 140 141 142 |
# File 'lib/symgate/auth/client.rb', line 135 def enumerate_languages resp = savon_request(:enumerate_languages) Symgate::Client.savon_array( resp.body[:enumerate_languages_response], :language ) end |
#enumerate_users(group_id) ⇒ Object
returns a list of users for the specified group
38 39 40 41 42 43 44 45 46 |
# File 'lib/symgate/auth/client.rb', line 38 def enumerate_users(group_id) resp = savon_request(:enumerate_users) { |soap| soap.(groupid: group_id) } Symgate::Client.savon_array( resp.body[:enumerate_users_response], :user, Symgate::Auth::User ) end |
#move_user(old_user_id, new_user_id) ⇒ Object
moves a user between groups
72 73 74 75 76 |
# File 'lib/symgate/auth/client.rb', line 72 def move_user(old_user_id, new_user_id) savon_request(:move_user, returns_error_string: true) do |soap| soap.(old_user_id: old_user_id, new_user_id: new_user_id) end end |
#query_group_language(group_id, language) ⇒ Object
queries whether a language is available for a group
128 129 130 131 132 |
# File 'lib/symgate/auth/client.rb', line 128 def query_group_language(group_id, language) savon_request(:query_group_language) do |soap| soap.(groupid: group_id, language: language) end.body[:query_group_language_response] end |
#query_language(language) ⇒ Object
queries whether a language is available for the currently authenticated user
145 146 147 148 |
# File 'lib/symgate/auth/client.rb', line 145 def query_language(language) savon_request(:query_language) { |soap| soap.(language: language) } .body[:query_language_response] end |
#remove_group_language(group, language) ⇒ Object
removes a language from the specified group and returns ‘OK’ if successful or ‘NotExist’ if the language is not assigned to the account
111 112 113 114 115 |
# File 'lib/symgate/auth/client.rb', line 111 def remove_group_language(group, language) savon_request(:remove_group_language) do |soap| soap.(groupid: group, language: language) end.body[:remove_group_language_response] end |
#rename_group(old_group_id, new_group_id) ⇒ Object
renames a group
31 32 33 34 35 |
# File 'lib/symgate/auth/client.rb', line 31 def rename_group(old_group_id, new_group_id) savon_request(:rename_group, returns_error_string: true) do |soap| soap.(old_groupid: old_group_id, new_groupid: new_group_id) end end |
#rename_user(old_user_id, new_user_id) ⇒ Object
renames a user (must be within the same group)
65 66 67 68 69 |
# File 'lib/symgate/auth/client.rb', line 65 def rename_user(old_user_id, new_user_id) savon_request(:rename_user, returns_error_string: true) do |soap| soap.(old_user_id: old_user_id, new_user_id: new_user_id) end end |
#set_user_password(user_id, password) ⇒ Object
sets the password for a user
79 80 81 82 83 |
# File 'lib/symgate/auth/client.rb', line 79 def set_user_password(user_id, password) savon_request(:set_user_password, returns_error_string: true) do |soap| soap.(userid: user_id, password: password) end end |
#update_user(user) ⇒ Object
updates a user (sets the is_group_admin member)
57 58 59 60 61 62 |
# File 'lib/symgate/auth/client.rb', line 57 def update_user(user) savon_request(:update_user, returns_error_string: true) do |soap| soap.({}) user.to_soap(soap[:message]) end end |