Class: SqAuth::SqAuthClient
- Inherits:
-
Object
- Object
- SqAuth::SqAuthClient
- Defined in:
- lib/sq_auth/sq_auth_client.rb
Instance Method Summary collapse
- #auth_server_uri ⇒ Object
- #available? ⇒ Boolean
- #check_connection ⇒ Object
- #create_session(user, session) ⇒ Object
- #create_session_for_current_user(session) ⇒ Object
- #current_user ⇒ Object
- #current_user_params ⇒ Object
- #host_options ⇒ Object
-
#initialize(options = {}) ⇒ SqAuthClient
constructor
A new instance of SqAuthClient.
- #ip_for(user) ⇒ Object
- #ip_for_current_user ⇒ Object
- #role_exist?(user, roles, project) ⇒ Boolean
- #role_exist_for_current_user?(role, project) ⇒ Boolean
- #send_request(request_name, params = nil) ⇒ Object
- #session_for(user) ⇒ Object
- #session_for_current_user ⇒ Object
- #user ⇒ Object
- #username=(username) ⇒ Object
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 = {} @https = !![:https] @host = [:host] || "localhost" @port = ([:port] || (@https ? 443 : 80)).to_i @username = [:username] @password = [:password] @server = [:server_type] || SqAuth::SqAuthServer::BasicServer @user = [:user_type] || SqAuth::SqAuthUser::BasicUser.new @sessions = SqAuth::SqAuthSessions.new end |
Instance Method Details
#auth_server_uri ⇒ Object
79 80 81 82 |
# File 'lib/sq_auth/sq_auth_client.rb', line 79 def auth_server_uri uri_builder = (@https ? URI::HTTPS : URI::HTTP) uri_builder.build(host: @host, port: @port) end |
#available? ⇒ Boolean
31 32 33 34 |
# File 'lib/sq_auth/sq_auth_client.rb', line 31 def available? response = check_connection response.is_a?(Hash) && response[:status] == "200" end |
#check_connection ⇒ Object
27 28 29 |
# File 'lib/sq_auth/sq_auth_client.rb', line 27 def check_connection send_request :check_connection end |
#create_session(user, session) ⇒ Object
52 53 54 |
# File 'lib/sq_auth/sq_auth_client.rb', line 52 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_user ⇒ Object
48 49 50 |
# File 'lib/sq_auth/sq_auth_client.rb', line 48 def current_user @user.current_user end |
#current_user_params ⇒ Object
84 85 86 |
# File 'lib/sq_auth/sq_auth_client.rb', line 84 def current_user_params {session: session_for_current_user, ip: ip_for_current_user} end |
#host_options ⇒ Object
75 76 77 |
# File 'lib/sq_auth/sq_auth_client.rb', line 75 def {host: @host, port: @port, username: @username, password: @password, https: @https} end |
#ip_for(user) ⇒ Object
61 62 63 |
# File 'lib/sq_auth/sq_auth_client.rb', line 61 def ip_for user user[:ip] end |
#ip_for_current_user ⇒ Object
23 24 25 |
# File 'lib/sq_auth/sq_auth_client.rb', line 23 def ip_for_current_user ip_for current_user end |
#role_exist?(user, roles, project) ⇒ Boolean
65 66 67 68 69 |
# File 'lib/sq_auth/sq_auth_client.rb', line 65 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
36 37 38 |
# File 'lib/sq_auth/sq_auth_client.rb', line 36 def role_exist_for_current_user? role, project role_exist? current_user, role, project end |
#send_request(request_name, params = nil) ⇒ Object
71 72 73 |
# File 'lib/sq_auth/sq_auth_client.rb', line 71 def send_request request_name, params = nil @server.send(request_name, params, ) end |
#session_for(user) ⇒ Object
56 57 58 59 |
# File 'lib/sq_auth/sq_auth_client.rb', line 56 def session_for user p @sessions @sessions[user] end |
#session_for_current_user ⇒ Object
19 20 21 |
# File 'lib/sq_auth/sq_auth_client.rb', line 19 def session_for_current_user session_for current_user end |
#user ⇒ Object
40 41 42 |
# File 'lib/sq_auth/sq_auth_client.rb', line 40 def user @user end |
#username=(username) ⇒ Object
44 45 46 |
# File 'lib/sq_auth/sq_auth_client.rb', line 44 def username=(username) @username = username end |