decidim-admin 0.10.1 → 0.11.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/app/assets/config/decidim_admin_manifest.js +1 -0
- data/app/assets/javascripts/decidim/admin/application.js.es6 +13 -5
- data/app/assets/javascripts/decidim/admin/auto_buttons_by_position.component.js.es6 +42 -0
- data/app/assets/javascripts/decidim/admin/auto_label_by_position.component.js.es6 +33 -0
- data/app/assets/javascripts/decidim/admin/dynamic_fields.component.js.es6 +163 -0
- data/app/assets/javascripts/decidim/admin/field_dependent_inputs.component.js.es6 +39 -0
- data/app/assets/javascripts/decidim/admin/managed_users.js.es6 +12 -0
- data/app/assets/javascripts/decidim/admin/sort_list.component.js.es6 +1 -1
- data/app/assets/javascripts/decidim/admin/subform_toggler.component.js.es6 +35 -0
- data/app/assets/javascripts/decidim/admin/tab_focus.js.es6 +4 -4
- data/app/assets/stylesheets/decidim/admin/application.scss.erb +1 -1
- data/app/assets/stylesheets/decidim/admin/extra/_dropdown_inverted.scss +7 -5
- data/app/assets/stylesheets/decidim/admin/modules/_agenda.scss +34 -0
- data/app/assets/stylesheets/decidim/admin/modules/_buttons.scss +5 -0
- data/app/assets/stylesheets/decidim/admin/modules/_cards.scss +15 -0
- data/app/assets/stylesheets/decidim/admin/modules/_forms.scss +4 -0
- data/app/assets/stylesheets/decidim/admin/modules/_modules.scss +1 -0
- data/app/assets/stylesheets/decidim/admin/modules/_typography.scss +8 -0
- data/app/assets/stylesheets/decidim/admin/utils/_flex.scss +2 -2
- data/app/assets/stylesheets/decidim/admin/utils/_helpers.scss +28 -0
- data/app/assets/stylesheets/decidim/admin/utils/_mixins.scss +44 -0
- data/app/commands/decidim/admin/create_area.rb +3 -1
- data/app/commands/decidim/admin/{create_feature.rb → create_component.rb} +11 -11
- data/app/commands/decidim/admin/create_oauth_application.rb +36 -0
- data/app/commands/decidim/admin/create_participatory_space_private_user.rb +85 -0
- data/app/commands/decidim/admin/destroy_area.rb +42 -0
- data/app/commands/decidim/admin/{destroy_feature.rb → destroy_component.rb} +11 -11
- data/app/commands/decidim/admin/destroy_oauth_application.rb +39 -0
- data/app/commands/decidim/admin/{impersonate_managed_user.rb → impersonate_user.rb} +19 -13
- data/app/commands/decidim/admin/publish_component.rb +51 -0
- data/app/commands/decidim/admin/{unpublish_feature.rb → unpublish_component.rb} +12 -12
- data/app/commands/decidim/admin/update_area.rb +5 -1
- data/app/commands/decidim/admin/update_component.rb +62 -0
- data/app/commands/decidim/admin/{update_feature_permissions.rb → update_component_permissions.rb} +10 -10
- data/app/commands/decidim/admin/update_oauth_application.rb +39 -0
- data/app/controllers/decidim/admin/application_controller.rb +1 -1
- data/app/controllers/decidim/admin/areas_controller.rb +6 -4
- data/app/controllers/decidim/admin/{feature_permissions_controller.rb → component_permissions_controller.rb} +12 -12
- data/app/controllers/decidim/admin/{features → components}/base_controller.rb +9 -9
- data/app/controllers/decidim/admin/components_controller.rb +142 -0
- data/app/controllers/decidim/admin/concerns/has_private_users.rb +102 -0
- data/app/controllers/decidim/admin/dashboard_controller.rb +1 -1
- data/app/controllers/decidim/admin/exports_controller.rb +6 -6
- data/app/controllers/decidim/admin/impersonatable_users_controller.rb +29 -0
- data/app/controllers/decidim/admin/impersonations_controller.rb +122 -0
- data/app/controllers/decidim/admin/logs_controller.rb +1 -1
- data/app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb +25 -0
- data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +3 -5
- data/app/controllers/decidim/admin/newsletters_controller.rb +1 -1
- data/app/controllers/decidim/admin/oauth_applications_controller.rb +90 -0
- data/app/controllers/decidim/admin/officializations_controller.rb +4 -3
- data/app/events/decidim/component_published_event.rb +6 -0
- data/app/forms/decidim/admin/{feature_form.rb → component_form.rb} +3 -3
- data/app/forms/decidim/admin/impersonate_user_form.rb +26 -0
- data/app/forms/decidim/admin/oauth_application_form.rb +32 -0
- data/app/forms/decidim/admin/organization_appearance_form.rb +6 -1
- data/app/forms/decidim/admin/organization_form.rb +1 -1
- data/app/forms/decidim/admin/participatory_space_private_user_form.rb +18 -0
- data/app/forms/decidim/admin/permissions_form.rb +1 -1
- data/app/helpers/decidim/admin/attributes_display_helper.rb +10 -3
- data/app/helpers/decidim/admin/bulk_actions_helper.rb +36 -0
- data/app/helpers/decidim/admin/exports_helper.rb +10 -10
- data/app/helpers/decidim/admin/settings_helper.rb +1 -1
- data/app/models/decidim/admin/abilities/admin_ability.rb +12 -9
- data/app/models/decidim/admin/abilities/participatory_process_admin_ability.rb +2 -2
- data/app/models/decidim/admin/abilities/user_manager_ability.rb +7 -6
- data/app/queries/decidim/admin/user_filter.rb +59 -0
- data/app/views/decidim/admin/area_types/edit.html.erb +1 -1
- data/app/views/decidim/admin/area_types/index.html.erb +2 -2
- data/app/views/decidim/admin/area_types/new.html.erb +1 -1
- data/app/views/decidim/admin/areas/edit.html.erb +1 -1
- data/app/views/decidim/admin/areas/index.html.erb +2 -2
- data/app/views/decidim/admin/areas/new.html.erb +1 -1
- data/app/views/decidim/admin/attachment_collections/edit.html.erb +1 -1
- data/app/views/decidim/admin/attachment_collections/index.html.erb +2 -2
- data/app/views/decidim/admin/attachment_collections/new.html.erb +1 -1
- data/app/views/decidim/admin/attachment_collections/show.html.erb +2 -3
- data/app/views/decidim/admin/attachments/edit.html.erb +1 -1
- data/app/views/decidim/admin/attachments/index.html.erb +1 -1
- data/app/views/decidim/admin/attachments/new.html.erb +1 -1
- data/app/views/decidim/admin/attachments/show.html.erb +2 -3
- data/app/views/decidim/admin/bulk_actions/_recategorize.html.erb +1 -1
- data/app/views/decidim/admin/categories/edit.html.erb +1 -1
- data/app/views/decidim/admin/categories/index.html.erb +2 -2
- data/app/views/decidim/admin/categories/new.html.erb +1 -1
- data/app/views/decidim/admin/categories/show.html.erb +2 -3
- data/app/views/decidim/admin/{feature_permissions → component_permissions}/edit.html.erb +3 -3
- data/app/views/decidim/admin/components/_component.html.erb +37 -0
- data/app/views/decidim/admin/{features → components}/_form.html.erb +6 -6
- data/app/views/decidim/admin/{features → components}/_settings_fields.html.erb +2 -2
- data/app/views/decidim/admin/components/edit.html.erb +7 -0
- data/app/views/decidim/admin/{features → components}/index.html.erb +6 -6
- data/app/views/decidim/admin/components/new.html.erb +8 -0
- data/app/views/decidim/admin/devise/mailers/reset_password_instructions.html.erb +1 -1
- data/app/views/decidim/admin/exports/_dropdown.html.erb +3 -3
- data/app/views/decidim/admin/impersonatable_users/index.html.erb +84 -0
- data/app/views/decidim/admin/impersonations/_form.html.erb +40 -0
- data/app/views/decidim/admin/impersonations/_handler_form.html.erb +5 -0
- data/app/views/decidim/admin/impersonations/new.html.erb +23 -0
- data/app/views/decidim/admin/managed_users/{impersonations → impersonation_logs}/index.html.erb +2 -0
- data/app/views/decidim/admin/managed_users/promotions/new.html.erb +4 -4
- data/app/views/decidim/admin/moderations/index.html.erb +2 -2
- data/app/views/decidim/admin/newsletters/_form.html.erb +1 -1
- data/app/views/decidim/admin/newsletters/edit.html.erb +1 -1
- data/app/views/decidim/admin/newsletters/index.html.erb +1 -1
- data/app/views/decidim/admin/newsletters/new.html.erb +1 -1
- data/app/views/decidim/admin/newsletters/show.html.erb +1 -1
- data/app/views/decidim/admin/oauth_applications/_form.html.erb +19 -0
- data/app/views/decidim/admin/oauth_applications/edit.html.erb +13 -0
- data/app/views/decidim/admin/oauth_applications/index.html.erb +38 -0
- data/app/views/decidim/admin/oauth_applications/new.html.erb +13 -0
- data/app/views/decidim/admin/oauth_applications/show.html.erb +27 -0
- data/app/views/decidim/admin/officializations/index.html.erb +2 -2
- data/app/views/decidim/admin/officializations/new.html.erb +2 -2
- data/app/views/decidim/admin/organization/_form.html.erb +1 -1
- data/app/views/decidim/admin/organization/edit.html.erb +1 -2
- data/app/views/decidim/admin/organization_appearance/edit.html.erb +1 -2
- data/app/views/decidim/admin/participatory_space_private_users/_form.html.erb +18 -0
- data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +59 -0
- data/app/views/decidim/admin/participatory_space_private_users/new.html.erb +7 -0
- data/app/views/decidim/admin/scope_types/edit.html.erb +1 -1
- data/app/views/decidim/admin/scope_types/index.html.erb +2 -2
- data/app/views/decidim/admin/scope_types/new.html.erb +1 -1
- data/app/views/decidim/admin/scopes/edit.html.erb +1 -1
- data/app/views/decidim/admin/scopes/index.html.erb +3 -3
- data/app/views/decidim/admin/scopes/new.html.erb +1 -1
- data/app/views/decidim/admin/static_pages/edit.html.erb +1 -1
- data/app/views/decidim/admin/static_pages/index.html.erb +3 -3
- data/app/views/decidim/admin/static_pages/new.html.erb +1 -1
- data/app/views/decidim/admin/static_pages/show.html.erb +2 -3
- data/app/views/decidim/admin/user_groups/index.html.erb +3 -3
- data/app/views/decidim/admin/users/_form.html.erb +3 -3
- data/app/views/decidim/admin/users/index.html.erb +2 -2
- data/app/views/decidim/admin/users/new.html.erb +1 -1
- data/app/views/layouts/decidim/admin/_application.html.erb +9 -9
- data/app/views/layouts/decidim/admin/_header.html.erb +3 -4
- data/app/views/layouts/decidim/admin/_template_top.html.erb +1 -1
- data/app/views/layouts/decidim/admin/_title_bar.html.erb +1 -1
- data/app/views/layouts/decidim/admin/login.html.erb +1 -1
- data/app/views/layouts/decidim/admin/pages.html.erb +1 -1
- data/app/views/layouts/decidim/admin/users.html.erb +5 -3
- data/config/locales/ca.yml +119 -50
- data/config/locales/en.yml +119 -50
- data/config/locales/es.yml +120 -51
- data/config/locales/eu.yml +122 -53
- data/config/locales/fi.yml +121 -52
- data/config/locales/fr.yml +159 -90
- data/config/locales/gl.yml +119 -50
- data/config/locales/it.yml +120 -51
- data/config/locales/nl.yml +207 -138
- data/config/locales/pl.yml +119 -50
- data/config/locales/pt-BR.yml +120 -51
- data/config/locales/pt.yml +120 -51
- data/config/locales/ru.yml +7 -51
- data/config/locales/sv.yml +120 -51
- data/config/locales/uk.yml +7 -52
- data/config/routes.rb +6 -2
- data/db/migrate/20180413233318_add_reason_to_decidim_impersonation_logs.rb +7 -0
- data/lib/decidim/admin/components.rb +11 -0
- data/lib/decidim/admin/engine.rb +12 -3
- data/lib/decidim/admin/test/forms/attachment_collection_form_examples.rb +9 -9
- data/lib/decidim/admin/test/forms/attachment_form_examples.rb +1 -1
- data/lib/decidim/admin/test/forms/category_form_examples.rb +11 -11
- data/lib/decidim/admin/test/{manage_feature_permissions_examples.rb → manage_component_permissions_examples.rb} +9 -9
- data/lib/decidim/admin/test/manage_moderations_examples.rb +2 -2
- data/lib/decidim/admin/test.rb +1 -1
- data/lib/decidim/admin/version.rb +1 -1
- data/lib/decidim/admin.rb +1 -1
- metadata +66 -43
- data/app/commands/decidim/admin/create_managed_user.rb +0 -69
- data/app/commands/decidim/admin/publish_feature.rb +0 -51
- data/app/commands/decidim/admin/update_feature.rb +0 -62
- data/app/controllers/decidim/admin/features_controller.rb +0 -142
- data/app/controllers/decidim/admin/managed_users/impersonations_controller.rb +0 -78
- data/app/controllers/decidim/admin/managed_users_controller.rb +0 -83
- data/app/events/decidim/feature_published_event.rb +0 -6
- data/app/forms/decidim/admin/impersonate_managed_user_form.rb +0 -20
- data/app/forms/decidim/admin/managed_user_form.rb +0 -24
- data/app/queries/decidim/admin/users_officialization.rb +0 -56
- data/app/views/decidim/admin/features/_feature.html.erb +0 -37
- data/app/views/decidim/admin/features/edit.html.erb +0 -7
- data/app/views/decidim/admin/features/new.html.erb +0 -8
- data/app/views/decidim/admin/managed_users/_form.html.erb +0 -12
- data/app/views/decidim/admin/managed_users/impersonations/_form.html.erb +0 -10
- data/app/views/decidim/admin/managed_users/impersonations/new.html.erb +0 -15
- data/app/views/decidim/admin/managed_users/index.html.erb +0 -44
- data/app/views/decidim/admin/managed_users/new.html.erb +0 -47
- data/lib/decidim/admin/features.rb +0 -11
@@ -1,78 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency "decidim/admin/application_controller"
|
4
|
-
|
5
|
-
module Decidim
|
6
|
-
module Admin
|
7
|
-
module ManagedUsers
|
8
|
-
# Controller that allows impersonating managed users at the admin panel.
|
9
|
-
#
|
10
|
-
class ImpersonationsController < Admin::ApplicationController
|
11
|
-
layout "decidim/admin/users"
|
12
|
-
|
13
|
-
skip_authorization_check only: [:index, :close_session]
|
14
|
-
|
15
|
-
def index
|
16
|
-
@impersonation_logs = Decidim::ImpersonationLog.where(user: user).order(started_at: :desc).page(params[:page]).per(15)
|
17
|
-
end
|
18
|
-
|
19
|
-
def new
|
20
|
-
authorize! :impersonate, user
|
21
|
-
|
22
|
-
if handler_name.present?
|
23
|
-
@form = form(ImpersonateManagedUserForm).from_params(
|
24
|
-
authorization: {
|
25
|
-
handler_name: handler_name
|
26
|
-
}
|
27
|
-
)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def create
|
32
|
-
authorize! :impersonate, user
|
33
|
-
|
34
|
-
@form = form(ImpersonateManagedUserForm).from_params(params)
|
35
|
-
|
36
|
-
ImpersonateManagedUser.call(@form, user) do
|
37
|
-
on(:ok) do
|
38
|
-
redirect_to decidim.root_path
|
39
|
-
end
|
40
|
-
|
41
|
-
on(:invalid) do
|
42
|
-
flash.now[:alert] = I18n.t("managed_users.impersonate.error", scope: "decidim.admin")
|
43
|
-
render :new
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def close_session
|
49
|
-
CloseSessionManagedUser.call(user, current_user) do
|
50
|
-
on(:ok) do
|
51
|
-
flash[:notice] = I18n.t("managed_users.close_session.success", scope: "decidim.admin")
|
52
|
-
redirect_to managed_users_path
|
53
|
-
end
|
54
|
-
|
55
|
-
on(:invalid) do
|
56
|
-
flash.now[:alert] = I18n.t("managed_users.close_session.error", scope: "decidim.admin")
|
57
|
-
redirect_to decidim.root_path
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
private
|
63
|
-
|
64
|
-
def user
|
65
|
-
@user ||= current_organization.users.managed.find(params[:managed_user_id])
|
66
|
-
end
|
67
|
-
|
68
|
-
def handler_name
|
69
|
-
authorization.name
|
70
|
-
end
|
71
|
-
|
72
|
-
def authorization
|
73
|
-
@authorization ||= Authorization.where(user: user).first
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency "decidim/admin/application_controller"
|
4
|
-
|
5
|
-
module Decidim
|
6
|
-
module Admin
|
7
|
-
# Controller that allows managing managed users at the admin panel.
|
8
|
-
#
|
9
|
-
class ManagedUsersController < Admin::ApplicationController
|
10
|
-
layout "decidim/admin/users"
|
11
|
-
|
12
|
-
helper_method :available_authorization_handlers,
|
13
|
-
:more_than_one_authorization_handler?,
|
14
|
-
:select_authorization_handler_step?
|
15
|
-
|
16
|
-
def index
|
17
|
-
authorize! :index, :managed_users
|
18
|
-
@managed_users = collection.page(params[:page]).per(15)
|
19
|
-
end
|
20
|
-
|
21
|
-
def new
|
22
|
-
authorize! :new, :managed_users
|
23
|
-
|
24
|
-
if available_authorization_handlers.blank?
|
25
|
-
flash[:alert] = I18n.t("managed_users.new.no_authorization_handlers", scope: "decidim.admin")
|
26
|
-
redirect_to action: :index
|
27
|
-
end
|
28
|
-
|
29
|
-
unless select_authorization_handler_step?
|
30
|
-
@form = form(ManagedUserForm).from_params(
|
31
|
-
authorization: {
|
32
|
-
handler_name: handler_name
|
33
|
-
}
|
34
|
-
)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def create
|
39
|
-
authorize! :create, :managed_users
|
40
|
-
|
41
|
-
@form = form(ManagedUserForm).from_params(params)
|
42
|
-
|
43
|
-
CreateManagedUser.call(@form) do
|
44
|
-
on(:ok) do
|
45
|
-
flash[:notice] = I18n.t("managed_users.create.success", scope: "decidim.admin")
|
46
|
-
redirect_to decidim.root_path
|
47
|
-
end
|
48
|
-
|
49
|
-
on(:invalid) do
|
50
|
-
flash.now[:alert] = I18n.t("managed_users.create.error", scope: "decidim.admin")
|
51
|
-
render :new
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
def select_authorization_handler_step?
|
59
|
-
handler_name.blank? && params[:managed_user].blank?
|
60
|
-
end
|
61
|
-
|
62
|
-
def collection
|
63
|
-
@collection ||= current_organization.users.managed
|
64
|
-
end
|
65
|
-
|
66
|
-
def handler_name
|
67
|
-
return if available_authorization_handlers.blank?
|
68
|
-
return params[:handler_name] if more_than_one_authorization_handler?
|
69
|
-
available_authorization_handlers.first.name
|
70
|
-
end
|
71
|
-
|
72
|
-
def available_authorization_handlers
|
73
|
-
Decidim::Verifications::Adapter.from_collection(
|
74
|
-
current_organization.available_authorizations & Decidim.authorization_handlers.map(&:name)
|
75
|
-
)
|
76
|
-
end
|
77
|
-
|
78
|
-
def more_than_one_authorization_handler?
|
79
|
-
available_authorization_handlers.length > 1
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# A form object used to impersonate managed users from the admin dashboard.
|
6
|
-
#
|
7
|
-
# This form will contain a dynamic attribute for the user authorization.
|
8
|
-
# This authorization will be selected by the admin user if more than one exists.
|
9
|
-
class ImpersonateManagedUserForm < Form
|
10
|
-
def initialize(attributes)
|
11
|
-
extend(Virtus.model)
|
12
|
-
|
13
|
-
# Set the authorization dynamic attribute as a nested form class based on the handler name.
|
14
|
-
attribute(:authorization, Decidim::AuthorizationHandler.handler_for(attributes.dig(:authorization, :handler_name)))
|
15
|
-
|
16
|
-
super
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# A form object used to create managed users from the admin dashboard.
|
6
|
-
#
|
7
|
-
# This form will contain a dynamic attribute for the user authorization.
|
8
|
-
# This authorization will be selected by the admin user if more than one exists.
|
9
|
-
class ManagedUserForm < Form
|
10
|
-
attribute :name, String
|
11
|
-
|
12
|
-
validates :name, presence: true
|
13
|
-
|
14
|
-
def initialize(attributes)
|
15
|
-
extend(Virtus.model)
|
16
|
-
|
17
|
-
# Set the authorization dynamic attribute as a nested form class based on the handler name.
|
18
|
-
attribute(:authorization, Decidim::AuthorizationHandler.handler_for(attributes.dig(:authorization, :handler_name)))
|
19
|
-
|
20
|
-
super
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# A class used to filter User's by their officialization state.
|
6
|
-
class UsersOfficialization < Rectify::Query
|
7
|
-
# Syntactic sugar to initialize the class and return the queried objects.
|
8
|
-
#
|
9
|
-
# organization - the Decidim::Organization where search will be scoped to
|
10
|
-
# name_query - query to filter user group names
|
11
|
-
# state - evaluation state to be used as a filter
|
12
|
-
def self.for(organization, name_query = nil, state = nil)
|
13
|
-
new(organization, name_query, state).query
|
14
|
-
end
|
15
|
-
|
16
|
-
# Initializes the class.
|
17
|
-
#
|
18
|
-
# organization - the Decidim::Organization where search will be scoped to
|
19
|
-
# name_query - query to filter user group names
|
20
|
-
# state - officialization state to be used as a filter
|
21
|
-
def initialize(organization, name_query = nil, state = nil)
|
22
|
-
@organization = organization
|
23
|
-
@name_query = name_query
|
24
|
-
@state = state
|
25
|
-
end
|
26
|
-
|
27
|
-
# List the User groups by the diferents filters.
|
28
|
-
def query
|
29
|
-
users = Decidim::User.where(organization: organization)
|
30
|
-
users = filter_by_search(users)
|
31
|
-
users = filter_by_state(users)
|
32
|
-
users
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
attr_reader :name_query, :state, :organization
|
38
|
-
|
39
|
-
def filter_by_search(users)
|
40
|
-
return users if name_query.blank?
|
41
|
-
users.where("LOWER(name) LIKE LOWER(?)", "%#{name_query}%")
|
42
|
-
end
|
43
|
-
|
44
|
-
def filter_by_state(users)
|
45
|
-
case state
|
46
|
-
when "officialized"
|
47
|
-
users.where.not(officialized_at: nil)
|
48
|
-
when "not_officialized"
|
49
|
-
users.where(officialized_at: nil)
|
50
|
-
else
|
51
|
-
users
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
<tr class="feature-<%= feature.id %>">
|
2
|
-
<td>
|
3
|
-
<%= link_to main_feature_path(feature), target: "_blank" do %>
|
4
|
-
<%= translated_attribute feature.name %>
|
5
|
-
<% end %>
|
6
|
-
</td>
|
7
|
-
<td>
|
8
|
-
<%= t "decidim.features.#{feature.manifest.name}.name" %>
|
9
|
-
</td>
|
10
|
-
<td class="table-list__actions">
|
11
|
-
<% if feature.manifest.admin_engine %>
|
12
|
-
<%= icon_link_to "pencil", manage_feature_path(feature), t("actions.manage", scope: "decidim.admin"), class: "action-icon--manage" %>
|
13
|
-
<% end %>
|
14
|
-
|
15
|
-
<% if can?(:update, feature) %>
|
16
|
-
<% if feature.published? %>
|
17
|
-
<%= icon_link_to "x", url_for(action: :unpublish, id: feature, controller: "features"), t("actions.unpublish", scope: "decidim.admin"), class: "action-icon--unpublish", method: :put %>
|
18
|
-
<% else %>
|
19
|
-
<%= icon_link_to "check", url_for(action: :publish, id: feature, controller: "features"), t("actions.publish", scope: "decidim.admin"), class: "action-icon--publish", method: :put %>
|
20
|
-
<% end %>
|
21
|
-
<% end %>
|
22
|
-
|
23
|
-
<% if can? :update, feature %>
|
24
|
-
<%= icon_link_to "cog", url_for(action: :edit, id: feature, controller: "features"), t("actions.configure", scope: "decidim.admin"), class: "action-icon--configure" %>
|
25
|
-
<% end %>
|
26
|
-
|
27
|
-
<% if can? :update, feature %>
|
28
|
-
<% if feature.manifest.actions.empty? %>
|
29
|
-
<%= icon "key", class: "action-icon action-icon--disabled" %>
|
30
|
-
<% else %>
|
31
|
-
<%= icon_link_to "key", url_for(action: :edit, feature_id: feature, controller: "feature_permissions"), t("actions.permissions", scope: "decidim.admin"), class: "action-icon--permissions" %>
|
32
|
-
<% end %>
|
33
|
-
<% end %>
|
34
|
-
|
35
|
-
<%= icon_link_to "circle-x", url_for(action: :destroy, id: feature, controller: "features"), t("actions.destroy", scope: "decidim.admin"), class: "action-icon--remove", method: :delete %>
|
36
|
-
</td>
|
37
|
-
</tr>
|
@@ -1,7 +0,0 @@
|
|
1
|
-
<%= decidim_form_for([current_participatory_space, @form], url: feature_path(current_participatory_space, @feature), method: "put", html: { class: "form edit_feature" }) do |form| %>
|
2
|
-
<%= render partial: 'form', object: form, locals: { feature: @feature, title: t(".title", name: t("#{@feature.manifest.name}.name", scope: "decidim.features"))} %>
|
3
|
-
|
4
|
-
<div class="button--double form-general-submit">
|
5
|
-
<%= form.submit t(".update") %>
|
6
|
-
</div>
|
7
|
-
<% end %>
|
@@ -1,8 +0,0 @@
|
|
1
|
-
|
2
|
-
<%= decidim_form_for([current_participatory_space, @form], url: features_path(type: params[:type]), method: "post", html: { class: "form new_feature" }) do |form| %>
|
3
|
-
<%= render partial: 'form', object: form, locals: { feature: @feature, title: t(".title", name: t("#{manifest.name}.name", scope: "decidim.features"))} %>
|
4
|
-
|
5
|
-
<div class="button--double form-general-submit">
|
6
|
-
<%= form.submit t(".add") %>
|
7
|
-
</div>
|
8
|
-
<% end %>
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<div class="row column">
|
2
|
-
<%= form.text_field :name, label: t('.name') %>
|
3
|
-
|
4
|
-
<%= form.fields_for :authorization, form.object.authorization, builder: Decidim::AuthorizationFormBuilder do |f| %>
|
5
|
-
<% if lookup_context.exists?(form.object.authorization.to_partial_path, [], true) %>
|
6
|
-
<%= render partial: form.object.authorization.to_partial_path, locals: { handler: form.object.authorization, form: f } %>
|
7
|
-
<% else %>
|
8
|
-
<%= f.all_fields %>
|
9
|
-
<% end %>
|
10
|
-
<%= f.hidden_field :handler_name %>
|
11
|
-
<% end %>
|
12
|
-
</div>
|
@@ -1,10 +0,0 @@
|
|
1
|
-
<div class="row column">
|
2
|
-
<%= form.fields_for :authorization, form.object.authorization, builder: Decidim::AuthorizationFormBuilder do |f| %>
|
3
|
-
<% if lookup_context.exists?(form.object.authorization.to_partial_path, [], true) %>
|
4
|
-
<%= render partial: form.object.authorization.to_partial_path, locals: { handler: form.object.authorization, form: f } %>
|
5
|
-
<% else %>
|
6
|
-
<%= f.all_fields %>
|
7
|
-
<% end %>
|
8
|
-
<%= f.hidden_field :handler_name %>
|
9
|
-
<% end %>
|
10
|
-
</div>
|
@@ -1,15 +0,0 @@
|
|
1
|
-
<h2 class="process-title-summary">
|
2
|
-
<%= t('.new_managed_user_impersonation') %>
|
3
|
-
</h2>
|
4
|
-
|
5
|
-
<%= decidim_form_for(@form, url: managed_user_impersonations_path, html: { class: "form new_managed_user_impersonation" }) do |f| %>
|
6
|
-
<div class="card">
|
7
|
-
<div class="card-section">
|
8
|
-
<%= render partial: 'form', object: f %>
|
9
|
-
</div>
|
10
|
-
</div>
|
11
|
-
|
12
|
-
<div class="button--double form-general-submit">
|
13
|
-
<%= f.submit t(".impersonate") %>
|
14
|
-
</div>
|
15
|
-
<% end %>
|
@@ -1,44 +0,0 @@
|
|
1
|
-
<% if current_organization.available_authorizations.empty? %>
|
2
|
-
<div class="section">
|
3
|
-
<div class="callout warning">
|
4
|
-
<p><%= t('.needs_authoriation_warning') %></p>
|
5
|
-
</div>
|
6
|
-
</div>
|
7
|
-
<% end %>
|
8
|
-
<div class="card">
|
9
|
-
<div class="card-divider">
|
10
|
-
<h2 class="card-title">
|
11
|
-
<%= t "decidim.admin.titles.managed_users" %>
|
12
|
-
<%= link_to t("actions.new", scope: "decidim.admin", name: t("models.managed_user.name", scope: "decidim.admin")), ['new', 'managed_user'], class: "button tiny button--title #{'disabled' if current_organization.available_authorizations.empty?}" %>
|
13
|
-
</h2>
|
14
|
-
</div>
|
15
|
-
<div class="card-section">
|
16
|
-
<div class="table-scroll">
|
17
|
-
<table class="table-list">
|
18
|
-
<thead>
|
19
|
-
<tr>
|
20
|
-
<th><%= t("models.user.fields.name", scope: "decidim.admin") %></th>
|
21
|
-
<th></th>
|
22
|
-
</tr>
|
23
|
-
</thead>
|
24
|
-
<tbody>
|
25
|
-
<% @managed_users.each do |user| %>
|
26
|
-
<tr>
|
27
|
-
<td><%= user.name %></td>
|
28
|
-
<td class="table-list__actions">
|
29
|
-
<% if can? :impersonate, user %>
|
30
|
-
<%= icon_link_to "account-login", new_managed_user_impersonation_path(user), t(".impersonate"), class: "action-icon--impersonate" %>
|
31
|
-
<% end %>
|
32
|
-
<%= icon_link_to "clock", managed_user_impersonations_path(user), t(".view_logs"), class: "action-icon--view-logs" %>
|
33
|
-
<% if can? :promote, user %>
|
34
|
-
<%= icon_link_to "badge", new_managed_user_promotion_path(user), t(".promote"), class: "action-icon--promote" %>
|
35
|
-
<% end %>
|
36
|
-
</td
|
37
|
-
</tr>
|
38
|
-
<% end %>
|
39
|
-
</tbody>
|
40
|
-
</table>
|
41
|
-
<%= paginate @managed_users, theme: "decidim" %>
|
42
|
-
</div>
|
43
|
-
</div>
|
44
|
-
</div>
|
@@ -1,47 +0,0 @@
|
|
1
|
-
<h2 class="process-title-summary">
|
2
|
-
<%= t('.new_managed_user') %>
|
3
|
-
<% if more_than_one_authorization_handler? %>
|
4
|
-
<span class="text-muted float-right"><%= t('.step', current: params[:handler_name].present? ? 2 : 1, total: 2) %></span>
|
5
|
-
<% end %>
|
6
|
-
</h2>
|
7
|
-
|
8
|
-
<% if select_authorization_handler_step? %>
|
9
|
-
<div class="card card--list">
|
10
|
-
<div class="card-divider">
|
11
|
-
<h2 class="card-title"><%= t ".select_authorization_method" %></h2>
|
12
|
-
</div>
|
13
|
-
<div class="card-section">
|
14
|
-
<% available_authorization_handlers.each do |handler| %>
|
15
|
-
<div class="card--list__item">
|
16
|
-
<div class="card--list__text">
|
17
|
-
<a href="#">
|
18
|
-
<%= icon "lock-locked", class: "card--list__icon" %>
|
19
|
-
</a>
|
20
|
-
<div>
|
21
|
-
<h5 class="card--list__heading">
|
22
|
-
<%= link_to handler.fullname, new_managed_user_path(handler_name: handler.name) %>
|
23
|
-
</h5>
|
24
|
-
</div>
|
25
|
-
</div>
|
26
|
-
<div class="card--list__data">
|
27
|
-
<%= link_to new_managed_user_path(handler_name: handler.name), class: "card--list__data__icon" do %>
|
28
|
-
<%= icon "chevron-right" %>
|
29
|
-
<% end %>
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
<% end %>
|
33
|
-
</div>
|
34
|
-
</div>
|
35
|
-
<% else %>
|
36
|
-
<%= decidim_form_for(@form, html: { class: "form new_managed_user" }) do |f| %>
|
37
|
-
<div class="card">
|
38
|
-
<div class="card-section">
|
39
|
-
<%= render partial: 'form', object: f %>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
|
43
|
-
<div class="button--double form-general-submit">
|
44
|
-
<%= f.submit t(".create") %>
|
45
|
-
</div>
|
46
|
-
<% end %>
|
47
|
-
<% end %>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# This module contains all logic related to Features and how they're handled
|
6
|
-
# at the admin panel level.
|
7
|
-
module Features
|
8
|
-
autoload :BaseController, "decidim/admin/features/base_controller"
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|