Sha256: 8a3fb1d6c1f8ca5f3facf8593497759d7990a80504934181b9d7163a4a557d58
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
class Auther::SessionController < ApplicationController layout "auther/auth" before_filter :name_options, only: [:new, :create] def show redirect_to action: :new end def new @account = Auther::Account.new end def create account_params = params.fetch(:account) @account = Auther::Account.new find_account(account_params.fetch(:name)) if @account.valid? store_credentials @account, account_params.fetch(:login), account_params.fetch(:password) redirect_to session["auther_redirect_url"] || '/' else render template: "auther/session/new" end end def destroy remove_credentials params[:name] redirect_to action: :new end private def settings Rails.application.config.auther_settings end def name_options @name_options = settings.fetch(:accounts).map do |account| name = account.fetch :name [name.capitalize, name] end end def find_account name settings.fetch(:accounts).select { |account| account.fetch(:name) == name }.first end def store_credentials account, login, password keymaster = Auther::Keymaster.new account.name cipher = Auther::Cipher.new settings.fetch(:secret) session[keymaster.login_key] = cipher.encrypt login session[keymaster.password_key] = cipher.encrypt password end def remove_credentials name keymaster = Auther::Keymaster.new name session.delete keymaster.login_key session.delete keymaster.password_key end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
auther-0.2.0 | app/controllers/auther/session_controller.rb |