Class: YiffSpace::Auth::RootController

Inherits:
ApplicationController show all
Includes:
Helper
Defined in:
app/controllers/yiff_space/auth/root_controller.rb

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

#cbObject



14
15
16
17
18
19
20
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 14

def cb
  client.(url: request.original_url)
  user = client.
  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

#debugObject



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.,
    token:   client.access_token_claims(resource: auth_client_config.resource),
  })
end

#logoutObject



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

#permissionsObject



22
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 22

def permissions; end

#showObject



10
11
12
# File 'app/controllers/yiff_space/auth/root_controller.rb', line 10

def show
  client.(redirect_uri: auth_client_config.redirect_uri, post_redirect_uri: params[:path] || "/")
end