biovision-base 0.11.180127 → 0.14.180326
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -0
- data/app/assets/javascripts/biovision/base/biovision-sliders.js +12 -9
- data/app/assets/javascripts/biovision/base/biovision.js +187 -2
- data/app/assets/stylesheets/biovision/base/admin.scss +84 -40
- data/app/assets/stylesheets/biovision/base/biovision.scss +104 -44
- data/app/assets/stylesheets/biovision/base/buttons/buttons-common.scss +95 -0
- data/app/assets/stylesheets/biovision/base/buttons/buttons-rounded.scss +26 -0
- data/app/assets/stylesheets/biovision/base/default.scss +2 -2
- data/app/assets/stylesheets/biovision/base/default_admin.scss +1 -1
- data/app/assets/stylesheets/biovision/base/default_application.scss +1 -1
- data/app/assets/stylesheets/biovision/base/themes/simple-layout.scss +115 -0
- data/app/assets/stylesheets/biovision/base/users.scss +15 -0
- data/app/controllers/agents_controller.rb +3 -3
- data/app/controllers/authentication_controller.rb +4 -4
- data/app/controllers/browsers_controller.rb +3 -3
- data/app/controllers/codes_controller.rb +2 -2
- data/app/controllers/editable_pages_controller.rb +6 -5
- data/app/controllers/index_controller.rb +1 -1
- data/app/controllers/media_files_controller.rb +3 -3
- data/app/controllers/media_folders_controller.rb +3 -3
- data/app/controllers/metrics_controller.rb +1 -1
- data/app/controllers/my/index_controller.rb +2 -0
- data/app/controllers/my/profiles_controller.rb +15 -9
- data/app/controllers/privilege_groups_controller.rb +2 -2
- data/app/controllers/privileges_controller.rb +3 -3
- data/app/controllers/stored_values_controller.rb +2 -2
- data/app/controllers/tokens_controller.rb +2 -2
- data/app/controllers/users_controller.rb +26 -10
- data/app/helpers/biovision_helper.rb +13 -2
- data/app/helpers/biovision_users_helper.rb +20 -5
- data/app/helpers/codes_helper.rb +1 -1
- data/app/helpers/editable_pages_helper.rb +1 -1
- data/app/helpers/languages_helper.rb +18 -0
- data/app/helpers/media_helper.rb +2 -2
- data/app/helpers/privileges_helper.rb +2 -2
- data/app/helpers/stored_values_helper.rb +1 -1
- data/app/helpers/tracking_helper.rb +2 -2
- data/app/models/editable_page.rb +10 -1
- data/app/models/user.rb +17 -23
- data/app/services/user_manager.rb +15 -18
- data/app/services/user_profile_handler.rb +28 -0
- data/app/uploaders/avatar_uploader.rb +1 -5
- data/app/uploaders/editable_page_image_uploader.rb +1 -1
- data/app/views/admin/agents/entity/_in_list.html.erb +3 -3
- data/app/views/admin/agents/show.html.erb +10 -2
- data/app/views/admin/browsers/entity/_in_list.html.erb +3 -3
- data/app/views/admin/browsers/show.html.erb +2 -2
- data/app/views/admin/codes/entity/_in_list.html.erb +1 -1
- data/app/views/admin/codes/show.html.erb +1 -1
- data/app/views/admin/editable_pages/entity/_in_list.html.erb +7 -1
- data/app/views/admin/editable_pages/show.html.erb +26 -19
- data/app/views/admin/feedback_requests/entity/_in_list.html.erb +1 -1
- data/app/views/admin/index/_biovision_base.html.erb +1 -0
- data/app/views/admin/media_files/entity/_in_list.html.erb +1 -1
- data/app/views/admin/media_files/show.html.erb +2 -2
- data/app/views/admin/media_folders/entity/_in_list.html.erb +2 -2
- data/app/views/admin/media_folders/files.html.erb +1 -1
- data/app/views/admin/media_folders/show.html.erb +6 -4
- data/app/views/admin/metrics/_list.html.erb +2 -2
- data/app/views/admin/metrics/show.html.erb +2 -2
- data/app/views/admin/privilege_groups/entity/_in_list.html.erb +1 -1
- data/app/views/admin/privilege_groups/show.html.erb +1 -1
- data/app/views/admin/privileges/entity/_in_list.html.erb +4 -4
- data/app/views/admin/privileges/show.html.erb +4 -4
- data/app/views/admin/privileges/users.html.erb +1 -1
- data/app/views/admin/stored_values/entity/_in_list.html.erb +1 -1
- data/app/views/admin/stored_values/show.html.erb +1 -1
- data/app/views/admin/tokens/entity/_in_list.html.erb +2 -2
- data/app/views/admin/tokens/show.html.erb +2 -2
- data/app/views/admin/users/codes.html.erb +1 -1
- data/app/views/admin/users/entity/_in_list.html.erb +3 -2
- data/app/views/admin/users/entity/_privilege.html.erb +1 -1
- data/app/views/admin/users/entity/_profile.html.erb +17 -0
- data/app/views/admin/users/privileges.html.erb +1 -1
- data/app/views/admin/users/search.jbuilder +2 -2
- data/app/views/admin/users/show.html.erb +34 -49
- data/app/views/admin/users/tokens.html.erb +1 -1
- data/app/views/agents/_agent.jbuilder +1 -1
- data/app/views/agents/edit.html.erb +1 -1
- data/app/views/authentication/_form.html.erb +1 -1
- data/app/views/authentication/create.jbuilder +10 -0
- data/app/views/browsers/edit.html.erb +1 -1
- data/app/views/codes/edit.html.erb +1 -1
- data/app/views/editable_pages/_form.html.erb +116 -61
- data/app/views/editable_pages/edit.html.erb +1 -1
- data/app/views/index/index.html.erb +8 -6
- data/app/views/index/index/_custom_dashboard.html.erb +0 -0
- data/app/views/index/index/_default_dashboard.html.erb +2 -0
- data/app/views/index/index/_editable.html.erb +9 -0
- data/app/views/layouts/admin/_header.html.erb +1 -1
- data/app/views/layouts/application/_header.html.erb +1 -1
- data/app/views/layouts/application/header/authentication/_links.html.erb +3 -3
- data/app/views/layouts/application/header/authentication/_plate.html.erb +1 -1
- data/app/views/layouts/profile.html.erb +23 -0
- data/app/views/layouts/profile/_footer.html.erb +11 -0
- data/app/views/layouts/profile/_header.html.erb +9 -0
- data/app/views/layouts/profile/header/_navigation.html.erb +0 -0
- data/app/views/media_files/edit.html.erb +1 -1
- data/app/views/media_folders/_form.html.erb +0 -2
- data/app/views/media_folders/edit.html.erb +1 -1
- data/app/views/media_folders/new.html.erb +1 -1
- data/app/views/metrics/edit.html.erb +2 -2
- data/app/views/my/index/index.html.erb +9 -14
- data/app/views/my/index/index/_dashboard.html.erb +12 -0
- data/app/views/my/index/index/_sidebar.html.erb +11 -0
- data/app/views/my/login_attempts/index.html.erb +1 -1
- data/app/views/my/profiles/_nav_item.html.erb +1 -1
- data/app/views/my/profiles/edit.js.erb +1 -0
- data/app/views/my/profiles/edit/_form.html.erb +130 -116
- data/app/views/my/profiles/edit/form/_profile_data.html.erb +53 -0
- data/app/views/my/profiles/new.js.erb +1 -0
- data/app/views/my/profiles/new/_form.html.erb +100 -53
- data/app/views/my/tokens/_toggleable.html.erb +1 -1
- data/app/views/my/tokens/index.html.erb +1 -1
- data/app/views/privilege_groups/edit.html.erb +1 -1
- data/app/views/privileges/edit.html.erb +1 -1
- data/app/views/profiles/_profile.html.erb +5 -6
- data/app/views/shared/_pagination.jbuilder +4 -0
- data/app/views/shared/admin/_list_with_priority.html.erb +6 -1
- data/app/views/shared/forms/_list_of_errors.js.erb +2 -0
- data/app/views/shared/forms/_wysiwyg.html.erb +11 -0
- data/app/views/shared/forms/errors.js.erb +5 -0
- data/app/views/stored_values/edit.html.erb +1 -1
- data/app/views/tokens/edit.html.erb +1 -1
- data/app/views/users/_form.html.erb +141 -83
- data/app/views/users/check.jbuilder +4 -0
- data/app/views/users/edit.html.erb +1 -1
- data/app/views/users/form/_profile_data.html.erb +53 -0
- data/app/views/users/new.html.erb +1 -1
- data/config/locales/common-en.yml +2 -0
- data/config/locales/common-ru.yml +2 -0
- data/config/locales/editable-pages-en.yml +5 -4
- data/config/locales/editable-pages-ru.yml +5 -4
- data/config/locales/users-en.yml +388 -0
- data/config/locales/users-ru.yml +8 -3
- data/config/routes.rb +127 -103
- data/db/migrate/20170302000001_create_users.rb +2 -0
- data/db/migrate/20170320000000_create_editable_pages.rb +1 -1
- data/db/migrate/20180321000000_add_profile_data_to_users.rb +31 -0
- data/lib/biovision/base/base_methods.rb +37 -7
- data/lib/biovision/base/engine.rb +1 -1
- data/lib/biovision/base/privilege_methods.rb +1 -1
- data/lib/biovision/base/version.rb +1 -1
- metadata +27 -6
- data/app/assets/stylesheets/biovision/base/buttons.scss +0 -195
- data/app/assets/stylesheets/biovision/base/layout.scss +0 -193
- data/app/views/editable_pages/form/_ckeditor.html.erb +0 -11
- data/db/migrate/20170302000002_create_user_profiles.rb +0 -21
@@ -126,3 +126,18 @@ article.user {
|
|
126
126
|
margin-bottom: 2.4rem;
|
127
127
|
}
|
128
128
|
}
|
129
|
+
|
130
|
+
#my-index {
|
131
|
+
display: flex;
|
132
|
+
flex-wrap: wrap;
|
133
|
+
|
134
|
+
.sidebar {
|
135
|
+
flex: none;
|
136
|
+
width: 30rem;
|
137
|
+
}
|
138
|
+
|
139
|
+
.content {
|
140
|
+
flex: 1;
|
141
|
+
padding: 0 1.6rem;
|
142
|
+
}
|
143
|
+
}
|
@@ -11,7 +11,7 @@ class AgentsController < AdminController
|
|
11
11
|
def create
|
12
12
|
@entity = Agent.new entity_parameters
|
13
13
|
if @entity.save
|
14
|
-
redirect_to admin_agent_path(@entity)
|
14
|
+
redirect_to admin_agent_path(id: @entity.id)
|
15
15
|
else
|
16
16
|
render :new, status: :bad_request
|
17
17
|
end
|
@@ -28,7 +28,7 @@ class AgentsController < AdminController
|
|
28
28
|
# patch /agents/:id
|
29
29
|
def update
|
30
30
|
if @entity.update entity_parameters
|
31
|
-
redirect_to admin_agent_path(@entity), notice: t('agents.update.success')
|
31
|
+
redirect_to admin_agent_path(id: @entity.id), notice: t('agents.update.success')
|
32
32
|
else
|
33
33
|
render :edit, status: :bad_request
|
34
34
|
end
|
@@ -57,7 +57,7 @@ class AgentsController < AdminController
|
|
57
57
|
|
58
58
|
def restrict_editing
|
59
59
|
if @entity.locked?
|
60
|
-
redirect_to admin_agent_path(@entity), alert: t('agents.edit.forbidden')
|
60
|
+
redirect_to admin_agent_path(id: @entity.id), alert: t('agents.edit.forbidden')
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
@@ -62,13 +62,13 @@ class AuthenticationController < ApplicationController
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def redirect_after_success
|
65
|
-
return_path = cookies['return_path'].to_s
|
66
|
-
return_path = my_path unless return_path[0] == '/'
|
65
|
+
@return_path = cookies['return_path'].to_s
|
66
|
+
@return_path = my_path unless @return_path[0] == '/'
|
67
67
|
cookies.delete 'return_path', domain: :all
|
68
68
|
|
69
69
|
respond_to do |format|
|
70
|
-
format.json
|
71
|
-
format.html { redirect_to(return_path) }
|
70
|
+
format.json
|
71
|
+
format.html { redirect_to(@return_path) }
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
@@ -11,7 +11,7 @@ class BrowsersController < AdminController
|
|
11
11
|
def create
|
12
12
|
@entity = Browser.new entity_parameters
|
13
13
|
if @entity.save
|
14
|
-
redirect_to admin_browser_path(@entity)
|
14
|
+
redirect_to admin_browser_path(id: @entity.id)
|
15
15
|
else
|
16
16
|
render :new, status: :bad_request
|
17
17
|
end
|
@@ -24,7 +24,7 @@ class BrowsersController < AdminController
|
|
24
24
|
# patch /browsers/:id
|
25
25
|
def update
|
26
26
|
if @entity.update entity_parameters
|
27
|
-
redirect_to admin_browser_path(@entity), notice: t('browsers.update.success')
|
27
|
+
redirect_to admin_browser_path(id: @entity.id), notice: t('browsers.update.success')
|
28
28
|
else
|
29
29
|
render :edit, status: :bad_request
|
30
30
|
end
|
@@ -53,7 +53,7 @@ class BrowsersController < AdminController
|
|
53
53
|
|
54
54
|
def restrict_editing
|
55
55
|
if @entity.locked?
|
56
|
-
redirect_to admin_browser_path(@entity), alert: t('browsers.edit.forbidden')
|
56
|
+
redirect_to admin_browser_path(id: @entity.id), alert: t('browsers.edit.forbidden')
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
@@ -10,7 +10,7 @@ class CodesController < AdminController
|
|
10
10
|
def create
|
11
11
|
@entity = Code.new(creation_parameters)
|
12
12
|
if @entity.save
|
13
|
-
redirect_to admin_code_path(@entity.id)
|
13
|
+
redirect_to admin_code_path(id: @entity.id)
|
14
14
|
else
|
15
15
|
render :new, status: :bad_request
|
16
16
|
end
|
@@ -23,7 +23,7 @@ class CodesController < AdminController
|
|
23
23
|
# patch /codes/:id
|
24
24
|
def update
|
25
25
|
if @entity.update(entity_parameters)
|
26
|
-
redirect_to admin_code_path(@entity.id), notice: t('codes.update.success')
|
26
|
+
redirect_to admin_code_path(id: @entity.id), notice: t('codes.update.success')
|
27
27
|
else
|
28
28
|
render :edit, status: :bad_request
|
29
29
|
end
|
@@ -10,9 +10,9 @@ class EditablePagesController < AdminController
|
|
10
10
|
def create
|
11
11
|
@entity = EditablePage.new(creation_parameters)
|
12
12
|
if @entity.save
|
13
|
-
|
13
|
+
form_processed_ok(admin_editable_page_path(id: @entity.id))
|
14
14
|
else
|
15
|
-
|
15
|
+
form_processed_with_error(:new)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -22,10 +22,11 @@ class EditablePagesController < AdminController
|
|
22
22
|
|
23
23
|
# patch /editable_pages/:id
|
24
24
|
def update
|
25
|
-
if @entity.update
|
26
|
-
|
25
|
+
if @entity.update(entity_parameters)
|
26
|
+
flash[:notice] = t('editable_pages.update.success')
|
27
|
+
form_processed_ok(admin_editable_page_path(id: @entity.id))
|
27
28
|
else
|
28
|
-
|
29
|
+
form_processed_with_error(:edit)
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
@@ -15,7 +15,7 @@ class MediaFilesController < ApplicationController
|
|
15
15
|
def create
|
16
16
|
@entity = MediaFile.new(creation_parameters)
|
17
17
|
if @entity.save
|
18
|
-
next_page = admin_media_file_path(@entity.id)
|
18
|
+
next_page = admin_media_file_path(id: @entity.id)
|
19
19
|
respond_to do |format|
|
20
20
|
format.html { redirect_to(next_page) }
|
21
21
|
format.json { render json: { links: { self: next_page } } }
|
@@ -33,7 +33,7 @@ class MediaFilesController < ApplicationController
|
|
33
33
|
# patch /media_files/:id
|
34
34
|
def update
|
35
35
|
if @entity.update entity_parameters
|
36
|
-
next_page = admin_media_file_path(@entity)
|
36
|
+
next_page = admin_media_file_path(id: @entity.id)
|
37
37
|
respond_to do |format|
|
38
38
|
format.html { redirect_to(next_page, notice: t('media_files.update.success')) }
|
39
39
|
format.json { render json: { links: { self: next_page } } }
|
@@ -77,7 +77,7 @@ class MediaFilesController < ApplicationController
|
|
77
77
|
|
78
78
|
def restrict_editing
|
79
79
|
unless @entity.editable_by?(current_user)
|
80
|
-
redirect_to admin_media_file_path(@entity.id), alert: t('media_files.edit.forbidden')
|
80
|
+
redirect_to admin_media_file_path(id: @entity.id), alert: t('media_files.edit.forbidden')
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -12,7 +12,7 @@ class MediaFoldersController < AdminController
|
|
12
12
|
def create
|
13
13
|
@entity = MediaFolder.new(creation_parameters)
|
14
14
|
if @entity.save
|
15
|
-
next_page = admin_media_folder_path(@entity.id)
|
15
|
+
next_page = admin_media_folder_path(id: @entity.id)
|
16
16
|
respond_to do |format|
|
17
17
|
format.html { redirect_to next_page }
|
18
18
|
format.json { render json: { links: { self: next_page } } }
|
@@ -30,7 +30,7 @@ class MediaFoldersController < AdminController
|
|
30
30
|
# patch /media_folders/:id
|
31
31
|
def update
|
32
32
|
if @entity.update(entity_parameters)
|
33
|
-
next_page = admin_media_folder_path(@entity.id)
|
33
|
+
next_page = admin_media_folder_path(id: @entity.id)
|
34
34
|
respond_to do |format|
|
35
35
|
format.html { redirect_to next_page }
|
36
36
|
format.json { render json: { links: { self: next_page } } }
|
@@ -54,7 +54,7 @@ class MediaFoldersController < AdminController
|
|
54
54
|
def set_entity
|
55
55
|
@entity = MediaFolder.find_by(id: params[:id])
|
56
56
|
if @entity.nil?
|
57
|
-
handle_http_404('Cannot find
|
57
|
+
handle_http_404('Cannot find media_folder')
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -8,7 +8,7 @@ class MetricsController < AdminController
|
|
8
8
|
# patch /metrics/:id
|
9
9
|
def update
|
10
10
|
if @entity.update entity_parameters
|
11
|
-
redirect_to admin_metric_path(@entity.id), notice: t('metrics.update.success')
|
11
|
+
redirect_to admin_metric_path(id: @entity.id), notice: t('metrics.update.success')
|
12
12
|
else
|
13
13
|
render :edit, status: :bad_request
|
14
14
|
end
|
@@ -29,10 +29,10 @@ class My::ProfilesController < ApplicationController
|
|
29
29
|
# patch /my/profile
|
30
30
|
def update
|
31
31
|
if current_user.update(user_parameters)
|
32
|
-
|
33
|
-
|
32
|
+
flash[:notice] = t('my.profiles.update.success')
|
33
|
+
form_processed_ok(my_profile_path)
|
34
34
|
else
|
35
|
-
|
35
|
+
form_processed_with_error(:edit)
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
@@ -49,20 +49,20 @@ class My::ProfilesController < ApplicationController
|
|
49
49
|
create_token_for_user(@user)
|
50
50
|
redirect_after_creation
|
51
51
|
else
|
52
|
-
|
52
|
+
form_processed_with_error(:new)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
56
|
def creation_parameters
|
57
57
|
parameters = params.require(:user).permit(User.new_profile_parameters)
|
58
|
-
parameters.merge(tracking_for_entity)
|
58
|
+
parameters.merge(tracking_for_entity).merge({ super_user: User.count < 1 })
|
59
59
|
end
|
60
60
|
|
61
61
|
def user_parameters
|
62
62
|
sensitive = sensitive_parameters
|
63
63
|
editable = User.profile_parameters + sensitive
|
64
64
|
parameters = params.require(:user).permit(editable)
|
65
|
-
filter_parameters parameters, sensitive
|
65
|
+
filter_parameters parameters.merge(profile_parameters), sensitive
|
66
66
|
end
|
67
67
|
|
68
68
|
def sensitive_parameters
|
@@ -74,9 +74,13 @@ class My::ProfilesController < ApplicationController
|
|
74
74
|
end
|
75
75
|
|
76
76
|
def profile_parameters
|
77
|
-
|
77
|
+
permitted = UserProfileHandler.allowed_parameters
|
78
|
+
dirty = params.require(:user_profile).permit(permitted)
|
79
|
+
{ profile_data: UserProfileHandler.clean_parameters(dirty) }
|
78
80
|
end
|
79
81
|
|
82
|
+
# @param [Hash] parameters
|
83
|
+
# @param [Hash] sensitive
|
80
84
|
def filter_parameters(parameters, sensitive)
|
81
85
|
sensitive.each { |parameter| parameters.except! parameter if parameter.blank? }
|
82
86
|
parameters[:email_confirmed] = false if parameters[:email] && parameters[:email] != current_user.email
|
@@ -88,7 +92,9 @@ class My::ProfilesController < ApplicationController
|
|
88
92
|
return_path = cookies['return_path'].to_s
|
89
93
|
return_path = my_profile_path unless return_path[0] == '/'
|
90
94
|
cookies.delete 'return_path', domain: :all
|
91
|
-
|
92
|
-
|
95
|
+
|
96
|
+
flash[:notice] = t('my.profiles.create.success')
|
97
|
+
|
98
|
+
form_processed_ok(return_path)
|
93
99
|
end
|
94
100
|
end
|
@@ -11,7 +11,7 @@ class PrivilegeGroupsController < AdminController
|
|
11
11
|
def create
|
12
12
|
@entity = PrivilegeGroup.new entity_parameters
|
13
13
|
if @entity.save
|
14
|
-
redirect_to admin_privilege_group_path(@entity)
|
14
|
+
redirect_to admin_privilege_group_path(id: @entity.id)
|
15
15
|
else
|
16
16
|
render :new, status: :bad_request
|
17
17
|
end
|
@@ -24,7 +24,7 @@ class PrivilegeGroupsController < AdminController
|
|
24
24
|
# patch /privilege_groups/:id
|
25
25
|
def update
|
26
26
|
if @entity.update entity_parameters
|
27
|
-
redirect_to admin_privilege_group_path(@entity), notice: t('privilege_groups.update.success')
|
27
|
+
redirect_to admin_privilege_group_path(id: @entity.id), notice: t('privilege_groups.update.success')
|
28
28
|
else
|
29
29
|
render :edit, status: :bad_request
|
30
30
|
end
|
@@ -8,7 +8,7 @@ class PrivilegesController < AdminController
|
|
8
8
|
@entity = Privilege.new(creation_parameters)
|
9
9
|
if @entity.save
|
10
10
|
cache_relatives
|
11
|
-
redirect_to admin_privilege_path(@entity)
|
11
|
+
redirect_to admin_privilege_path(id: @entity.id)
|
12
12
|
else
|
13
13
|
render :new, status: :bad_request
|
14
14
|
end
|
@@ -22,7 +22,7 @@ class PrivilegesController < AdminController
|
|
22
22
|
def update
|
23
23
|
if @entity.update(entity_parameters)
|
24
24
|
cache_relatives
|
25
|
-
redirect_to admin_privilege_path(@entity), notice: t('privileges.update.success')
|
25
|
+
redirect_to admin_privilege_path(id: @entity.id), notice: t('privileges.update.success')
|
26
26
|
else
|
27
27
|
render :edit, status: :bad_request
|
28
28
|
end
|
@@ -51,7 +51,7 @@ class PrivilegesController < AdminController
|
|
51
51
|
|
52
52
|
def restrict_editing
|
53
53
|
if @entity.locked?
|
54
|
-
redirect_to admin_privilege_path(@entity), alert: t('privileges.edit.forbidden')
|
54
|
+
redirect_to admin_privilege_path(id: @entity.id), alert: t('privileges.edit.forbidden')
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
@@ -10,7 +10,7 @@ class StoredValuesController < AdminController
|
|
10
10
|
def create
|
11
11
|
@entity = StoredValue.new(entity_parameters)
|
12
12
|
if @entity.save
|
13
|
-
redirect_to admin_stored_value_path(@entity.id)
|
13
|
+
redirect_to admin_stored_value_path(id: @entity.id)
|
14
14
|
else
|
15
15
|
render :new, status: :bad_request
|
16
16
|
end
|
@@ -23,7 +23,7 @@ class StoredValuesController < AdminController
|
|
23
23
|
# patch /stored_values/:id
|
24
24
|
def update
|
25
25
|
if @entity.update(entity_parameters)
|
26
|
-
redirect_to admin_stored_value_path(@entity.id), notice: t('stored_values.update.success')
|
26
|
+
redirect_to admin_stored_value_path(id: @entity.id), notice: t('stored_values.update.success')
|
27
27
|
else
|
28
28
|
render :edit, status: :bad_request
|
29
29
|
end
|
@@ -10,7 +10,7 @@ class TokensController < AdminController
|
|
10
10
|
def create
|
11
11
|
@entity = Token.new(creation_parameters)
|
12
12
|
if @entity.save
|
13
|
-
redirect_to admin_token_path(@entity)
|
13
|
+
redirect_to admin_token_path(id: @entity.id)
|
14
14
|
else
|
15
15
|
render :new, status: :bad_request
|
16
16
|
end
|
@@ -23,7 +23,7 @@ class TokensController < AdminController
|
|
23
23
|
# patch /tokens/:id
|
24
24
|
def update
|
25
25
|
if @entity.update(entity_parameters)
|
26
|
-
redirect_to admin_token_path(@entity), notice: t('tokens.update.success')
|
26
|
+
redirect_to admin_token_path(id: @entity.id), notice: t('tokens.update.success')
|
27
27
|
else
|
28
28
|
render :edit, status: :bad_request
|
29
29
|
end
|
@@ -1,6 +1,14 @@
|
|
1
|
-
class UsersController <
|
1
|
+
class UsersController < ApplicationController
|
2
|
+
before_action :restrict_access, except: [:check]
|
2
3
|
before_action :set_entity, only: [:edit, :update, :destroy]
|
3
4
|
|
5
|
+
layout 'admin', except: :check
|
6
|
+
|
7
|
+
# post /users/check
|
8
|
+
def check
|
9
|
+
@entity = User.new(creation_parameters)
|
10
|
+
end
|
11
|
+
|
4
12
|
# get /users/new
|
5
13
|
def new
|
6
14
|
@entity = User.new
|
@@ -10,10 +18,9 @@ class UsersController < AdminController
|
|
10
18
|
def create
|
11
19
|
@entity = User.new(creation_parameters)
|
12
20
|
if @entity.save
|
13
|
-
@entity.
|
14
|
-
redirect_to admin_user_path(@entity.id), notice: t('users.create.success')
|
21
|
+
form_processed_ok(admin_user_path(id: @entity.id))
|
15
22
|
else
|
16
|
-
|
23
|
+
form_processed_with_error(:new)
|
17
24
|
end
|
18
25
|
end
|
19
26
|
|
@@ -24,10 +31,9 @@ class UsersController < AdminController
|
|
24
31
|
# patch /users/:id
|
25
32
|
def update
|
26
33
|
if @entity.update(entity_parameters)
|
27
|
-
@entity.
|
28
|
-
redirect_to admin_user_path(@entity.id), notice: t('users.update.success')
|
34
|
+
form_processed_ok(admin_user_path(id: @entity.id))
|
29
35
|
else
|
30
|
-
|
36
|
+
form_processed_with_error(:edit)
|
31
37
|
end
|
32
38
|
end
|
33
39
|
|
@@ -47,17 +53,27 @@ class UsersController < AdminController
|
|
47
53
|
|
48
54
|
def set_entity
|
49
55
|
@entity = User.find_by(id: params[:id])
|
56
|
+
if @entity.nil?
|
57
|
+
handle_http_404('Cannot find user')
|
58
|
+
end
|
50
59
|
end
|
51
60
|
|
52
61
|
def entity_parameters
|
53
|
-
params.require(:user).permit(User.entity_parameters)
|
62
|
+
parameters = params.require(:user).permit(User.entity_parameters)
|
63
|
+
parameters.merge(profile_parameters)
|
54
64
|
end
|
55
65
|
|
56
66
|
def creation_parameters
|
57
|
-
|
67
|
+
entity_parameters.merge(tracking_for_entity)
|
58
68
|
end
|
59
69
|
|
60
70
|
def profile_parameters
|
61
|
-
params.
|
71
|
+
if params.key?(:user_profile)
|
72
|
+
permitted = UserProfileHandler.allowed_parameters
|
73
|
+
dirty = params.require(:user_profile).permit(permitted)
|
74
|
+
{ profile_data: UserProfileHandler.clean_parameters(dirty) }
|
75
|
+
else
|
76
|
+
{}
|
77
|
+
end
|
62
78
|
end
|
63
79
|
end
|
@@ -59,12 +59,23 @@ module BiovisionHelper
|
|
59
59
|
# @param [Hash] options
|
60
60
|
def destroy_icon(entity, title = t(:delete), options = {})
|
61
61
|
default = {
|
62
|
-
|
63
|
-
|
62
|
+
method: :delete,
|
63
|
+
data: { confirm: t(:are_you_sure), tootik: title, tootik_conf: 'danger' }
|
64
64
|
}
|
65
65
|
icon_with_link('biovision/base/icons/destroy.svg', entity, title, default.merge(options))
|
66
66
|
end
|
67
67
|
|
68
|
+
# @param [String] path
|
69
|
+
# @param [String] title
|
70
|
+
# @param [Hash] options
|
71
|
+
def destroy_path_icon(path, title = t(:delete), options = {})
|
72
|
+
default = {
|
73
|
+
method: :delete,
|
74
|
+
data: { confirm: t(:are_you_sure), tootik: title, tootik_conf: 'danger' }
|
75
|
+
}
|
76
|
+
icon_with_link('biovision/base/icons/destroy.svg', path, title, default.merge(options))
|
77
|
+
end
|
78
|
+
|
68
79
|
# @param [String|ApplicationRecord] path
|
69
80
|
# @param [String] title
|
70
81
|
# @param [Hash] options
|