Class: SqAuth::SqAuthClient

Inherits:
Object
  • Object
show all
Defined in:
lib/sq_auth/sq_auth_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ SqAuthClient

Returns a new instance of SqAuthClient.



4
5
6
7
8
9
10
11
12
13
# File 'lib/sq_auth/sq_auth_client.rb', line 4

def initialize options = {}
  @https = !!options[:https]
  @host = options[:host] || "localhost"
  @port = (options[:port] || (@https ? 443 : 80)).to_i
  @username = options[:username]
  @password = options[:password]
  @server = options[:server_type] || SqAuth::SqAuthServer::BasicServer
  @user = options[:user_type] || SqAuth::SqAuthUser::BasicUser.new
  @sessions = SqAuth::SqAuthSessions.new
end

Instance Method Details

#auth_server_uriObject



67
68
69
70
# File 'lib/sq_auth/sq_auth_client.rb', line 67

def auth_server_uri
  uri_builder = (@https ? URI::HTTPS : URI::HTTP)
  uri_builder.build(host: @host, port: @port)
end

#available?Boolean

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/sq_auth/sq_auth_client.rb', line 27

def available?
  response = check_connection
  response.is_a?(Hash) && response[:status] == "200"
end

#check_connectionObject



23
24
25
# File 'lib/sq_auth/sq_auth_client.rb', line 23

def check_connection
  send_request :check_connection
end

#create_session(user, session) ⇒ Object



44
45
46
# File 'lib/sq_auth/sq_auth_client.rb', line 44

def create_session user, session
  @sessions[user] = session
end

#create_session_for_current_user(session) ⇒ Object



15
16
17
# File 'lib/sq_auth/sq_auth_client.rb', line 15

def create_session_for_current_user session
  create_session current_user, session
end

#current_userObject



40
41
42
# File 'lib/sq_auth/sq_auth_client.rb', line 40

def current_user
  @user.current_user
end

#host_optionsObject



63
64
65
# File 'lib/sq_auth/sq_auth_client.rb', line 63

def host_options
  {host: @host, port: @port, username: @username, password: @password, https: @https}
end

#role_exist?(user, roles, project) ⇒ Boolean

Returns:

  • (Boolean)


53
54
55
56
57
# File 'lib/sq_auth/sq_auth_client.rb', line 53

def role_exist? user, roles, project
  request_hash = {sqauthsession: session_for(user), roles: [*roles], auth_name: project, ip: user[:ip]}
  response = send_request :check_role, request_hash
  response.is_a?(Hash) && response[:data].is_a?(Hash) && (response[:data]["role_exist"] == true)
end

#role_exist_for_current_user?(role, project) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/sq_auth/sq_auth_client.rb', line 32

def role_exist_for_current_user? role, project
  role_exist? current_user, role, project
end

#send_request(request_name, params = nil) ⇒ Object



59
60
61
# File 'lib/sq_auth/sq_auth_client.rb', line 59

def send_request request_name, params = nil
  @server.send(request_name, params, host_options)
end

#session_for(user) ⇒ Object



48
49
50
51
# File 'lib/sq_auth/sq_auth_client.rb', line 48

def session_for user
  p @sessions
  @sessions[user]
end

#session_for_current_userObject



19
20
21
# File 'lib/sq_auth/sq_auth_client.rb', line 19

def session_for_current_user
  session_for current_user
end

#userObject



36
37
38
# File 'lib/sq_auth/sq_auth_client.rb', line 36

def user
  @user
end