module LatoCore::Interface::Authentication

This module contains a list of functions used to authenticate a superuser.

Public Instance Methods

core__check_superuser_session_valid() click to toggle source

This function tells if the current session is valid.

# File lib/lato_core/interfaces/authentication.rb, line 20
def core__check_superuser_session_valid
  decoded_token = core__decode_token(session[:lato_core__superuser_session_token])
  return false unless decoded_token
  true
end
core__create_superuser_session(superuser, lifetime) click to toggle source

This function set a cookie to create the superuser session.

# File lib/lato_core/interfaces/authentication.rb, line 9
def core__create_superuser_session(superuser, lifetime)
  token = core__encode_token(lifetime, superuser_id: superuser.id)
  session[:lato_core__superuser_session_token] = token
end
core__destroy_superuser_session() click to toggle source

This function delete a cookie to destroy the superuser session.

# File lib/lato_core/interfaces/authentication.rb, line 15
def core__destroy_superuser_session
  session[:lato_core__superuser_session_token] = nil
end
core__manage_superuser_session(permission = nil) click to toggle source

This function check the session for a superuser and set the variable @core__current_superuser. If session is not valid the user should be redirect to login path.

# File lib/lato_core/interfaces/authentication.rb, line 28
def core__manage_superuser_session(permission = nil)
  decoded_token = core__decode_token(session[:lato_core__superuser_session_token])

  if decoded_token
    @core__current_superuser = LatoCore::Superuser.find_by(id: decoded_token[:superuser_id])
    unless @core__current_superuser
      core__destroy_superuser_session
      redirect_to lato_core.login_path
    end

    if permission && @core__current_superuser.permission < permission
      flash[:danger] = 'PERMISSION ERROR'
      redirect_to lato_core.root_path
    end
  else
    redirect_to lato_core.login_path
  end
end