Class: YiffSpace::Auth::RootController
Constant Summary
Constants included
from Helper
Helper::DIRTY_FLAG_KEY
Instance Method Summary
collapse
Methods included from Helper
#auth, #auth=, #auth?, #auth_client_config, #auth_raw, #client_name, #client_name=, #full_reset!, #has_permission?, #logged_in?, #require_auth, #reset_auth!, #reset_user!, #sync_auth_if_dirty!, #url_helpers, #user, #user=, #user?, #user_raw
Instance Method Details
#cb ⇒ Object
14
15
16
17
18
19
20
|
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 14
def cb
client.handle_sign_in_callback(url: request.original_url)
user = client.fetch_user_info
self.user = UserInfo.new(id: user["identities"]["discord"]["userId"], user: user, discord: user["identities"]["discord"]["details"]["rawData"])
token = client.access_token_claims(resource: auth_client_config.resource)
self.auth = AuthInfo.new(id: user["identities"]["discord"]["userId"], token: token, permissions: token["scope"].split, roles: user["roles"], client_id: auth_client_config.client_id)
end
|
#debug ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 29
def debug
return render("yiffspace/error", locals: { message: "Access Denied" }, status: :forbidden) unless YiffSpace::Auth.enable_debug_action?
render(json: {
env: request.env.select { |env| env.start_with?("yiffspace.") },
params: params,
session: session,
client: auth_client_config.as_json.merge(client_secret: "[REDACTED]"),
user: client.fetch_user_info,
token: client.access_token_claims(resource: auth_client_config.resource),
})
end
|
#logout ⇒ Object
24
25
26
27
|
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 24
def logout
client.sign_out(post_logout_redirect_uri: request.base_url)
full_reset!
end
|
#permissions ⇒ Object
22
|
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 22
def permissions; end
|
#show ⇒ Object
10
11
12
|
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 10
def show
client.sign_in(redirect_uri: auth_client_config.redirect_uri, post_redirect_uri: params[:path] || "/")
end
|