Class: Symgate::Auth::Client

Inherits:
Client
  • Object
show all
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

Methods inherited from Client

#initialize, savon_array

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.message(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.message(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.message(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.message(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.message(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.message(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.message(groupid: group_id) }

  Symgate::Client.savon_array(
    resp.body[:enumerate_group_languages_response],
    :language
  )
end

#enumerate_groupsObject

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_languagesObject

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.message(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.message(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.message(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.message(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.message(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.message(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.message(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.message(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.message({})
    user.to_soap(soap[:message])
  end
end