From 4590f5d0892562fdeafbc7a018f034eb00c1e9a2 Mon Sep 17 00:00:00 2001 From: Washington Botelho Date: Tue, 10 Nov 2020 20:07:55 -0300 Subject: [PATCH] ft: adds install files --- lib/generators/authorizy/install_generator.rb | 23 +++++++++++++++++++ .../config/initializers/authorizy.rb | 23 +++++++++++++++++++ .../db/migrate/add_authorizy_on_users.rb | 7 ++++++ 3 files changed, 53 insertions(+) create mode 100644 lib/generators/authorizy/install_generator.rb create mode 100644 lib/generators/authorizy/templates/config/initializers/authorizy.rb create mode 100644 lib/generators/authorizy/templates/db/migrate/add_authorizy_on_users.rb diff --git a/lib/generators/authorizy/install_generator.rb b/lib/generators/authorizy/install_generator.rb new file mode 100644 index 0000000..586b6bb --- /dev/null +++ b/lib/generators/authorizy/install_generator.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module Authorizy + class InstallGenerator < Rails::Generators::Base + source_root File.expand_path('templates', __dir__) + + desc 'Creates Initializer and Migration for Authorizy' + + def create_initializer + copy_file 'config/initializers/authorizy.rb', 'config/initializers/authorizy.rb' + end + + def create_migration + copy_file 'db/migrate/add_authorizy_on_users.rb', "db/migrate/#{timestamp(0)}_add_authorizy_on_users.rb" + end + + private + + def timestamp(seconds) + (Time.current + seconds.seconds).strftime('%Y%m%d%H%M%S') + end + end +end diff --git a/lib/generators/authorizy/templates/config/initializers/authorizy.rb b/lib/generators/authorizy/templates/config/initializers/authorizy.rb new file mode 100644 index 0000000..6647912 --- /dev/null +++ b/lib/generators/authorizy/templates/config/initializers/authorizy.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +Authorizy.configure do |config| + # Creates aliases to automatically allow permission for another action. + # https://github.com/wbotelhos/authorizy#aliases + # config.aliases = {} + + # An interceptor to filter the request and decide if the request will be authorized + # https://github.com/wbotelhos/authorizy#cop + # config.cop = Authorizy::BaseCop + + # The current user from we fetch the permissions + # https://github.com/wbotelhos/authorizy#current-user + # config.current_user = -> (context) { context.respond_to?(:current_user) ? context.current_user : nil } + + # Inherited permissions from some other permission the user already has + # https://github.com/wbotelhos/authorizy#dependencies + # config.dependencies = {} + + # URL to be redirect when user has no permission to access some resource + # https://github.com/wbotelhos/authorizy#dependencies + # config.redirect_url = -> (context) { context.respond_to?(:root_url) ? context.root_url : '/' } +end diff --git a/lib/generators/authorizy/templates/db/migrate/add_authorizy_on_users.rb b/lib/generators/authorizy/templates/db/migrate/add_authorizy_on_users.rb new file mode 100644 index 0000000..4909d09 --- /dev/null +++ b/lib/generators/authorizy/templates/db/migrate/add_authorizy_on_users.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddAuthorizyOnUsers < ActiveRecord::Migration[6.0] + def change + add_column :users, :authorizy, :jsonb, default: {}, null: false + end +end