class StrongMindRailsIdentity::InstallGenerator
def self.next_migration_number(path)
def self.next_migration_number(path) # Add 1 to make sure this happens after the devise migration (Time.now.utc.strftime("%Y%m%d%H%M%S").to_i + 1).to_s end
def add_devise_routes
def add_devise_routes devise_route = " devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' vise_scope :user do post 'users/sign_out', to: 'devise/sessions#destroy' unauthenticated do root 'strong_mind_auto_login#index', as: :unauthenticated_root end authenticated do root 'strong_mind_auto_login#signed_in' end d p route devise_route end
def copy_auto_login
def copy_auto_login copy_file "strong_mind_auto_login_controller.rb", "app/controllers/strong_mind_auto_login_controller.rb" copy_file "strong_mind_auto_login.html.erb", "app/views/strong_mind_auto_login/index.html.erb" copy_file "strong_mind_auto_login.signed_in.html.erb", "app/views/strong_mind_auto_login/signed_in.html.erb" end
def copy_initializer
def copy_initializer template "devise.rb", "config/initializers/devise.rb" end
def copy_omniauth_callbacks_controller
def copy_omniauth_callbacks_controller copy_file "omniauth_callbacks_controller.rb", "app/controllers/users/omniauth_callbacks_controller.rb" end
def run_devise_user
def run_devise_user generate "active_record:devise User" inject_into_file "app/models/user.rb", after: ":recoverable, :rememberable, :validatable\n" do " devise :omniauthable, :omniauth_providers => %i[strongmind] f self.from_omniauth(auth) Rails.cache.write(auth.uid, auth) email = auth.extra.raw_info['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'] user = User.where(uid: auth.uid).first if user.nil? user ||= User.create!(uid: auth.uid, email: email) end user d f auth Rails.cache.read(uid) d" end end
def uid_migration
def uid_migration migration_template "add_uid_to_user.rb", "db/migrate/add_uid_to_user.rb" end