kms 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +30 -0
- data/app/assets/fonts/casper-webfont.eot +0 -0
- data/app/assets/fonts/casper-webfont.svg +278 -0
- data/app/assets/fonts/casper-webfont.ttf +0 -0
- data/app/assets/fonts/casper-webfont.woff +0 -0
- data/app/assets/fonts/casper-webfont.woff2 +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
- data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/javascripts/kms/application.js +49 -0
- data/app/assets/javascripts/kms/application/controllers/assets_controller.coffee +70 -0
- data/app/assets/javascripts/kms/application/controllers/help_controller.coffee +12 -0
- data/app/assets/javascripts/kms/application/controllers/pages_controller.coffee +95 -0
- data/app/assets/javascripts/kms/application/controllers/settings_controller.coffee +21 -0
- data/app/assets/javascripts/kms/application/controllers/sidebar_controller.coffee +26 -0
- data/app/assets/javascripts/kms/application/controllers/snippets_controller.coffee +44 -0
- data/app/assets/javascripts/kms/application/controllers/templates_controller.coffee +46 -0
- data/app/assets/javascripts/kms/application/controllers/users_controller.coffee +31 -0
- data/app/assets/javascripts/kms/application/module.coffee +24 -0
- data/app/assets/javascripts/kms/application/routes.coffee.erb +171 -0
- data/app/assets/javascripts/kms/application/services/errors_service.coffee +8 -0
- data/app/assets/javascripts/templates/assets/edit.html.slim +10 -0
- data/app/assets/javascripts/templates/assets/index.html.slim +31 -0
- data/app/assets/javascripts/templates/assets/new.html.slim +16 -0
- data/app/assets/javascripts/templates/help.html.slim +172 -0
- data/app/assets/javascripts/templates/help/filters.html.slim +51 -0
- data/app/assets/javascripts/templates/help/variables.html.slim +96 -0
- data/app/assets/javascripts/templates/pages/edit.html.slim +7 -0
- data/app/assets/javascripts/templates/pages/form.html.slim +32 -0
- data/app/assets/javascripts/templates/pages/index.html.slim +33 -0
- data/app/assets/javascripts/templates/pages/new.html.slim +5 -0
- data/app/assets/javascripts/templates/settings.html.slim +20 -0
- data/app/assets/javascripts/templates/snippets/edit.html.slim +5 -0
- data/app/assets/javascripts/templates/snippets/form.html.slim +10 -0
- data/app/assets/javascripts/templates/snippets/index.html.slim +22 -0
- data/app/assets/javascripts/templates/snippets/new.html.slim +5 -0
- data/app/assets/javascripts/templates/templates/edit.html.slim +7 -0
- data/app/assets/javascripts/templates/templates/form.html.slim +7 -0
- data/app/assets/javascripts/templates/templates/index.html.slim +22 -0
- data/app/assets/javascripts/templates/templates/new.html.slim +5 -0
- data/app/assets/javascripts/templates/users/form.html.slim +14 -0
- data/app/assets/javascripts/templates/users/index.html.slim +21 -0
- data/app/assets/javascripts/templates/users/new.html.slim +5 -0
- data/app/assets/stylesheets/kms/application.css +57 -0
- data/app/assets/stylesheets/kms/custom.css.scss +67 -0
- data/app/assets/stylesheets/kms/responsive_dashboard.css.less +9 -0
- data/app/controllers/kms/application_controller.rb +24 -0
- data/app/controllers/kms/assets_controller.rb +58 -0
- data/app/controllers/kms/kms_controller.rb +8 -0
- data/app/controllers/kms/pages_controller.rb +67 -0
- data/app/controllers/kms/public/pages_controller.rb +27 -0
- data/app/controllers/kms/public/search_controller.rb +18 -0
- data/app/controllers/kms/resources_controller.rb +9 -0
- data/app/controllers/kms/settings_controller.rb +24 -0
- data/app/controllers/kms/snippets_controller.rb +37 -0
- data/app/controllers/kms/templates_controller.rb +43 -0
- data/app/controllers/kms/users_controller.rb +36 -0
- data/app/controllers/users/confirmations_controller.rb +28 -0
- data/app/controllers/users/omniauth_callbacks_controller.rb +28 -0
- data/app/controllers/users/passwords_controller.rb +32 -0
- data/app/controllers/users/registrations_controller.rb +70 -0
- data/app/controllers/users/sessions_controller.rb +25 -0
- data/app/controllers/users/unlocks_controller.rb +28 -0
- data/app/helpers/kms/application_helper.rb +4 -0
- data/app/models/ability.rb +38 -0
- data/app/models/concerns/kms/compile_templates.rb +39 -0
- data/app/models/concerns/kms/permalinkable.rb +13 -0
- data/app/models/concerns/kms/update_stylesheets_text.rb +20 -0
- data/app/models/kms/asset.rb +83 -0
- data/app/models/kms/page.rb +61 -0
- data/app/models/kms/settings.rb +7 -0
- data/app/models/kms/snippet.rb +11 -0
- data/app/models/kms/template.rb +11 -0
- data/app/models/kms/user.rb +18 -0
- data/app/serializers/kms/settings_serializer.rb +5 -0
- data/app/serializers/kms/snippet_serializer.rb +5 -0
- data/app/services/kms/ability_service.rb +11 -0
- data/app/services/kms/externals_registry.rb +11 -0
- data/app/services/kms/form_customization_service.rb +14 -0
- data/app/services/kms/help_service.rb +13 -0
- data/app/services/kms/resource_service.rb +22 -0
- data/app/services/kms/search_service.rb +11 -0
- data/app/services/kms/settings_service.rb +13 -0
- data/app/uploaders/kms/asset_uploader.rb +61 -0
- data/app/views/devise/registrations/new.html.erb +21 -0
- data/app/views/devise/sessions/new.html.erb +17 -0
- data/app/views/devise/shared/_links.html.erb +25 -0
- data/app/views/layouts/kms/devise.html.erb +35 -0
- data/app/views/layouts/kms/kms.html.erb +139 -0
- data/config/initializers/bower_rails.rb +16 -0
- data/config/initializers/devise.rb +15 -0
- data/config/initializers/externals.rb +42 -0
- data/config/initializers/help.rb +1 -0
- data/config/initializers/liquor.rb +49 -0
- data/config/initializers/resources.rb +5 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/devise.ru.yml +63 -0
- data/config/locales/en.yml +172 -0
- data/config/locales/ru.yml +172 -0
- data/config/routes.rb +31 -0
- data/db/migrate/20141027065341_create_pages.rb +12 -0
- data/db/migrate/20141027083603_create_templates.rb +10 -0
- data/db/migrate/20141027083633_add_template_id_to_pages.rb +6 -0
- data/db/migrate/20141029145253_create_assets.rb +10 -0
- data/db/migrate/20141031125758_add_ancestry_to_pages.rb +6 -0
- data/db/migrate/20141031140308_devise_create_users.rb +42 -0
- data/db/migrate/20141119084306_add_fullpath_to_pages.rb +5 -0
- data/db/migrate/20141121112652_add_role_to_users.rb +5 -0
- data/db/migrate/20141127073902_add_templatable_fields_to_pages.rb +6 -0
- data/db/migrate/20141209132901_add_hidden_to_page.rb +5 -0
- data/db/migrate/20150209120632_add_position_to_kms_pages.rb +5 -0
- data/db/migrate/20160129100437_create_kms_snippets.rb +11 -0
- data/db/migrate/20160712094512_create_kms_settings.rb +9 -0
- data/lib/generators/kms/install/install_generator.rb +34 -0
- data/lib/generators/kms/install/templates/devise.rb +257 -0
- data/lib/generators/kms/install/templates/dragonfly.rb +35 -0
- data/lib/kms.rb +6 -0
- data/lib/kms/dependencies.rb +15 -0
- data/lib/kms/drops/page_drop.rb +24 -0
- data/lib/kms/drops/search_item_drop.rb +5 -0
- data/lib/kms/engine.rb +65 -0
- data/lib/kms/externals/bigdecimal.rb +5 -0
- data/lib/kms/externals/request.rb +4 -0
- data/lib/kms/functions/assets.rb +40 -0
- data/lib/kms/functions/currency.rb +21 -0
- data/lib/kms/search_item.rb +28 -0
- data/lib/kms/version.rb +3 -0
- data/lib/tasks/kms_tasks.rake +4 -0
- data/lib/tasks/precompile_hook.rake +42 -0
- data/spec/controllers/kms/snippets_controller_spec.rb +74 -0
- data/spec/factories/kms_settings.rb +6 -0
- data/spec/factories/snippets.rb +10 -0
- data/spec/factories/users.rb +7 -0
- data/spec/internal/Rakefile +2 -0
- data/spec/internal/config/database.yml +7 -0
- data/spec/internal/config/initializers/devise.rb +257 -0
- data/spec/internal/config/routes.rb +7 -0
- data/spec/internal/db/schema.rb +69 -0
- data/spec/internal/log/test.log +14998 -0
- data/spec/internal/public/favicon.ico +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/v3.0/1XyAFYlYI0pK7WAgjR4PgXV6BgU6huJSviWmHetdCRs.cache +1 -0
- data/spec/models/kms/setting_spec.rb +7 -0
- data/spec/models/kms/snippet_spec.rb +14 -0
- data/spec/services/kms/help_service_spec.rb +8 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/support/controller_macros.rb +11 -0
- data/spec/support/request_helpers.rb +7 -0
- metadata +521 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Kms
|
|
2
|
+
class Public::PagesController < ActionController::Base
|
|
3
|
+
|
|
4
|
+
before_filter :eval_externals
|
|
5
|
+
|
|
6
|
+
def show
|
|
7
|
+
page_result = Kms.template_manager.render(@page.register_id, @externals)
|
|
8
|
+
# apply typograph to page content
|
|
9
|
+
#page_result = EvilFront::Russian.typograph_html(page_result)
|
|
10
|
+
result = Kms.template_manager.render(@template.register_id, @externals.
|
|
11
|
+
merge(_inner_template: page_result))
|
|
12
|
+
|
|
13
|
+
render text: result, layout: false
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
protected
|
|
17
|
+
|
|
18
|
+
def eval_externals
|
|
19
|
+
@externals = Hash[ExternalsRegistry.externals.map{ |k, v| [k, v.call(request, self)] }]
|
|
20
|
+
@page = @externals[:page].source
|
|
21
|
+
@template = @page.template
|
|
22
|
+
rescue ActiveRecord::RecordNotFound
|
|
23
|
+
render file: "#{Rails.root}/public/404.html", layout: false, status: :not_found
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Kms
|
|
2
|
+
class Public::SearchController < ActionController::Base
|
|
3
|
+
def search
|
|
4
|
+
results = Page.advanced_search(params[:query]).to_drop#.split(' ').join('|').to_drop
|
|
5
|
+
if params[:result_page] and @page = Page.find_by_fullpath(params[:result_page])
|
|
6
|
+
@externals = Hash[ExternalsRegistry.externals.map{ |k, v| [k, v.call(request, self)] }]
|
|
7
|
+
@template = @page.template
|
|
8
|
+
|
|
9
|
+
page_result = Rails.configuration.x.template_manager.render(@page.register_id, @externals.merge!(search: results))
|
|
10
|
+
result = Rails.configuration.x.template_manager.render(@template.register_id, @externals.merge(_inner_template: page_result))
|
|
11
|
+
|
|
12
|
+
render text: result, layout: false
|
|
13
|
+
else
|
|
14
|
+
redirect_to root_path
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Kms
|
|
2
|
+
class SettingsController < ApplicationController
|
|
3
|
+
authorize_resource :class => false
|
|
4
|
+
|
|
5
|
+
def show
|
|
6
|
+
render json: Settings.instance
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def update
|
|
10
|
+
@settings = Settings.instance
|
|
11
|
+
if @settings.update_attributes(settings_params)
|
|
12
|
+
render json: @settings
|
|
13
|
+
else
|
|
14
|
+
render json: @settings.to_json(methods: :errors), status: :unprocessable_entity
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
protected
|
|
19
|
+
|
|
20
|
+
def settings_params
|
|
21
|
+
params.require(:setting).permit!
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module Kms
|
|
2
|
+
class SnippetsController < ApplicationController
|
|
3
|
+
respond_to :json
|
|
4
|
+
|
|
5
|
+
def index
|
|
6
|
+
render json: Snippet.all, root: false
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def create
|
|
10
|
+
@snippet = Snippet.create(snippet_params)
|
|
11
|
+
render json: @snippet, root: false
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def update
|
|
15
|
+
@snippet = Snippet.find(params[:id])
|
|
16
|
+
@snippet.update(snippet_params)
|
|
17
|
+
render json: @snippet, root: false
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def show
|
|
21
|
+
@snippet = Snippet.find(params[:id])
|
|
22
|
+
render json: @snippet, root: false
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def destroy
|
|
26
|
+
@snippet = Snippet.find(params[:id])
|
|
27
|
+
@snippet.destroy
|
|
28
|
+
render json: @snippet
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
protected
|
|
32
|
+
|
|
33
|
+
def snippet_params
|
|
34
|
+
params.require(:snippet).permit!
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Kms
|
|
2
|
+
class TemplatesController < ApplicationController
|
|
3
|
+
load_and_authorize_resource
|
|
4
|
+
def index
|
|
5
|
+
render json: Template.all.to_json
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def create
|
|
9
|
+
@template = Template.new(template_params)
|
|
10
|
+
if @template.save
|
|
11
|
+
render json: @template.to_json
|
|
12
|
+
else
|
|
13
|
+
render json: @template.to_json(methods: :errors), status: :unprocessable_entity
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def update
|
|
18
|
+
@template = Template.find(params[:id])
|
|
19
|
+
if @template.update_attributes(template_params)
|
|
20
|
+
render json: @template.to_json
|
|
21
|
+
else
|
|
22
|
+
render json: @template.to_json(methods: :errors), status: :unprocessable_entity
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def show
|
|
27
|
+
@template = Template.find(params[:id])
|
|
28
|
+
render json: @template.to_json
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def destroy
|
|
32
|
+
@template = Template.find(params[:id])
|
|
33
|
+
@template.destroy
|
|
34
|
+
render json: @template.to_json
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
protected
|
|
38
|
+
|
|
39
|
+
def template_params
|
|
40
|
+
params.require(:template).permit(:name,:content)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Kms
|
|
2
|
+
class UsersController < ApplicationController
|
|
3
|
+
before_action :authenticate_kms_user!
|
|
4
|
+
load_and_authorize_resource
|
|
5
|
+
skip_authorize_resource only: :kms_user
|
|
6
|
+
|
|
7
|
+
def index
|
|
8
|
+
render json: User.all.to_json(except: [:created_at, :updated_at], methods: :localized_role)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def create
|
|
12
|
+
user_params.merge!(password: params[:password], password_confirmation: params[:password_confirmation]) if params[:password]
|
|
13
|
+
@user = User.new(user_params)
|
|
14
|
+
@user.save
|
|
15
|
+
render json: @user.to_json
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def destroy
|
|
19
|
+
@user = User.find(params[:id])
|
|
20
|
+
@user.destroy
|
|
21
|
+
render json: @user.to_json
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def kms_user
|
|
25
|
+
render json: current_kms_user.to_json
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
protected
|
|
29
|
+
|
|
30
|
+
def user_params
|
|
31
|
+
params.require(:user).permit!
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class Users::ConfirmationsController < Devise::ConfirmationsController
|
|
2
|
+
# GET /resource/confirmation/new
|
|
3
|
+
# def new
|
|
4
|
+
# super
|
|
5
|
+
# end
|
|
6
|
+
|
|
7
|
+
# POST /resource/confirmation
|
|
8
|
+
# def create
|
|
9
|
+
# super
|
|
10
|
+
# end
|
|
11
|
+
|
|
12
|
+
# GET /resource/confirmation?confirmation_token=abcdef
|
|
13
|
+
# def show
|
|
14
|
+
# super
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
# protected
|
|
18
|
+
|
|
19
|
+
# The path used after resending confirmation instructions.
|
|
20
|
+
# def after_resending_confirmation_instructions_path_for(resource_name)
|
|
21
|
+
# super(resource_name)
|
|
22
|
+
# end
|
|
23
|
+
|
|
24
|
+
# The path used after confirmation.
|
|
25
|
+
# def after_confirmation_path_for(resource_name, resource)
|
|
26
|
+
# super(resource_name, resource)
|
|
27
|
+
# end
|
|
28
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
|
2
|
+
# You should configure your model like this:
|
|
3
|
+
# devise :omniauthable, omniauth_providers: [:twitter]
|
|
4
|
+
|
|
5
|
+
# You should also create an action method in this controller like this:
|
|
6
|
+
# def twitter
|
|
7
|
+
# end
|
|
8
|
+
|
|
9
|
+
# More info at:
|
|
10
|
+
# https://github.com/plataformatec/devise#omniauth
|
|
11
|
+
|
|
12
|
+
# GET|POST /resource/auth/twitter
|
|
13
|
+
# def passthru
|
|
14
|
+
# super
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
# GET|POST /users/auth/twitter/callback
|
|
18
|
+
# def failure
|
|
19
|
+
# super
|
|
20
|
+
# end
|
|
21
|
+
|
|
22
|
+
# protected
|
|
23
|
+
|
|
24
|
+
# The path used when omniauth fails
|
|
25
|
+
# def after_omniauth_failure_path_for(scope)
|
|
26
|
+
# super(scope)
|
|
27
|
+
# end
|
|
28
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
class Users::PasswordsController < Devise::PasswordsController
|
|
2
|
+
# GET /resource/password/new
|
|
3
|
+
# def new
|
|
4
|
+
# super
|
|
5
|
+
# end
|
|
6
|
+
|
|
7
|
+
# POST /resource/password
|
|
8
|
+
# def create
|
|
9
|
+
# super
|
|
10
|
+
# end
|
|
11
|
+
|
|
12
|
+
# GET /resource/password/edit?reset_password_token=abcdef
|
|
13
|
+
# def edit
|
|
14
|
+
# super
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
# PUT /resource/password
|
|
18
|
+
# def update
|
|
19
|
+
# super
|
|
20
|
+
# end
|
|
21
|
+
|
|
22
|
+
# protected
|
|
23
|
+
|
|
24
|
+
# def after_resetting_password_path_for(resource)
|
|
25
|
+
# super(resource)
|
|
26
|
+
# end
|
|
27
|
+
|
|
28
|
+
# The path used after sending reset password instructions
|
|
29
|
+
# def after_sending_reset_password_instructions_path_for(resource_name)
|
|
30
|
+
# super(resource_name)
|
|
31
|
+
# end
|
|
32
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
class Users::RegistrationsController < Devise::RegistrationsController
|
|
2
|
+
#before_filter :configure_sign_up_params, only: [:create]
|
|
3
|
+
# before_filter :configure_account_update_params, only: [:update]
|
|
4
|
+
|
|
5
|
+
# GET /resource/sign_up
|
|
6
|
+
# def new
|
|
7
|
+
# super
|
|
8
|
+
# end
|
|
9
|
+
|
|
10
|
+
# POST /resource
|
|
11
|
+
# def create
|
|
12
|
+
# super
|
|
13
|
+
# end
|
|
14
|
+
|
|
15
|
+
# GET /resource/edit
|
|
16
|
+
# def edit
|
|
17
|
+
# super
|
|
18
|
+
# end
|
|
19
|
+
|
|
20
|
+
# PUT /resource
|
|
21
|
+
# def update
|
|
22
|
+
# super
|
|
23
|
+
# end
|
|
24
|
+
|
|
25
|
+
# DELETE /resource
|
|
26
|
+
# def destroy
|
|
27
|
+
# super
|
|
28
|
+
# end
|
|
29
|
+
|
|
30
|
+
# GET /resource/cancel
|
|
31
|
+
# Forces the session data which is usually expired after sign
|
|
32
|
+
# in to be expired now. This is useful if the user wants to
|
|
33
|
+
# cancel oauth signing in/up in the middle of the process,
|
|
34
|
+
# removing all OAuth session data.
|
|
35
|
+
# def cancel
|
|
36
|
+
# super
|
|
37
|
+
# end
|
|
38
|
+
|
|
39
|
+
protected
|
|
40
|
+
|
|
41
|
+
def build_resource(hash=nil)
|
|
42
|
+
self.resource = resource_class.new_with_session(hash || {}, session)
|
|
43
|
+
# make first user as admin
|
|
44
|
+
unless Kms::User.exists?
|
|
45
|
+
self.resource.role = "admin"
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
# You can put the params you want to permit in the empty array.
|
|
51
|
+
#def configure_sign_up_params
|
|
52
|
+
# make first user as admin
|
|
53
|
+
#devise_parameter_sanitizer.for(:sign_up) << :attribute
|
|
54
|
+
#end
|
|
55
|
+
|
|
56
|
+
# You can put the params you want to permit in the empty array.
|
|
57
|
+
# def configure_account_update_params
|
|
58
|
+
# devise_parameter_sanitizer.for(:account_update) << :attribute
|
|
59
|
+
# end
|
|
60
|
+
|
|
61
|
+
# The path used after sign up.
|
|
62
|
+
# def after_sign_up_path_for(resource)
|
|
63
|
+
# super(resource)
|
|
64
|
+
# end
|
|
65
|
+
|
|
66
|
+
# The path used after sign up for inactive accounts.
|
|
67
|
+
# def after_inactive_sign_up_path_for(resource)
|
|
68
|
+
# super(resource)
|
|
69
|
+
# end
|
|
70
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class Users::SessionsController < Devise::SessionsController
|
|
2
|
+
# before_filter :configure_sign_in_params, only: [:create]
|
|
3
|
+
|
|
4
|
+
# GET /resource/sign_in
|
|
5
|
+
# def new
|
|
6
|
+
# super
|
|
7
|
+
# end
|
|
8
|
+
|
|
9
|
+
# POST /resource/sign_in
|
|
10
|
+
# def create
|
|
11
|
+
# super
|
|
12
|
+
# end
|
|
13
|
+
|
|
14
|
+
# DELETE /resource/sign_out
|
|
15
|
+
# def destroy
|
|
16
|
+
# super
|
|
17
|
+
# end
|
|
18
|
+
|
|
19
|
+
# protected
|
|
20
|
+
|
|
21
|
+
# You can put the params you want to permit in the empty array.
|
|
22
|
+
# def configure_sign_in_params
|
|
23
|
+
# devise_parameter_sanitizer.for(:sign_in) << :attribute
|
|
24
|
+
# end
|
|
25
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
class Users::UnlocksController < Devise::UnlocksController
|
|
2
|
+
# GET /resource/unlock/new
|
|
3
|
+
# def new
|
|
4
|
+
# super
|
|
5
|
+
# end
|
|
6
|
+
|
|
7
|
+
# POST /resource/unlock
|
|
8
|
+
# def create
|
|
9
|
+
# super
|
|
10
|
+
# end
|
|
11
|
+
|
|
12
|
+
# GET /resource/unlock?unlock_token=abcdef
|
|
13
|
+
# def show
|
|
14
|
+
# super
|
|
15
|
+
# end
|
|
16
|
+
|
|
17
|
+
# protected
|
|
18
|
+
|
|
19
|
+
# The path used after sending unlock password instructions
|
|
20
|
+
# def after_sending_unlock_instructions_path_for(resource)
|
|
21
|
+
# super(resource)
|
|
22
|
+
# end
|
|
23
|
+
|
|
24
|
+
# The path used after unlocking the resource
|
|
25
|
+
# def after_unlock_path_for(resource)
|
|
26
|
+
# super(resource)
|
|
27
|
+
# end
|
|
28
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
class Ability
|
|
2
|
+
include CanCan::Ability
|
|
3
|
+
|
|
4
|
+
def initialize(user)
|
|
5
|
+
# Define abilities for the passed in user here. For example:
|
|
6
|
+
#
|
|
7
|
+
user ||= Kms::User.new # guest user (not logged in)
|
|
8
|
+
if user.admin?
|
|
9
|
+
can :manage, :all
|
|
10
|
+
else
|
|
11
|
+
can :index, Kms::Template
|
|
12
|
+
can :manage, Kms::Page
|
|
13
|
+
can :manage, Kms::Asset
|
|
14
|
+
Kms::AbilityService.abilities.each do |ability_block|
|
|
15
|
+
instance_eval(&ability_block)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
#
|
|
20
|
+
# The first argument to `can` is the action you are giving the user
|
|
21
|
+
# permission to do.
|
|
22
|
+
# If you pass :manage it will apply to every action. Other common actions
|
|
23
|
+
# here are :read, :create, :update and :destroy.
|
|
24
|
+
#
|
|
25
|
+
# The second argument is the resource the user can perform the action on.
|
|
26
|
+
# If you pass :all it will apply to every resource. Otherwise pass a Ruby
|
|
27
|
+
# class of the resource.
|
|
28
|
+
#
|
|
29
|
+
# The third argument is an optional hash of conditions to further filter the
|
|
30
|
+
# objects.
|
|
31
|
+
# For example, here the user can only update published articles.
|
|
32
|
+
#
|
|
33
|
+
# can :update, Article, :published => true
|
|
34
|
+
#
|
|
35
|
+
# See the wiki for details:
|
|
36
|
+
# https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities
|
|
37
|
+
end
|
|
38
|
+
end
|