enju_leaf 1.2.0.beta.1 → 1.2.0.beta.2

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.
Files changed (167) hide show
  1. checksums.yaml +4 -4
  2. data/lib/enju_leaf/engine.rb +1 -15
  3. data/lib/enju_leaf/version.rb +1 -1
  4. data/lib/generators/enju_leaf/quick_install/quick_install_generator.rb +3 -3
  5. data/lib/generators/enju_leaf/setup/setup_generator.rb +0 -1
  6. data/spec/controllers/page_controller_spec.rb +1 -1
  7. data/spec/dummy/app/controllers/application_controller.rb +0 -1
  8. data/spec/dummy/app/helpers/application_helper.rb +2 -1
  9. data/spec/dummy/app/models/user.rb +0 -1
  10. data/spec/dummy/config/application.rb +1 -2
  11. data/{db → spec/dummy/db}/migrate/041_create_roles.rb +0 -0
  12. data/spec/dummy/db/migrate/059_create_libraries.rb +1 -5
  13. data/spec/dummy/db/migrate/069_create_shelves.rb +1 -5
  14. data/{db → spec/dummy/db}/migrate/077_create_user_groups.rb +0 -0
  15. data/spec/dummy/db/migrate/130_create_request_status_types.rb +1 -5
  16. data/spec/dummy/db/migrate/131_create_request_types.rb +1 -5
  17. data/spec/dummy/db/migrate/20100314190054_add_opening_hour_to_library.rb +9 -0
  18. data/{db → spec/dummy/db}/migrate/20100606065209_create_user_has_roles.rb +0 -0
  19. data/{db → spec/dummy/db}/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +0 -0
  20. data/spec/dummy/db/migrate/20111129044509_add_pickup_location_to_reserve.rb +6 -0
  21. data/{db → spec/dummy/db}/migrate/20130221154434_add_additional_attributes_to_user.rb +0 -0
  22. data/spec/dummy/db/migrate/20130412083556_add_latitude_and_longitude_to_library.rb +6 -0
  23. data/{db → spec/dummy/db}/migrate/20140110122216_create_user_import_files.rb +0 -0
  24. data/{db → spec/dummy/db}/migrate/20140110131010_create_user_import_results.rb +0 -0
  25. data/{db → spec/dummy/db}/migrate/20140122054321_create_profiles.rb +0 -0
  26. data/{db → spec/dummy/db}/migrate/20140524074813_create_user_import_file_transitions.rb +0 -0
  27. data/{db → spec/dummy/db}/migrate/20140610123439_drop_email_unique_constraint_enju_leaf_rc10.rb +0 -0
  28. data/{db → spec/dummy/db}/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +0 -0
  29. data/{db → spec/dummy/db}/migrate/20140709113413_create_user_export_files.rb +0 -0
  30. data/{db → spec/dummy/db}/migrate/20140709113905_create_user_export_file_transitions.rb +0 -0
  31. data/{db → spec/dummy/db}/migrate/20140720170714_add_default_library_id_to_user_import_file.rb +0 -0
  32. data/{db → spec/dummy/db}/migrate/20140720170735_add_default_user_group_id_to_user_import_file.rb +0 -0
  33. data/{db → spec/dummy/db}/migrate/20140811031145_add_expired_at_to_profile.rb +0 -0
  34. data/spec/dummy/db/migrate/20140821151023_create_colors.rb +14 -0
  35. data/{db → spec/dummy/db}/migrate/20141003181336_add_full_name_transcription_to_profile.rb +0 -0
  36. data/{db → spec/dummy/db}/migrate/20141003182825_add_date_of_birth_to_profile.rb +0 -0
  37. data/spec/dummy/db/migrate/20141020120523_add_library_id_to_checkout.rb +6 -0
  38. data/spec/dummy/db/migrate/20150106001709_create_demands.rb +14 -0
  39. data/{db → spec/dummy/db}/migrate/20150421023923_create_identities.rb +0 -0
  40. data/{db → spec/dummy/db}/migrate/20150506105356_add_error_message_to_user_import_result.rb +0 -0
  41. data/spec/dummy/db/migrate/20150924115059_create_withdraws.rb +13 -0
  42. data/{db → spec/dummy/db}/migrate/20151126005552_add_provider_to_identity.rb +0 -0
  43. data/spec/dummy/db/migrate/20160610093229_add_html_snippet_to_library_group.rb +5 -0
  44. data/{db → spec/dummy/db}/migrate/20160627232219_add_most_recent_to_user_import_file_transitions.rb +0 -0
  45. data/{db → spec/dummy/db}/migrate/20160627232316_add_most_recent_to_user_export_file_transitions.rb +0 -0
  46. data/spec/dummy/db/migrate/20160703184619_add_most_recent_to_reserve_transitions.rb +9 -0
  47. data/spec/dummy/db/migrate/20160703184650_add_most_recent_to_manifestation_checkout_stat_transitions.rb +9 -0
  48. data/spec/dummy/db/migrate/20160703184723_add_most_recent_to_manifestation_reserve_stat_transitions.rb +9 -0
  49. data/spec/dummy/db/migrate/20160703184747_add_most_recent_to_user_checkout_stat_transitions.rb +9 -0
  50. data/spec/dummy/db/migrate/20160703184805_add_most_recent_to_user_reserve_stat_transitions.rb +9 -0
  51. data/spec/dummy/db/migrate/20160703185015_add_most_recent_to_message_transitions.rb +9 -0
  52. data/spec/dummy/db/migrate/20160703190209_add_foreign_key_on_manifestation_id_to_reserve.rb +5 -0
  53. data/spec/dummy/db/schema.rb +47 -12
  54. data/spec/fixtures/library_groups.yml +1 -4
  55. data/spec/models/user_spec.rb +0 -22
  56. data/spec/rails_helper.rb +1 -1
  57. data/spec/views/page/index.html.erb_spec.rb +0 -2
  58. metadata +96 -337
  59. data/app/controllers/concerns/enju_leaf/controller.rb +0 -225
  60. data/app/controllers/my_accounts_controller.rb +0 -93
  61. data/app/controllers/names_controller.rb +0 -60
  62. data/app/controllers/profiles_controller.rb +0 -219
  63. data/app/controllers/roles_controller.rb +0 -61
  64. data/app/controllers/user_export_files_controller.rb +0 -116
  65. data/app/controllers/user_groups_controller.rb +0 -118
  66. data/app/controllers/user_import_files_controller.rb +0 -129
  67. data/app/controllers/user_import_results_controller.rb +0 -57
  68. data/app/mailers/notifier.rb +0 -30
  69. data/app/models/identity.rb +0 -9
  70. data/app/models/profile.rb +0 -101
  71. data/app/models/role.rb +0 -50
  72. data/app/models/user_export_file.rb +0 -67
  73. data/app/models/user_export_file_state_machine.rb +0 -15
  74. data/app/models/user_export_file_transition.rb +0 -20
  75. data/app/models/user_group.rb +0 -29
  76. data/app/models/user_has_role.rb +0 -19
  77. data/app/models/user_import_file.rb +0 -352
  78. data/app/models/user_import_file_state_machine.rb +0 -19
  79. data/app/models/user_import_file_transition.rb +0 -20
  80. data/app/models/user_import_result.rb +0 -20
  81. data/app/policies/application_policy.rb +0 -53
  82. data/app/policies/name_policy.rb +0 -21
  83. data/app/policies/profile_policy.rb +0 -55
  84. data/app/policies/role_policy.rb +0 -21
  85. data/app/policies/user_export_file_policy.rb +0 -21
  86. data/app/policies/user_group_policy.rb +0 -22
  87. data/app/policies/user_import_file_policy.rb +0 -21
  88. data/app/policies/user_import_result_policy.rb +0 -21
  89. data/app/views/my_accounts/_edit_credential.html.erb +0 -99
  90. data/app/views/my_accounts/_form.html.erb +0 -24
  91. data/app/views/my_accounts/_show.html.erb +0 -1
  92. data/app/views/my_accounts/edit.html.erb +0 -32
  93. data/app/views/my_accounts/show.html+phone.erb +0 -1
  94. data/app/views/my_accounts/show.html.erb +0 -49
  95. data/app/views/names/_form.html.erb +0 -41
  96. data/app/views/names/edit.html.erb +0 -6
  97. data/app/views/names/index.html.erb +0 -37
  98. data/app/views/names/new.html.erb +0 -5
  99. data/app/views/names/show.html.erb +0 -34
  100. data/app/views/profiles/_edit_credential.html.erb +0 -88
  101. data/app/views/profiles/_edit_profile.html.erb +0 -42
  102. data/app/views/profiles/_form.html.erb +0 -15
  103. data/app/views/profiles/_show.html.erb +0 -1
  104. data/app/views/profiles/edit.html.erb +0 -33
  105. data/app/views/profiles/index.html.erb +0 -70
  106. data/app/views/profiles/new.html.erb +0 -88
  107. data/app/views/profiles/show.html+phone.erb +0 -1
  108. data/app/views/profiles/show.html.erb +0 -71
  109. data/app/views/roles/_form.html.erb +0 -19
  110. data/app/views/roles/edit.html.erb +0 -13
  111. data/app/views/roles/index.html.erb +0 -32
  112. data/app/views/roles/new.html.erb +0 -12
  113. data/app/views/roles/show.html.erb +0 -46
  114. data/app/views/user_export_files/_form.html.erb +0 -12
  115. data/app/views/user_export_files/edit.html.erb +0 -6
  116. data/app/views/user_export_files/index.html.erb +0 -44
  117. data/app/views/user_export_files/new.html.erb +0 -16
  118. data/app/views/user_export_files/show.html.erb +0 -36
  119. data/app/views/user_groups/_form.html.erb +0 -40
  120. data/app/views/user_groups/edit.html.erb +0 -13
  121. data/app/views/user_groups/index.html.erb +0 -51
  122. data/app/views/user_groups/new.html.erb +0 -12
  123. data/app/views/user_groups/show.html.erb +0 -68
  124. data/app/views/user_import_files/_form.html.erb +0 -61
  125. data/app/views/user_import_files/_results.html.erb +0 -22
  126. data/app/views/user_import_files/edit.html.erb +0 -6
  127. data/app/views/user_import_files/index.html.erb +0 -45
  128. data/app/views/user_import_files/new.html.erb +0 -60
  129. data/app/views/user_import_files/show.html.erb +0 -85
  130. data/app/views/user_import_results/_form.html.erb +0 -29
  131. data/app/views/user_import_results/_list.html.erb +0 -22
  132. data/app/views/user_import_results/_list_lines.html.erb +0 -24
  133. data/app/views/user_import_results/index.html.erb +0 -25
  134. data/app/views/user_import_results/index.txt.erb +0 -3
  135. data/app/views/user_import_results/show.html.erb +0 -33
  136. data/db/migrate/20091202124834_create_versions.rb +0 -18
  137. data/spec/controllers/my_accounts_controller_spec.rb +0 -229
  138. data/spec/controllers/profiles_controller_spec.rb +0 -594
  139. data/spec/controllers/roles_controller_spec.rb +0 -136
  140. data/spec/controllers/user_export_files_controller_spec.rb +0 -296
  141. data/spec/controllers/user_groups_controller_spec.rb +0 -443
  142. data/spec/controllers/user_import_files_controller_spec.rb +0 -305
  143. data/spec/controllers/user_import_results_controller_spec.rb +0 -157
  144. data/spec/fixtures/user_export_files.yml +0 -25
  145. data/spec/fixtures/user_import_files.yml +0 -51
  146. data/spec/fixtures/user_import_results.yml +0 -26
  147. data/spec/fixtures/user_reserve_stats.yml +0 -27
  148. data/spec/models/basket_spec.rb +0 -23
  149. data/spec/models/profile_spec.rb +0 -98
  150. data/spec/models/role_spec.rb +0 -40
  151. data/spec/models/user_export_file_spec.rb +0 -30
  152. data/spec/models/user_group_spec.rb +0 -37
  153. data/spec/models/user_has_role_spec.rb +0 -18
  154. data/spec/models/user_import_file_spec.rb +0 -220
  155. data/spec/models/user_import_result_spec.rb +0 -20
  156. data/spec/requests/profiles_spec.rb +0 -9
  157. data/spec/routing/profiles_routing_spec.rb +0 -35
  158. data/spec/routing/resource_import_files_routing_spec.rb +0 -35
  159. data/spec/routing/roles_routing_spec.rb +0 -35
  160. data/spec/routing/users_spec.rb +0 -14
  161. data/spec/views/my_accounts/show.html.erb_spec.rb +0 -43
  162. data/spec/views/profiles/edit.html.erb_spec.rb +0 -42
  163. data/spec/views/profiles/index.html.erb_spec.rb +0 -19
  164. data/spec/views/profiles/new.html.erb_spec.rb +0 -25
  165. data/spec/views/profiles/show.html.erb_spec.rb +0 -31
  166. data/spec/views/user_export_files/new.html.erb_spec.rb +0 -19
  167. data/spec/views/user_import_results/index.html.erb_spec.rb +0 -29
@@ -1,225 +0,0 @@
1
- module EnjuLeaf
2
- module Controller
3
- extend ActiveSupport::Concern
4
-
5
- included do
6
- before_action :get_library_group, :set_locale, :set_available_languages, :set_mobile_request
7
- before_action :store_current_location, unless: :devise_controller?
8
- rescue_from Pundit::NotAuthorizedError, with: :render_403
9
- #rescue_from ActiveRecord::RecordNotFound, with: :render_404
10
- rescue_from Errno::ECONNREFUSED, with: :render_500_nosolr
11
- #rescue_from ActionView::MissingTemplate, with: :render_404_invalid_format
12
- end
13
-
14
- private
15
-
16
- def render_403
17
- return if performed?
18
- if user_signed_in?
19
- respond_to do |format|
20
- format.html {render template: 'page/403', status: 403}
21
- #format.html.phone {render template: 'page/403', status: 403}
22
- format.xml {render template: 'page/403', status: 403}
23
- format.json { render text: '{"error": "forbidden"}' }
24
- format.rss {render template: 'page/403.xml', status: 403}
25
- end
26
- else
27
- respond_to do |format|
28
- format.html { redirect_to main_app.new_user_session_url }
29
- #format.html.phone { redirect_to new_user_session_url }
30
- format.xml { render template: 'page/403', status: 403 }
31
- format.json { render text: '{"error": "forbidden"}' }
32
- format.rss { render template: 'page/403.xml', status: 403 }
33
- end
34
- end
35
- end
36
-
37
- def render_404
38
- return if performed?
39
- respond_to do |format|
40
- format.html { render template: 'page/404', status: 404 }
41
- #format.html.phone { render template: 'page/404', status: 404 }
42
- format.xml { render template: 'page/404', status: 404 }
43
- format.json { render text: '{"error": "not_found"}' }
44
- format.rss { render template: 'page/404.xml', status: 404 }
45
- end
46
- end
47
-
48
- def render_404_invalid_format
49
- return if performed?
50
- render file: "#{Rails.root}/public/404", formats: [:html]
51
- end
52
-
53
- def render_500
54
- return if performed?
55
- respond_to do |format|
56
- format.html {render file: "#{Rails.root}/public/500", layout: false, status: 500}
57
- #format.html.phone {render file: "#{Rails.root}/public/500", layout: false, status: 500}
58
- format.xml {render template: 'page/500', status: 500}
59
- format.json { render text: '{"error": "server_error"}' }
60
- format.xml {render template: 'page/500.xml', status: 500}
61
- end
62
- end
63
-
64
- def render_500_nosolr
65
- Rails.logger.fatal("please confirm that the Solr is running.")
66
- return if performed?
67
- #flash[:notice] = t('page.connection_failed')
68
- respond_to do |format|
69
- format.html {render template: "page/500_nosolr", layout: false, status: 500}
70
- #format.html.phone {render template: "page/500_nosolr", layout: false, status: 500}
71
- format.xml {render template: 'page/500', status: 500}
72
- format.json { render text: '{"error": "server_error"}' }
73
- format.xml {render template: 'page/500.xml', status: 500}
74
- end
75
- end
76
-
77
- def after_sign_in_path_for(resource)
78
- session[:locale] = nil
79
- super
80
- end
81
-
82
- def set_locale
83
- if params[:locale]
84
- unless I18n.available_locales.include?(params[:locale].to_s.intern)
85
- raise InvalidLocaleError
86
- end
87
- end
88
- if user_signed_in?
89
- locale = params[:locale] || session[:locale] || current_user.profile.try(:locale).try(:to_sym)
90
- else
91
- locale = params[:locale] || session[:locale]
92
- end
93
- if locale
94
- I18n.locale = @locale = session[:locale] = locale.to_sym
95
- else
96
- I18n.locale = @locale = session[:locale] = I18n.default_locale
97
- end
98
- rescue InvalidLocaleError
99
- @locale = I18n.default_locale
100
- end
101
-
102
- def default_url_options(options={})
103
- {locale: nil}
104
- end
105
-
106
- def set_available_languages
107
- if Rails.env == 'production'
108
- @available_languages = Rails.cache.fetch('available_languages'){
109
- Language.where(iso_639_1: I18n.available_locales.map{|l| l.to_s}).select([:id, :iso_639_1, :name, :native_name, :display_name, :position]).all
110
- }
111
- else
112
- @available_languages = Language.where(iso_639_1: I18n.available_locales.map{|l| l.to_s})
113
- end
114
- end
115
-
116
- def reset_params_session
117
- session[:params] = nil
118
- end
119
-
120
- def not_found
121
- raise ActiveRecord::RecordNotFound
122
- end
123
-
124
- def access_denied
125
- raise Pundit::NotAuthorizedError
126
- end
127
-
128
- def get_user
129
- @user = User.where(username: params[:user_id]).first if params[:user_id]
130
- #authorize! :show, @user if @user
131
- end
132
-
133
- def get_user_group
134
- @user_group = UserGroup.find(params[:user_group_id]) if params[:user_group_id]
135
- end
136
-
137
- def convert_charset
138
- case params[:format]
139
- when 'csv'
140
- return unless LibraryGroup.site_config.settings[:csv_charset_conversion]
141
- # TODO: 他の言語
142
- if @locale.to_sym == :ja
143
- headers["Content-Type"] = "text/csv; charset=Shift_JIS"
144
- response.body = NKF::nkf('-Ws', response.body)
145
- end
146
- when 'xml'
147
- if @locale.to_sym == :ja
148
- headers["Content-Type"] = "application/xml; charset=Shift_JIS"
149
- response.body = NKF::nkf('-Ws', response.body)
150
- end
151
- end
152
- end
153
-
154
- def store_page
155
- if request.get? and request.format.try(:html?) and !request.xhr?
156
- flash[:page] = params[:page] if params[:page].to_i > 0
157
- end
158
- end
159
-
160
- def set_role_query(user, search)
161
- role = user.try(:role) || Role.default_role
162
- search.build do
163
- with(:required_role_id).less_than_or_equal_to role.id
164
- end
165
- end
166
-
167
- def get_version
168
- @version = params[:version_id].to_i if params[:version_id]
169
- @version = nil if @version == 0
170
- end
171
-
172
- def clear_search_sessions
173
- session[:query] = nil
174
- session[:params] = nil
175
- session[:search_params] = nil
176
- session[:manifestation_ids] = nil
177
- end
178
-
179
- def api_request?
180
- true unless params[:format].nil? or params[:format] == 'html'
181
- end
182
-
183
- def get_top_page_content
184
- if defined?(EnjuNews)
185
- @news_feeds = Rails.cache.fetch('news_feed_all'){NewsFeed.order(:position)}
186
- @news_posts = NewsPost.limit(LibraryGroup.site_config.settings[:news_post_number_top_page] || 10)
187
- end
188
- @libraries = Library.real
189
- end
190
-
191
- def set_mobile_request
192
- case params[:view]
193
- when 'phone'
194
- session[:enju_view] = :phone
195
- when 'desktop'
196
- session[:enju_view] = :desktop
197
- when 'reset'
198
- session[:enju_view] = nil
199
- end
200
-
201
- case session[:enju_view].try(:to_sym)
202
- when :phone
203
- request.variant = :phone
204
- when :desktop
205
- request.variant = nil
206
- else
207
- request.variant = :phone if browser.device.mobile?
208
- end
209
- end
210
-
211
- def move_position(resource, direction, redirect = true)
212
- if ['higher', 'lower'].include?(direction)
213
- resource.send("move_#{direction}")
214
- if redirect
215
- redirect_to url_for(controller: resource.class.to_s.pluralize.underscore)
216
- return
217
- end
218
- end
219
- end
220
-
221
- def store_current_location
222
- store_location_for(:user, request.url)
223
- end
224
- end
225
- end
@@ -1,93 +0,0 @@
1
- class MyAccountsController < ApplicationController
2
- before_action :authenticate_user!
3
- before_action :set_profile
4
-
5
- def show
6
- respond_to do |format|
7
- format.html
8
- format.html.phone
9
- format.json { render json: @profile }
10
- end
11
- end
12
-
13
- def edit
14
- prepare_options
15
- end
16
-
17
- def update
18
- user_attrs = [
19
- :id, :email, :current_password, :password, :password_confirmation
20
- ]
21
- user_attrs += [
22
- {:user_has_role_attributes => [:id, :role_id]}
23
- ] if current_user.has_role?('Administrator')
24
-
25
- user_params = ActionController::Parameters.new(params[:profile][:user_attributes]).permit(*user_attrs)
26
-
27
- respond_to do |format|
28
- saved = current_user.update_attributes(user_params)
29
- @profile.assign_attributes(profile_params)
30
-
31
- if saved
32
- if @profile.save
33
- bypass_sign_in(current_user)
34
- format.html { redirect_to my_account_url, notice: t('controller.successfully_updated', model: t('activerecord.models.user')) }
35
- format.json { head :no_content }
36
- else
37
- prepare_options
38
- format.html { render action: "edit" }
39
- format.json { render json: current_user.errors, status: :unprocessable_entity }
40
- end
41
- else
42
- current_user.errors.full_messages.each do |msg|
43
- @profile.errors[:base] << msg
44
- end
45
- prepare_options
46
- format.html { render action: "edit" }
47
- format.json { render json: current_user.errors, status: :unprocessable_entity }
48
- end
49
- end
50
- end
51
-
52
- def destroy
53
- @profile.destroy
54
-
55
- respond_to do |format|
56
- format.html { redirect_to my_account_url, notice: 'devise.registrations.destroyed' }
57
- format.json { head :no_content }
58
- end
59
- end
60
-
61
- private
62
- def set_profile
63
- @profile = current_user.profile
64
- authorize @profile
65
- end
66
-
67
- def profile_params
68
- attrs = [
69
- :full_name, :full_name_transcription, :user_number,
70
- :library_id, :keyword_list, :note,
71
- :locale, :required_role_id, :expired_at,
72
- :locked, :birth_date,
73
- :save_checkout_history, :checkout_icalendar_token, # EnjuCirculation
74
- :save_search_history # EnjuSearchLog
75
- ]
76
- if current_user.has_role?('Librarian')
77
- attrs << :user_group_id
78
- end
79
- params.require(:profile).permit(*attrs)
80
- end
81
-
82
- def prepare_options
83
- @user_groups = UserGroup.order(:position)
84
- @roles = Role.order(:position)
85
- @libraries = Library.order(:position)
86
- @languages = Language.order(:position)
87
- if current_user.active_for_authentication?
88
- current_user.locked = '0'
89
- else
90
- current_user.locked = '1'
91
- end
92
- end
93
- end
@@ -1,60 +0,0 @@
1
- class NamesController < ApplicationController
2
- before_action :set_name, only: [:show, :edit, :update, :destroy]
3
- before_action :check_policy, only: [:index, :new, :create]
4
-
5
- # GET /names
6
- def index
7
- @names = Name.paginate(params[:page])
8
- end
9
-
10
- # GET /names/1
11
- def show
12
- end
13
-
14
- # GET /names/new
15
- def new
16
- @name = Name.new
17
- end
18
-
19
- # GET /names/1/edit
20
- def edit
21
- end
22
-
23
- # POST /names
24
- def create
25
- @name = Name.new(name_params)
26
-
27
- if @name.save
28
- redirect_to @name, notice: 'Name was successfully created.'
29
- else
30
- render :new
31
- end
32
- end
33
-
34
- # PATCH/PUT /names/1
35
- def update
36
- if @name.update(name_params)
37
- redirect_to @name, notice: 'Name was successfully updated.'
38
- else
39
- render :edit
40
- end
41
- end
42
-
43
- # DELETE /names/1
44
- def destroy
45
- @name.destroy
46
- redirect_to names_url, notice: 'Name was successfully destroyed.'
47
- end
48
-
49
- private
50
- # Use callbacks to share common setup or constraints between actions.
51
- def set_name
52
- @name = Name.find(params[:id])
53
- authorize @name
54
- end
55
-
56
- # Only allow a trusted parameter "white list" through.
57
- def name_params
58
- params.require(:name).permit(:first_name, :middle_name, :last_name, :language_id, :profile_id, :position)
59
- end
60
- end
@@ -1,219 +0,0 @@
1
- class ProfilesController < ApplicationController
2
- before_action :set_profile, only: [:show, :edit, :update, :destroy]
3
- before_action :check_policy, only: [:index, :new, :create]
4
- before_action :prepare_options, only: [:new, :edit]
5
-
6
- # GET /profiles
7
- # GET /profiles.json
8
- def index
9
- if params[:username].present?
10
- profile = User.where(username: params[:username]).first.try(:profile)
11
- if profile
12
- redirect_to profile
13
- return
14
- end
15
- end
16
- query = flash[:query] = params[:query].to_s
17
- @query = query.dup
18
- @count = {}
19
-
20
- sort = {sort_by: 'created_at', order: 'desc'}
21
- case params[:sort_by]
22
- when 'username'
23
- sort[:sort_by] = 'username'
24
- end
25
- case params[:order]
26
- when 'asc'
27
- sort[:order] = 'asc'
28
- when 'desc'
29
- sort[:order] = 'desc'
30
- end
31
-
32
- query = params[:query]
33
- page = params[:page] || 1
34
- role = current_user.try(:role) || Role.default_role
35
-
36
- search = Profile.search
37
- search.build do
38
- fulltext query if query
39
- with(:required_role_id).less_than_or_equal_to role.id
40
- order_by sort[:sort_by], sort[:order]
41
- end
42
- search.query.paginate(page.to_i, Profile.default_per_page)
43
- @profiles = search.execute!.results
44
- @count[:query_result] = @profiles.total_entries
45
-
46
- respond_to do |format|
47
- format.html # index.html.erb
48
- format.json { render json: @profiles }
49
- end
50
- end
51
-
52
- # GET /profiles/1
53
- # GET /profiles/1.json
54
- def show
55
- if @profile.user == current_user
56
- redirect_to my_account_url
57
- return
58
- end
59
-
60
- respond_to do |format|
61
- format.html # show.html.erb
62
- format.html.phone
63
- format.json { render json: @profile }
64
- end
65
- end
66
-
67
- # GET /profiles/new
68
- def new
69
- @profile = Profile.new
70
- @profile.user = User.new
71
- @profile.user_group = current_user.profile.user_group
72
- @profile.library = current_user.profile.library
73
- @profile.locale = current_user.profile.locale
74
-
75
- respond_to do |format|
76
- format.html # new.html.erb
77
- format.json { render json: @profile }
78
- end
79
- end
80
-
81
- # GET /profiles/1/edit
82
- def edit
83
- if defined?(EnjuCirculation)
84
- if params[:mode] == 'feed_token'
85
- if params[:disable] == 'true'
86
- @profile.delete_checkout_icalendar_token
87
- else
88
- @profile.reset_checkout_icalendar_token
89
- end
90
- render partial: 'feed_token', locals: {profile: @profile}
91
- return
92
- end
93
- end
94
- if @profile.user == current_user
95
- redirect_to edit_my_account_url
96
- return
97
- end
98
- if @profile.user.try(:locked_at?)
99
- @profile.user.locked = true
100
- end
101
- end
102
-
103
- # POST /profiles
104
- # POST /profiles.json
105
- def create
106
- if current_user.has_role?('Librarian')
107
- @profile = Profile.new(profile_params)
108
- if @profile.user
109
- password = @profile.user.set_auto_generated_password
110
- end
111
- else
112
- @profile = Profile.new(profile_params)
113
- end
114
-
115
- respond_to do |format|
116
- if @profile.save
117
- if @profile.user
118
- @profile.user.role = Role.where(name: 'User').first
119
- flash[:temporary_password] = password
120
- end
121
- format.html { redirect_to @profile, notice: t('controller.successfully_created', model: t('activerecord.models.profile')) }
122
- format.json { render json: @profile, status: :created, location: @profile }
123
- else
124
- prepare_options
125
- format.html { render action: "new" }
126
- format.json { render json: @profile.errors, status: :unprocessable_entity }
127
- end
128
- end
129
- end
130
-
131
- # PUT /profiles/1
132
- # PUT /profiles/1.json
133
- def update
134
- @profile.update_attributes(profile_update_params)
135
- if @profile.user
136
- if @profile.user.auto_generated_password == "1"
137
- password = @profile.user.set_auto_generated_password
138
- end
139
- end
140
-
141
- respond_to do |format|
142
- if @profile.save
143
- flash[:temporary_password] = password
144
- format.html { redirect_to @profile, notice: t('controller.successfully_updated', model: t('activerecord.models.profile')) }
145
- format.json { head :no_content }
146
- else
147
- prepare_options
148
- format.html { render action: "edit" }
149
- format.json { render json: @profile.errors, status: :unprocessable_entity }
150
- end
151
- end
152
- end
153
-
154
- # DELETE /profiles/1
155
- # DELETE /profiles/1.json
156
- def destroy
157
- @profile.destroy
158
-
159
- respond_to do |format|
160
- format.html { redirect_to profiles_url, notice: t('controller.successfully_deleted', model: t('activerecord.models.profile')) }
161
- format.json { head :no_content }
162
- end
163
- end
164
-
165
- private
166
- def set_profile
167
- @profile = Profile.find(params[:id])
168
- authorize @profile
169
- end
170
-
171
- def check_policy
172
- authorize Profile
173
- end
174
-
175
- def profile_params
176
- attrs = [
177
- :full_name, :full_name_transcription,
178
- :keyword_list, :locale,
179
- :save_checkout_history, :checkout_icalendar_token, # EnjuCirculation
180
- :save_search_history, # EnjuSearchLog
181
- ]
182
- attrs += [
183
- :library_id, :expired_at, :birth_date,
184
- :user_group_id, :required_role_id, :note, :user_number, {
185
- :user_attributes => [
186
- :id, :username, :email, :current_password, :locked,
187
- {:user_has_role_attributes => [:id, :role_id]}
188
- ]
189
- }
190
- ] if current_user.has_role?('Librarian')
191
- params.require(:profile).permit(*attrs)
192
- end
193
-
194
- def profile_update_params
195
- attrs = [
196
- :full_name, :full_name_transcription,
197
- :keyword_list, :locale,
198
- :save_checkout_history, :checkout_icalendar_token, # EnjuCirculation
199
- :save_search_history, # EnjuSearchLog
200
- ]
201
- attrs += [
202
- :library_id, :expired_at, :birth_date,
203
- :user_group_id, :required_role_id, :note, :user_number, {
204
- :user_attributes => [
205
- :id, :email, :current_password, :auto_generated_password, :locked,
206
- {:user_has_role_attributes => [:id, :role_id]}
207
- ]
208
- }
209
- ] if current_user.has_role?('Librarian')
210
- params.require(:profile).permit(*attrs)
211
- end
212
-
213
- def prepare_options
214
- @user_groups = UserGroup.all
215
- @roles = Role.all
216
- @libraries = Library.all
217
- @languages = Language.all
218
- end
219
- end