enju_seed 0.4.0.beta.1 → 0.4.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 (331) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +6 -9
  3. data/Rakefile +7 -16
  4. data/app/controllers/profiles_controller.rb +30 -30
  5. data/app/controllers/roles_controller.rb +1 -2
  6. data/app/models/concerns/enju_seed/enju_user.rb +27 -23
  7. data/app/models/concerns/master_model.rb +3 -3
  8. data/app/models/profile.rb +13 -12
  9. data/app/models/role.rb +4 -4
  10. data/app/models/user_has_role.rb +2 -5
  11. data/app/views/my_accounts/_edit_credential.html.erb +9 -9
  12. data/app/views/profiles/_edit_credential.html.erb +6 -6
  13. data/app/views/profiles/new.html.erb +3 -3
  14. data/app/views/profiles/show.html.erb +1 -1
  15. data/app/views/roles/index.html.erb +1 -1
  16. data/app/views/roles/show.html.erb +2 -7
  17. data/db/migrate/041_create_roles.rb +7 -6
  18. data/db/migrate/20100606065209_create_user_has_roles.rb +3 -3
  19. data/db/migrate/20130221154434_add_additional_attributes_to_user.rb +2 -2
  20. data/db/migrate/20140122054321_create_profiles.rb +8 -5
  21. data/db/migrate/20140610123439_drop_email_unique_constraint_enju_leaf_rc10.rb +11 -0
  22. data/db/migrate/20140811031145_add_expired_at_to_profile.rb +1 -1
  23. data/db/migrate/20141003181336_add_full_name_transcription_to_profile.rb +1 -1
  24. data/db/migrate/20141003182825_add_date_of_birth_to_profile.rb +1 -1
  25. data/db/migrate/20190630151446_add_display_name_translations_to_role.rb +5 -0
  26. data/db/migrate/20190713114940_add_profile_id_to_user.rb +5 -0
  27. data/db/migrate/20190713115451_add_full_name_translations_to_profile.rb +5 -0
  28. data/lib/enju_seed.rb +2 -2
  29. data/lib/enju_seed/engine.rb +2 -2
  30. data/lib/enju_seed/version.rb +1 -1
  31. data/lib/generators/enju_seed/setup/setup_generator.rb +9 -0
  32. data/lib/generators/enju_seed/setup/templates/db/fixtures/roles.yml +38 -0
  33. data/lib/generators/enju_seed/update/update_generator.rb +9 -0
  34. data/lib/tasks/enju_seed_tasks.rake +8 -4
  35. data/spec/controllers/my_accounts_controller_spec.rb +56 -45
  36. data/spec/controllers/profiles_controller_spec.rb +144 -147
  37. data/spec/controllers/roles_controller_spec.rb +35 -35
  38. data/spec/dummy/Rakefile +1 -1
  39. data/spec/dummy/app/models/application_record.rb +3 -0
  40. data/spec/dummy/app/models/user.rb +2 -2
  41. data/spec/dummy/bin/bundle +1 -1
  42. data/spec/dummy/bin/rails +1 -1
  43. data/spec/dummy/bin/setup +19 -12
  44. data/spec/dummy/bin/update +31 -0
  45. data/spec/dummy/bin/yarn +11 -0
  46. data/spec/dummy/config.ru +2 -1
  47. data/spec/dummy/config/application.rb +6 -1
  48. data/spec/dummy/config/cable.yml +10 -0
  49. data/spec/dummy/config/database.yml +3 -2
  50. data/spec/dummy/config/environments/development.rb +1 -1
  51. data/spec/dummy/config/environments/production.rb +8 -3
  52. data/spec/dummy/config/environments/test.rb +1 -1
  53. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  54. data/spec/dummy/config/initializers/assets.rb +7 -4
  55. data/spec/dummy/config/initializers/cookies_serializer.rb +2 -0
  56. data/spec/dummy/config/initializers/friendly_id.rb +75 -75
  57. data/spec/dummy/config/initializers/wrap_parameters.rb +2 -2
  58. data/spec/dummy/config/puma.rb +56 -0
  59. data/spec/dummy/config/routes.rb +4 -0
  60. data/spec/dummy/config/secrets.yml +15 -5
  61. data/spec/dummy/config/spring.rb +6 -0
  62. data/spec/dummy/db/migrate/001_create_agents.rb +7 -7
  63. data/spec/dummy/db/migrate/002_devise_create_users.rb +4 -3
  64. data/spec/dummy/db/migrate/005_create_manifestations.rb +5 -4
  65. data/spec/dummy/db/migrate/006_create_items.rb +4 -3
  66. data/spec/dummy/db/migrate/012_create_owns.rb +5 -3
  67. data/spec/dummy/db/migrate/015_create_creates.rb +5 -3
  68. data/spec/dummy/db/migrate/032_create_checkins.rb +1 -1
  69. data/spec/dummy/db/migrate/033_create_checkouts.rb +1 -1
  70. data/spec/dummy/db/migrate/035_create_reserves.rb +1 -1
  71. data/spec/dummy/db/migrate/047_create_produces.rb +5 -3
  72. data/spec/dummy/db/migrate/059_create_libraries.rb +7 -8
  73. data/spec/dummy/db/migrate/069_create_shelves.rb +3 -3
  74. data/spec/dummy/db/migrate/073_create_carrier_types.rb +2 -2
  75. data/spec/dummy/db/migrate/077_create_user_groups.rb +4 -4
  76. data/spec/dummy/db/migrate/080_create_library_groups.rb +6 -6
  77. data/spec/dummy/db/migrate/112_create_frequencies.rb +2 -2
  78. data/spec/dummy/db/migrate/117_create_form_of_works.rb +2 -2
  79. data/spec/dummy/db/migrate/120_create_baskets.rb +2 -2
  80. data/spec/dummy/db/migrate/121_create_checked_items.rb +1 -1
  81. data/spec/dummy/db/migrate/124_create_bookstores.rb +3 -3
  82. data/spec/dummy/db/migrate/125_create_donates.rb +3 -3
  83. data/spec/dummy/db/migrate/127_create_use_restrictions.rb +1 -1
  84. data/spec/dummy/db/migrate/129_create_item_has_use_restrictions.rb +1 -1
  85. data/spec/dummy/db/migrate/130_create_request_status_types.rb +3 -3
  86. data/spec/dummy/db/migrate/131_create_request_types.rb +3 -3
  87. data/spec/dummy/db/migrate/132_create_circulation_statuses.rb +1 -1
  88. data/spec/dummy/db/migrate/133_create_agent_merges.rb +2 -2
  89. data/spec/dummy/db/migrate/134_create_agent_merge_lists.rb +1 -1
  90. data/spec/dummy/db/migrate/149_create_message_templates.rb +18 -0
  91. data/spec/dummy/db/migrate/154_create_messages.rb +23 -0
  92. data/spec/dummy/db/migrate/20080819181903_create_message_requests.rb +18 -0
  93. data/spec/dummy/db/migrate/20080830154109_create_realizes.rb +5 -3
  94. data/spec/dummy/db/migrate/20080905191442_create_agent_types.rb +2 -2
  95. data/spec/dummy/db/migrate/20081006090811_create_subscriptions.rb +3 -5
  96. data/spec/dummy/db/migrate/20081006093246_create_subscribes.rb +4 -3
  97. data/spec/dummy/db/migrate/20081023092436_create_search_engines.rb +6 -6
  98. data/spec/dummy/db/migrate/20081025083323_create_countries.rb +5 -5
  99. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +6 -6
  100. data/spec/dummy/db/migrate/20081027150907_create_picture_files.rb +2 -2
  101. data/spec/dummy/db/migrate/20081028083142_create_agent_import_files.rb +1 -1
  102. data/spec/dummy/db/migrate/20081028083208_create_resource_import_files.rb +1 -1
  103. data/spec/dummy/db/migrate/20081030023412_create_checkout_types.rb +1 -1
  104. data/spec/dummy/db/migrate/20081030023518_create_user_group_has_checkout_types.rb +1 -1
  105. data/spec/dummy/db/migrate/20081030023615_create_carrier_type_has_checkout_types.rb +1 -1
  106. data/spec/dummy/db/migrate/20081212075554_create_checkout_stat_has_manifestations.rb +1 -1
  107. data/spec/dummy/db/migrate/20081212080038_create_manifestation_checkout_stats.rb +1 -1
  108. data/spec/dummy/db/migrate/20081215094302_create_user_checkout_stats.rb +1 -1
  109. data/spec/dummy/db/migrate/20081215094955_create_checkout_stat_has_users.rb +1 -1
  110. data/spec/dummy/db/migrate/20081216190517_create_reserve_stat_has_manifestations.rb +1 -1
  111. data/spec/dummy/db/migrate/20081216190724_create_manifestation_reserve_stats.rb +1 -1
  112. data/spec/dummy/db/migrate/20081220023628_create_user_reserve_stats.rb +1 -1
  113. data/spec/dummy/db/migrate/20081220034117_create_reserve_stat_has_users.rb +1 -1
  114. data/spec/dummy/db/migrate/20090321130448_add_completed_at_to_user_checkout_stat.rb +1 -1
  115. data/spec/dummy/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +1 -1
  116. data/spec/dummy/db/migrate/20090705212043_add_attachments_attachment_to_manifestation.rb +1 -1
  117. data/spec/dummy/db/migrate/20090720091106_create_medium_of_performances.rb +2 -2
  118. data/spec/dummy/db/migrate/20090720091429_create_content_types.rb +2 -2
  119. data/spec/dummy/db/migrate/20090812151902_create_agent_relationship_types.rb +2 -2
  120. data/spec/dummy/db/migrate/20090831220301_create_lending_policies.rb +21 -0
  121. data/spec/dummy/db/migrate/20091012101112_add_dcndl_schema.rb +1 -1
  122. data/spec/dummy/db/migrate/20091025080447_create_licenses.rb +2 -2
  123. data/spec/dummy/db/migrate/20091214131723_create_series_statements.rb +1 -1
  124. data/spec/dummy/db/migrate/20100129142347_create_import_requests.rb +7 -4
  125. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +2 -2
  126. data/spec/dummy/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +1 -1
  127. data/spec/dummy/db/migrate/20100314190054_add_opening_hour_to_library.rb +1 -1
  128. data/spec/dummy/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +1 -1
  129. data/spec/dummy/db/migrate/20100525124311_create_manifestation_relationships.rb +6 -4
  130. data/spec/dummy/db/migrate/20100606073747_create_agent_relationships.rb +1 -1
  131. data/spec/dummy/db/migrate/20100607044753_create_manifestation_relationship_types.rb +2 -2
  132. data/spec/dummy/db/migrate/20100814091104_add_position_to_agent_relationship.rb +1 -1
  133. data/spec/dummy/db/migrate/20100925043847_create_resource_import_results.rb +1 -1
  134. data/spec/dummy/db/migrate/20100925074559_create_agent_import_results.rb +1 -1
  135. data/spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb +1 -1
  136. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +2 -2
  137. data/spec/dummy/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +1 -1
  138. data/spec/dummy/db/migrate/20110301121550_add_birth_date_and_death_date_to_agent.rb +1 -1
  139. data/spec/dummy/db/migrate/20110301134521_add_expire_date_to_reserve.rb +1 -1
  140. data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +2 -2
  141. data/spec/dummy/db/migrate/20110328130826_add_current_checkout_count_to_user_group_has_checkout_type.rb +1 -1
  142. data/spec/dummy/db/migrate/20110603184217_add_edit_mode_to_resource_import_file.rb +1 -1
  143. data/spec/dummy/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +1 -1
  144. data/spec/dummy/db/migrate/20110620173525_add_bookstore_id_to_item.rb +1 -1
  145. data/spec/dummy/db/migrate/20110621093332_remove_expire_date_from_reserve.rb +1 -1
  146. data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +1 -1
  147. data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +3 -3
  148. data/spec/dummy/db/migrate/20110627122938_add_number_of_day_to_notify_overdue_to_user_group.rb +1 -1
  149. data/spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +11 -0
  150. data/spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +1 -1
  151. data/spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +1 -1
  152. data/spec/dummy/db/migrate/20110918162329_add_note_to_series_statement.rb +1 -1
  153. data/spec/dummy/db/migrate/20111124110059_create_create_types.rb +1 -1
  154. data/spec/dummy/db/migrate/20111124110319_create_realize_types.rb +1 -1
  155. data/spec/dummy/db/migrate/20111124110355_create_produce_types.rb +1 -1
  156. data/spec/dummy/db/migrate/20111124112131_add_create_type_to_create.rb +1 -1
  157. data/spec/dummy/db/migrate/20111129044509_add_pickup_location_to_reserve.rb +1 -1
  158. data/spec/dummy/db/migrate/20120105074911_add_isil_to_library.rb +1 -1
  159. data/spec/dummy/db/migrate/20120125050502_add_depth_to_message.rb +6 -0
  160. data/spec/dummy/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +1 -1
  161. data/spec/dummy/db/migrate/20120129014038_create_budget_types.rb +1 -1
  162. data/spec/dummy/db/migrate/20120129020544_add_budget_type_id_to_item.rb +1 -1
  163. data/spec/dummy/db/migrate/20120319120638_add_content_type_id_to_manifestation.rb +2 -2
  164. data/spec/dummy/db/migrate/20120319173203_create_accepts.rb +4 -4
  165. data/spec/dummy/db/migrate/20120410104851_add_year_of_publication_to_manifestation.rb +1 -1
  166. data/spec/dummy/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +1 -1
  167. data/spec/dummy/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +1 -1
  168. data/spec/dummy/db/migrate/20120413161340_add_fingerprint_to_resource_import_file.rb +1 -1
  169. data/spec/dummy/db/migrate/20120413161403_add_fingerprint_to_agent_import_file.rb +1 -1
  170. data/spec/dummy/db/migrate/20120413170705_add_error_message_to_resource_import_file.rb +5 -0
  171. data/spec/dummy/db/migrate/20120413170720_add_error_message_to_agent_import_file.rb +5 -0
  172. data/spec/dummy/db/migrate/20120415164821_add_attachment_meta_to_manifestation.rb +1 -1
  173. data/spec/dummy/db/migrate/20120418081407_add_month_of_publication_to_manifestation.rb +1 -1
  174. data/spec/dummy/db/migrate/20120424103932_add_librarian_id_to_checked_item.rb +1 -1
  175. data/spec/dummy/db/migrate/20120510140958_add_closed_to_shelf.rb +2 -2
  176. data/spec/dummy/db/migrate/20120511072422_add_agent_identifier_to_agent.rb +1 -1
  177. data/spec/dummy/db/migrate/20120602141129_add_edit_mode_to_agent_import_file.rb +1 -1
  178. data/spec/dummy/db/migrate/20121116031206_add_fulltext_content_to_manifestation.rb +1 -1
  179. data/spec/dummy/db/migrate/20130303124821_add_retained_at_to_reserve.rb +1 -1
  180. data/spec/dummy/db/migrate/20130304015019_add_postponed_at_to_reserve.rb +1 -1
  181. data/spec/dummy/db/migrate/20130412083556_add_latitude_and_longitude_to_library.rb +1 -1
  182. data/spec/dummy/db/migrate/20130416054135_add_circulation_status_id_to_item.rb +1 -1
  183. data/spec/dummy/db/migrate/20130421093852_add_periodical_to_manifestation.rb +1 -1
  184. data/spec/dummy/db/migrate/20130421155019_add_creator_string_to_series_statement.rb +1 -1
  185. data/spec/dummy/db/migrate/20130421164124_add_series_master_to_series_statement.rb +1 -1
  186. data/spec/dummy/db/migrate/20130429020822_add_root_manifestation_id_to_series_statement.rb +1 -1
  187. data/spec/dummy/db/migrate/20130506175303_create_identifier_types.rb +1 -1
  188. data/spec/dummy/db/migrate/20130506175834_create_identifiers.rb +3 -2
  189. data/spec/dummy/db/migrate/20130509185724_add_statement_of_responsibility_to_manifestation.rb +1 -1
  190. data/spec/dummy/db/migrate/20130519065638_add_lock_version_to_reserve.rb +1 -1
  191. data/spec/dummy/db/migrate/20130519065837_add_lock_version_to_checkin.rb +1 -1
  192. data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +3 -3
  193. data/spec/dummy/db/migrate/20140110131010_create_user_import_results.rb +3 -3
  194. data/spec/dummy/db/migrate/20140518050147_create_reserve_transitions.rb +3 -3
  195. data/spec/dummy/db/migrate/20140518111006_create_message_transitions.rb +18 -0
  196. data/spec/dummy/db/migrate/20140518135713_create_message_request_transitions.rb +18 -0
  197. data/spec/dummy/db/migrate/20140519170214_create_resource_import_file_transitions.rb +3 -3
  198. data/spec/dummy/db/migrate/20140519171220_create_import_request_transitions.rb +3 -3
  199. data/spec/dummy/db/migrate/20140524020735_create_agent_import_file_transitions.rb +3 -3
  200. data/spec/dummy/db/migrate/20140524074813_create_user_import_file_transitions.rb +2 -3
  201. data/spec/dummy/db/migrate/20140528045518_create_user_checkout_stat_transitions.rb +4 -4
  202. data/spec/dummy/db/migrate/20140528045539_create_user_reserve_stat_transitions.rb +4 -4
  203. data/spec/dummy/db/migrate/20140528045600_create_manifestation_checkout_stat_transitions.rb +5 -5
  204. data/spec/dummy/db/migrate/20140528045617_create_manifestation_reserve_stat_transitions.rb +5 -5
  205. data/spec/dummy/db/migrate/20140614065404_create_resource_export_files.rb +2 -1
  206. data/spec/dummy/db/migrate/20140614141500_create_resource_export_file_transitions.rb +3 -3
  207. data/spec/dummy/db/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +1 -1
  208. data/spec/dummy/db/migrate/20140628073524_add_user_encoding_to_agent_import_file.rb +1 -1
  209. data/spec/dummy/db/migrate/20140628073535_add_user_encoding_to_resource_import_file.rb +1 -1
  210. data/spec/dummy/db/migrate/20140709113413_create_user_export_files.rb +3 -2
  211. data/spec/dummy/db/migrate/20140709113905_create_user_export_file_transitions.rb +2 -2
  212. data/spec/dummy/db/migrate/20140720140916_add_binding_item_identifier_to_item.rb +1 -1
  213. data/spec/dummy/db/migrate/20140720170714_add_default_library_id_to_user_import_file.rb +2 -2
  214. data/spec/dummy/db/migrate/20140720170735_add_default_user_group_id_to_user_import_file.rb +2 -2
  215. data/spec/dummy/db/migrate/20140721151416_add_default_shelf_id_to_resource_import_file.rb +1 -1
  216. data/spec/dummy/db/migrate/20140802082007_add_manifestation_id_to_item.rb +3 -2
  217. data/spec/dummy/db/migrate/20140810061942_add_user_id_to_user_checkout_stat.rb +1 -1
  218. data/spec/dummy/db/migrate/20140810091231_add_checkout_icalendar_token_to_profile.rb +1 -1
  219. data/spec/dummy/db/migrate/20140810091417_add_save_checkout_history_to_profile.rb +1 -1
  220. data/spec/dummy/db/migrate/20140813182425_add_publication_place_to_manifestation.rb +1 -1
  221. data/spec/dummy/db/migrate/20140821151023_create_colors.rb +2 -4
  222. data/spec/dummy/db/migrate/20140822114527_add_error_message_to_resource_import_result.rb +5 -0
  223. data/spec/dummy/db/migrate/20140823083524_add_extent_to_manifestation.rb +1 -1
  224. data/spec/dummy/db/migrate/20140823094847_add_dimensions_to_manifestation.rb +1 -1
  225. data/spec/dummy/db/migrate/20140823095740_rename_manifestation_periodical_to_serial.rb +1 -1
  226. data/spec/dummy/db/migrate/20141014065831_add_shelf_id_to_checkout.rb +1 -1
  227. data/spec/dummy/db/migrate/20141020120523_add_library_id_to_checkout.rb +1 -1
  228. data/spec/dummy/db/migrate/20150106001709_create_demands.rb +1 -1
  229. data/spec/dummy/db/migrate/20150117111136_add_foreign_key_to_items_referencing_manifestations.rb +5 -0
  230. data/spec/dummy/db/migrate/20150221063719_add_settings_to_library_group.rb +2 -2
  231. data/spec/dummy/db/migrate/20150506105356_add_error_message_to_user_import_result.rb +5 -0
  232. data/spec/dummy/db/migrate/20150924115059_create_withdraws.rb +4 -4
  233. data/spec/dummy/db/migrate/20151125004028_add_profile_id_to_agent.rb +1 -1
  234. data/spec/dummy/db/migrate/20151213070943_add_translation_table_to_library_group.rb +5 -3
  235. data/spec/dummy/db/migrate/20151213072705_add_footer_banner_to_library_group.rb +20 -3
  236. data/spec/dummy/db/migrate/20160610093229_add_html_snippet_to_library_group.rb +1 -1
  237. data/spec/dummy/db/migrate/20160627232219_add_most_recent_to_user_import_file_transitions.rb +1 -1
  238. data/spec/dummy/db/migrate/20160627232316_add_most_recent_to_user_export_file_transitions.rb +1 -1
  239. data/spec/dummy/db/migrate/20160703184619_add_most_recent_to_reserve_transitions.rb +1 -1
  240. data/spec/dummy/db/migrate/20160703184650_add_most_recent_to_manifestation_checkout_stat_transitions.rb +1 -1
  241. data/spec/dummy/db/migrate/20160703184723_add_most_recent_to_manifestation_reserve_stat_transitions.rb +1 -1
  242. data/spec/dummy/db/migrate/20160703184747_add_most_recent_to_user_checkout_stat_transitions.rb +1 -1
  243. data/spec/dummy/db/migrate/20160703184805_add_most_recent_to_user_reserve_stat_transitions.rb +1 -1
  244. data/spec/dummy/db/migrate/20160703185015_add_most_recent_to_message_transitions.rb +9 -0
  245. data/spec/dummy/db/migrate/20160703190209_add_foreign_key_on_manifestation_id_to_reserve.rb +5 -0
  246. data/spec/dummy/db/migrate/20160813191647_add_max_number_of_results_to_library_group.rb +1 -1
  247. data/spec/dummy/db/migrate/20160813191733_add_family_name_first_to_library_group.rb +1 -1
  248. data/spec/dummy/db/migrate/20160813192542_add_pub_year_facet_range_interval_to_library_group.rb +1 -1
  249. data/spec/dummy/db/migrate/20160813203039_add_user_id_to_library_group.rb +1 -1
  250. data/spec/dummy/db/migrate/20170305064014_add_csv_charset_conversion_to_library_group.rb +5 -0
  251. data/spec/dummy/db/migrate/20171014084528_add_header_logo_to_library_group.rb +5 -0
  252. data/spec/dummy/db/migrate/20171126133835_rename_login_banner_to_old_login_banner.rb +5 -0
  253. data/spec/dummy/db/migrate/20171126135238_add_foreign_key_to_library_group_id_on_library.rb +5 -0
  254. data/spec/dummy/db/migrate/20180102162311_add_header_logo_meta_to_library_group.rb +5 -0
  255. data/spec/dummy/db/migrate/20180107160726_add_constraints_to_most_recent_for_user_import_file_transitions.rb +13 -0
  256. data/spec/dummy/db/migrate/20180107160740_add_constraints_to_most_recent_for_user_export_file_transitions.rb +13 -0
  257. data/spec/dummy/db/migrate/20190630113817_add_display_name_translations_to_library_group.rb +12 -0
  258. data/spec/dummy/db/migrate/20190630115523_add_login_banner_translations_to_library_group.rb +6 -0
  259. data/spec/dummy/db/schema.rb +454 -492
  260. data/spec/dummy/db/test.sqlite3 +0 -0
  261. data/spec/dummy/package.json +5 -0
  262. data/spec/factories/profile.rb +8 -8
  263. data/spec/factories/user.rb +22 -25
  264. data/spec/factories/user_group.rb +1 -1
  265. data/spec/fixtures/libraries.yml +34 -33
  266. data/spec/fixtures/library_groups.yml +27 -14
  267. data/spec/fixtures/profiles.yml +36 -27
  268. data/spec/fixtures/roles.yml +8 -7
  269. data/spec/fixtures/user_groups.yml +11 -10
  270. data/spec/fixtures/user_has_roles.yml +2 -2
  271. data/spec/fixtures/users.yml +0 -7
  272. data/spec/models/profile_spec.rb +19 -17
  273. data/spec/models/role_spec.rb +13 -11
  274. data/spec/models/user_has_role_spec.rb +5 -4
  275. data/spec/models/user_spec.rb +16 -14
  276. data/spec/rails_helper.rb +14 -2
  277. data/spec/requests/profiles_spec.rb +3 -3
  278. data/spec/routing/profiles_routing_spec.rb +18 -16
  279. data/spec/routing/roles_routing_spec.rb +18 -16
  280. data/spec/routing/users_spec.rb +7 -6
  281. data/spec/spec_helper.rb +49 -47
  282. data/spec/support/controller_macros.rb +6 -6
  283. data/spec/system/profiles_spec.rb +39 -0
  284. data/spec/views/my_accounts/show.html.erb_spec.rb +6 -6
  285. data/spec/views/profiles/edit.html.erb_spec.rb +7 -7
  286. data/spec/views/profiles/index.html.erb_spec.rb +3 -3
  287. data/spec/views/profiles/new.html.erb_spec.rb +6 -5
  288. data/spec/views/profiles/show.html.erb_spec.rb +4 -4
  289. data/spec/views/roles/edit.html.erb_spec.rb +18 -0
  290. data/spec/views/roles/index.html.erb_spec.rb +14 -0
  291. data/spec/views/roles/new.html.erb_spec.rb +18 -0
  292. data/spec/views/roles/show.html.erb_spec.rb +14 -0
  293. metadata +148 -92
  294. data/app/models/identity.rb +0 -23
  295. data/app/policies/user_export_file_policy.rb +0 -21
  296. data/app/policies/user_import_file_policy.rb +0 -21
  297. data/app/policies/user_import_result_policy.rb +0 -21
  298. data/db/migrate/20150421023923_create_identities.rb +0 -12
  299. data/db/migrate/20151126005552_add_provider_to_identity.rb +0 -5
  300. data/db/migrate/20170114174536_add_profile_id_to_user.rb +0 -5
  301. data/lib/enju_seed/localized_name.rb +0 -13
  302. data/spec/dummy/db/migrate/20080830172106_create_exemplifies.rb +0 -11
  303. data/spec/dummy/db/migrate/20140529014410_create_item_transitions.rb +0 -15
  304. data/spec/dummy/db/migrate/20141029131633_create_periodicals.rb +0 -11
  305. data/spec/dummy/db/migrate/20150302110310_add_attachment_id_to_manifestation.rb +0 -7
  306. data/spec/dummy/db/migrate/20150304183215_add_picture_id_to_picture_file.rb +0 -7
  307. data/spec/dummy/db/migrate/20150305025906_add_resource_import_id_to_resource_import_file.rb +0 -7
  308. data/spec/dummy/db/migrate/20150305030046_add_resource_export_id_to_resource_export_file.rb +0 -8
  309. data/spec/dummy/db/migrate/20150305031709_add_agent_import_id_to_agent_import_file.rb +0 -7
  310. data/spec/dummy/db/migrate/20150305105231_add_attachment_fingerprint_to_manifestation.rb +0 -5
  311. data/spec/dummy/db/migrate/20150420145354_add_attachment_to_carrier_type.rb +0 -8
  312. data/spec/dummy/db/migrate/20150420145420_add_attachment_to_content_type.rb +0 -8
  313. data/spec/dummy/db/migrate/20151216123621_create_doi_records.rb +0 -12
  314. data/spec/dummy/db/migrate/20160319144230_create_issn_records.rb +0 -12
  315. data/spec/dummy/db/migrate/20160506144040_create_isbn_records.rb +0 -12
  316. data/spec/dummy/db/migrate/20160513000929_create_agent_names.rb +0 -18
  317. data/spec/dummy/db/migrate/20160801080612_add_most_recent_to_import_request_transitions.rb +0 -9
  318. data/spec/dummy/db/migrate/20160801080619_add_most_recent_to_resource_import_file_transitions.rb +0 -9
  319. data/spec/dummy/db/migrate/20160801080637_add_most_recent_to_resource_export_file_transitions.rb +0 -9
  320. data/spec/dummy/db/migrate/20160801080643_add_most_recent_to_agent_import_file_transitions.rb +0 -9
  321. data/spec/dummy/db/migrate/20160813191533_add_book_jacket_source_to_library_group.rb +0 -5
  322. data/spec/dummy/db/migrate/20160813191820_add_screenshot_generator_to_library_group.rb +0 -5
  323. data/spec/dummy/db/migrate/20161111175127_add_attachment_data_to_manifestation.rb +0 -5
  324. data/spec/dummy/db/migrate/20161111193255_add_attachment_data_to_carrier_type.rb +0 -5
  325. data/spec/dummy/db/migrate/20161111193346_add_attachment_data_to_content_type.rb +0 -5
  326. data/spec/dummy/db/migrate/20161112122706_add_attachment_data_to_resource_import_file.rb +0 -5
  327. data/spec/dummy/db/migrate/20161112122750_add_attachment_data_to_resource_export_file.rb +0 -5
  328. data/spec/dummy/db/migrate/20161112122814_add_attachment_data_to_agent_import_file.rb +0 -5
  329. data/spec/dummy/db/migrate/20161114083857_add_image_data_to_picture_file.rb +0 -5
  330. data/spec/dummy/db/migrate/20161115184747_add_attachment_data_to_user_import_file.rb +0 -5
  331. data/spec/dummy/db/migrate/20161115184756_add_attachment_data_to_user_export_file.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b5fffbc1a85f126c197b09fe20aa46de6d61fa3a
4
- data.tar.gz: d6bb594aa98a2d6d93032321b2de745039da40f4
2
+ SHA256:
3
+ metadata.gz: 24825e1b1fec92ac49f176547038b8034a5372a7b0532a2c933b763d46922b92
4
+ data.tar.gz: 6c83e33b4c0ad82842533b569c6ff3e6bdffd43b3c97420bb2ee3ed1a9ecf02f
5
5
  SHA512:
6
- metadata.gz: 89cad5681535a5c84a81bd18489e4ebe861d676545d4301ba91fcfcf6fb967a8c07303b63466164190b44571a1520e9c9c571c6b3b4627e43fc147d68c648f17
7
- data.tar.gz: 84e0a347b30ba2afb9d2f8a55aaefc3896f160b6285536b881e2e3b016e2442b1da6f796ef21ece33feeb31ffcebe1dc0b38dd3fa11ab78dfa2b3367fcf8970a
6
+ metadata.gz: c789d9f750e4cd24cee9676a24239ec4e0fe87247fa4ef82d49ad6f760ab479afbad06e20a2a5c476aa4d6cf6ee534950555fbc29cd21e01fd74b559459f03bf
7
+ data.tar.gz: 1bb53c986224cb240009fde3421b02ff066a58bff58090ac32346befb9a95e91ed4947ec6e937ece13e5fd6db80a795be7ebfbd049bc8ef4c3409535a8bdb735
data/README.md CHANGED
@@ -1,12 +1,9 @@
1
1
  # EnjuSeed
2
- [![Build Status](https://travis-ci.org/next-l/enju_seed.svg?branch=master)](https://travis-ci.org/next-l/enju_seed)
3
- [![Maintainability](https://api.codeclimate.com/v1/badges/1af7690d4817559ccef9/maintainability)](https://codeclimate.com/github/next-l/enju_seed/maintainability)
4
- [![Test Coverage](https://api.codeclimate.com/v1/badges/1af7690d4817559ccef9/test_coverage)](https://codeclimate.com/github/next-l/enju_seed/test_coverage)
5
- [![security](https://hakiri.io/github/next-l/enju_seed/master.svg)](https://hakiri.io/github/next-l/enju_seed/master)
2
+ [![CircleCI](https://circleci.com/gh/next-l/enju_seed/tree/2.x.svg?style=svg)](https://circleci.com/gh/next-l/enju_seed/tree/2.x)
3
+ [![Coverage Status](https://coveralls.io/repos/github/next-l/enju_seed/badge.svg?branch=2.x)](https://coveralls.io/github/next-l/enju_seed?branch=2.x)
6
4
 
7
- ## 製作者・貢献者 (Authors and contributors)
8
- - [TANABE, Kosuke](https://github.com/nabeta) ([@nabeta](https://twitter.com/nabeta))
9
- - [Project Next-L](http://www.next-l.jp) ([@ProjectNextL]([https://twitter.com/ProjectNextL))
5
+ This project rocks and uses MIT-LICENSE.
10
6
 
11
- ## License
12
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
7
+ ## 製作者・貢献者 (Authors and contributors)
8
+ * [TANABE, Kosuke](https://github.com/nabeta) ([@nabeta](https://twitter.com/nabeta))
9
+ * [Project Next-L](https://www.next-l.jp) ([@ProjectNextL](https://twitter.com/ProjectNextL))
data/Rakefile CHANGED
@@ -14,28 +14,19 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
17
- APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
17
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
18
18
  load 'rails/tasks/engine.rake'
19
19
 
20
- load 'rails/tasks/statistics.rake'
21
20
 
22
- require 'bundler/gem_tasks'
23
21
 
24
- require 'rake/testtask'
22
+ Bundler::GemHelper.install_tasks
25
23
 
26
- Rake::TestTask.new(:test) do |t|
27
- t.libs << 'lib'
28
- t.libs << 'test'
29
- t.pattern = 'test/**/*_test.rb'
30
- t.verbose = false
31
- end
32
-
33
- begin
34
- require 'rspec/core/rake_task'
24
+ require 'rspec/core'
25
+ require 'rspec/core/rake_task'
35
26
 
36
- RSpec::Core::RakeTask.new(:spec)
37
- rescue LoadError
38
- # no rspec available
27
+ RSpec::Core::RakeTask.new(:spec) do |spec|
28
+ spec.pattern = FileList['spec/**/*_spec.rb']
39
29
  end
40
30
 
31
+
41
32
  task default: :spec
@@ -1,4 +1,5 @@
1
1
  class ProfilesController < ApplicationController
2
+ before_action :authenticate_user!
2
3
  before_action :set_profile, only: [:show, :edit, :update, :destroy]
3
4
  before_action :check_policy, only: [:index, :new, :create]
4
5
  before_action :prepare_options, only: [:new, :edit]
@@ -17,7 +18,7 @@ class ProfilesController < ApplicationController
17
18
  @query = query.dup
18
19
  @count = {}
19
20
 
20
- sort = { sort_by: 'created_at', order: 'desc' }
21
+ sort = {sort_by: 'created_at', order: 'desc'}
21
22
  case params[:sort_by]
22
23
  when 'username'
23
24
  sort[:sort_by] = 'username'
@@ -87,7 +88,7 @@ class ProfilesController < ApplicationController
87
88
  else
88
89
  @profile.reset_checkout_icalendar_token
89
90
  end
90
- render partial: 'feed_token', locals: { profile: @profile }
91
+ render partial: 'feed_token', locals: {profile: @profile}
91
92
  return
92
93
  end
93
94
  end
@@ -95,7 +96,9 @@ class ProfilesController < ApplicationController
95
96
  redirect_to edit_my_account_url
96
97
  return
97
98
  end
98
- @profile.user.locked = true if @profile.user.try(:locked_at?)
99
+ if @profile.user.try(:locked_at?)
100
+ @profile.user.locked = true
101
+ end
99
102
  end
100
103
 
101
104
  # POST /profiles
@@ -103,7 +106,9 @@ class ProfilesController < ApplicationController
103
106
  def create
104
107
  if current_user.has_role?('Librarian')
105
108
  @profile = Profile.new(profile_params)
106
- password = @profile.user.set_auto_generated_password if @profile.user
109
+ if @profile.user
110
+ password = @profile.user.set_auto_generated_password
111
+ end
107
112
  else
108
113
  @profile = Profile.new(profile_params)
109
114
  end
@@ -118,7 +123,7 @@ class ProfilesController < ApplicationController
118
123
  format.json { render json: @profile, status: :created, location: @profile }
119
124
  else
120
125
  prepare_options
121
- format.html { render action: 'new' }
126
+ format.html { render action: "new" }
122
127
  format.json { render json: @profile.errors, status: :unprocessable_entity }
123
128
  end
124
129
  end
@@ -129,7 +134,7 @@ class ProfilesController < ApplicationController
129
134
  def update
130
135
  @profile.update_attributes(profile_update_params)
131
136
  if @profile.user
132
- if @profile.user.auto_generated_password == '1'
137
+ if @profile.user.auto_generated_password == "1"
133
138
  password = @profile.user.set_auto_generated_password
134
139
  end
135
140
  end
@@ -141,7 +146,7 @@ class ProfilesController < ApplicationController
141
146
  format.json { head :no_content }
142
147
  else
143
148
  prepare_options
144
- format.html { render action: 'edit' }
149
+ format.html { render action: "edit" }
145
150
  format.json { render json: @profile.errors, status: :unprocessable_entity }
146
151
  end
147
152
  end
@@ -159,7 +164,6 @@ class ProfilesController < ApplicationController
159
164
  end
160
165
 
161
166
  private
162
-
163
167
  def set_profile
164
168
  @profile = Profile.find(params[:id])
165
169
  authorize @profile
@@ -176,17 +180,15 @@ class ProfilesController < ApplicationController
176
180
  :save_checkout_history, :checkout_icalendar_token, # EnjuCirculation
177
181
  :save_search_history, # EnjuSearchLog
178
182
  ]
179
- if current_user.has_role?('Librarian')
180
- attrs += [
181
- :library_id, :expired_at, :birth_date,
182
- :user_group_id, :required_role_id, :note, :user_number, {
183
- user_attributes: [
184
- :id, :username, :email, :current_password, :locked,
185
- { user_has_role_attributes: [:id, :role_id] }
186
- ]
187
- }
188
- ]
189
- end
183
+ attrs += [
184
+ :library_id, :expired_at, :birth_date,
185
+ :user_group_id, :required_role_id, :note, :user_number, {
186
+ user_attributes: [
187
+ :id, :username, :email, :current_password, :locked,
188
+ {user_has_role_attributes: [:id, :role_id]}
189
+ ]
190
+ }
191
+ ] if current_user.has_role?('Librarian')
190
192
  params.require(:profile).permit(*attrs)
191
193
  end
192
194
 
@@ -197,17 +199,15 @@ class ProfilesController < ApplicationController
197
199
  :save_checkout_history, :checkout_icalendar_token, # EnjuCirculation
198
200
  :save_search_history, # EnjuSearchLog
199
201
  ]
200
- if current_user.has_role?('Librarian')
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
- ]
210
- end
202
+ attrs += [
203
+ :library_id, :expired_at, :birth_date,
204
+ :user_group_id, :required_role_id, :note, :user_number, {
205
+ user_attributes: [
206
+ :id, :email, :current_password, :auto_generated_password, :locked,
207
+ {user_has_role_attributes: [:id, :role_id]}
208
+ ]
209
+ }
210
+ ] if current_user.has_role?('Librarian')
211
211
  params.require(:profile).permit(*attrs)
212
212
  end
213
213
 
@@ -39,14 +39,13 @@ class RolesController < ApplicationController
39
39
  format.html { redirect_to @role, notice: t('controller.successfully_updated', model: t('activerecord.models.role')) }
40
40
  format.json { head :no_content }
41
41
  else
42
- format.html { render action: 'edit' }
42
+ format.html { render action: "edit" }
43
43
  format.json { render json: @role.errors, status: :unprocessable_entity }
44
44
  end
45
45
  end
46
46
  end
47
47
 
48
48
  private
49
-
50
49
  def set_role
51
50
  @role = Role.find(params[:id])
52
51
  authorize @role
@@ -6,26 +6,26 @@ module EnjuSeed
6
6
  scope :administrators, -> { joins(:role).where('roles.name = ?', 'Administrator') }
7
7
  scope :librarians, -> { joins(:role).where('roles.name = ? OR roles.name = ?', 'Administrator', 'Librarian') }
8
8
  scope :suspended, -> { where('locked_at IS NOT NULL') }
9
+ has_one :profile, dependent: :nullify
9
10
  if defined?(EnjuBiblio)
10
11
  has_many :import_requests
11
12
  has_many :picture_files, as: :picture_attachable, dependent: :destroy
12
13
  end
13
14
  has_one :user_has_role, dependent: :destroy
14
15
  has_one :role, through: :user_has_role
15
- belongs_to :profile
16
16
  accepts_nested_attributes_for :user_has_role
17
17
 
18
18
  validates :username, presence: true, uniqueness: true, format: {
19
19
  with: /\A[0-9A-Za-z][0-9A-Za-z_\-]*[0-9A-Za-z]\z/
20
20
  }
21
- validates :email, format: Devise.email_regexp, allow_blank: true, uniqueness: true
21
+ validates :email, format: Devise::email_regexp, allow_blank: true, uniqueness: true
22
22
  validates_date :expired_at, allow_blank: true
23
23
 
24
24
  with_options if: :password_required? do |v|
25
25
  v.validates_presence_of :password
26
26
  v.validates_confirmation_of :password
27
27
  v.validates_length_of :password, allow_blank: true,
28
- within: Devise.password_length
28
+ within: Devise::password_length
29
29
  end
30
30
 
31
31
  before_validation :set_lock_information
@@ -39,8 +39,8 @@ module EnjuSeed
39
39
  strip_attributes only: :email, allow_empty: true
40
40
 
41
41
  attr_accessor :password_not_verified,
42
- :update_own_account, :auto_generated_password,
43
- :locked, :current_password # , :agent_id
42
+ :update_own_account, :auto_generated_password,
43
+ :locked, :current_password #, :agent_id
44
44
 
45
45
  paginates_per 10
46
46
 
@@ -51,13 +51,13 @@ module EnjuSeed
51
51
  # 有効期限切れのユーザを一括で使用不可にします。
52
52
  def self.lock_expired_users
53
53
  User.find_each do |user|
54
- user.lock_access! if user.expired? && user.active_for_authentication?
54
+ user.lock_access! if user.expired? and user.active_for_authentication?
55
55
  end
56
56
  end
57
57
 
58
58
  # ユーザの情報をエクスポートします。
59
59
  # @param [Hash] options
60
- def self.export(options = { format: :txt })
60
+ def self.export(options = {format: :txt})
61
61
  header = %w(
62
62
  username
63
63
  full_name
@@ -76,16 +76,14 @@ module EnjuSeed
76
76
  keyword_list
77
77
  note
78
78
  )
79
- if defined? EnjuCirculation
80
- header += %w(
81
- checkout_icalendar_token
82
- save_checkout_history
83
- )
84
- end
85
- header << 'save_search_history' if defined? EnjuSearchLog
86
- header << 'share_bookmarks' if defined? EnjuBookmark
79
+ header += %w(
80
+ checkout_icalendar_token
81
+ save_checkout_history
82
+ ) if defined? EnjuCirculation
83
+ header << "save_search_history" if defined? EnjuSearchLog
84
+ header << "share_bookmarks" if defined? EnjuBookmark
87
85
  lines = []
88
- User.find_each.map do |u|
86
+ User.find_each.map{|u|
89
87
  line = []
90
88
  line << u.username
91
89
  line << u.try(:profile).try(:full_name)
@@ -101,7 +99,7 @@ module EnjuSeed
101
99
  line << u.created_at
102
100
  line << u.updated_at
103
101
  line << u.try(:profile).try(:expired_at)
104
- line << u.try(:profile).try(:keyword_list).try(:split).try(:join, '//')
102
+ line << u.try(:profile).try(:keyword_list).try(:split).try(:join, "//")
105
103
  line << u.try(:profile).try(:note)
106
104
  if defined? EnjuCirculation
107
105
  line << u.try(:profile).try(:checkout_icalendar_token)
@@ -110,11 +108,13 @@ module EnjuSeed
110
108
  if defined? EnjuSearchLog
111
109
  line << u.try(:profile).try(:save_search_history)
112
110
  end
113
- line << u.try(:profile).try(:share_bookmarks) if defined? EnjuBookmark
111
+ if defined? EnjuBookmark
112
+ line << u.try(:profile).try(:share_bookmarks)
113
+ end
114
114
  lines << line
115
- end
115
+ }
116
116
  if options[:format] == :txt
117
- lines.map { |line| line.to_csv(col_sep: "\t") }.unshift(header.to_csv(col_sep: "\t")).join
117
+ lines.map{|line| line.to_csv(col_sep: "\t")}.unshift(header.to_csv(col_sep: "\t")).join
118
118
  else
119
119
  lines
120
120
  end
@@ -147,9 +147,9 @@ module EnjuSeed
147
147
 
148
148
  # ユーザに使用不可の設定を反映させます。
149
149
  def set_lock_information
150
- if (locked == '1') && active_for_authentication?
150
+ if locked == '1' and self.active_for_authentication?
151
151
  lock_access!
152
- elsif (locked == '0') && !active_for_authentication?
152
+ elsif locked == '0' and !self.active_for_authentication?
153
153
  unlock_access!
154
154
  end
155
155
  end
@@ -237,7 +237,9 @@ module EnjuSeed
237
237
  errors[:base] << I18n.t('user.only_administrator_can_destroy')
238
238
  end
239
239
  # 最後の図書館員を削除しようとした
240
- errors[:base] << I18n.t('user.last_librarian') if last_librarian?
240
+ if last_librarian?
241
+ errors[:base] << I18n.t('user.last_librarian')
242
+ end
241
243
  end
242
244
 
243
245
  # 最後の管理者を削除しようとした
@@ -256,6 +258,7 @@ module EnjuSeed
256
258
  end
257
259
  end
258
260
 
261
+
259
262
  # == Schema Information
260
263
  #
261
264
  # Table name: users
@@ -300,3 +303,4 @@ end
300
303
  # save_search_history :boolean
301
304
  # answer_feed_token :string(255)
302
305
  #
306
+
@@ -3,7 +3,8 @@ module MasterModel
3
3
 
4
4
  included do
5
5
  acts_as_list
6
- validates :name, presence: true, uniqueness: { case_sensitive: false }
6
+ validates_uniqueness_of :name, case_sensitive: false
7
+ validates :name, presence: true
7
8
  validate :name do
8
9
  valid_name?
9
10
  end
@@ -14,11 +15,10 @@ module MasterModel
14
15
 
15
16
  # 表示名を設定します。
16
17
  def set_display_name
17
- self.display_name = "#{I18n.locale}: #{name}" if display_name.blank?
18
+ self.display_name = name if display_name.blank?
18
19
  end
19
20
 
20
21
  private
21
-
22
22
  def valid_name?
23
23
  unless name =~ /\A[a-z][0-9a-z_]*[0-9a-z]\z/
24
24
  errors.add(:name, I18n.t('page.only_lowercase_letters_and_numbers_are_allowed'))
@@ -1,20 +1,19 @@
1
1
  class Profile < ActiveRecord::Base
2
- enju_search_log_profile_model if defined?(EnjuSearchLog)
3
-
4
2
  scope :administrators, -> { joins(user: :role).where('roles.name = ?', 'Administrator') }
5
3
  scope :librarians, -> { joins(user: :role).where('roles.name = ? OR roles.name = ?', 'Administrator', 'Librarian') }
6
- has_one :user
7
- belongs_to :library, validate: true
4
+ belongs_to :user, dependent: :destroy, optional: true
5
+ belongs_to :library
8
6
  belongs_to :user_group
9
- belongs_to :required_role, class_name: 'Role', foreign_key: 'required_role_id' # , validate: true
7
+ belongs_to :required_role, class_name: 'Role', foreign_key: 'required_role_id' #, validate: true
10
8
  has_many :identities
11
9
  has_many :agents
12
10
  accepts_nested_attributes_for :identities, allow_destroy: true, reject_if: :all_blank
13
11
 
14
12
  validates_associated :user_group, :library
15
- validates_associated :user
16
- validates :user_group, :library, :locale, presence: true # , :user_number
13
+ validates :user, uniqueness: true, associated: true, allow_blank: true
14
+ validates_presence_of :user_group, :library, :locale #, :user_number
17
15
  validates :user_number, uniqueness: true, format: { with: /\A[0-9A-Za-z_]+\z/ }, allow_blank: true
16
+ validates :user_id, uniqueness: true, allow_blank: true
18
17
  validates :birth_date, format: { with: /\A\d{4}-\d{1,2}-\d{1,2}\z/ }, allow_blank: true
19
18
 
20
19
  strip_attributes only: :user_number
@@ -78,20 +77,22 @@ end
78
77
  #
79
78
  # Table name: profiles
80
79
  #
81
- # id :uuid not null, primary key
82
- # user_group_id :uuid
83
- # library_id :uuid
80
+ # id :integer not null, primary key
81
+ # user_id :integer
82
+ # user_group_id :integer
83
+ # library_id :integer
84
84
  # locale :string
85
85
  # user_number :string
86
86
  # full_name :text
87
87
  # note :text
88
88
  # keyword_list :text
89
89
  # required_role_id :integer
90
- # created_at :datetime not null
91
- # updated_at :datetime not null
90
+ # created_at :datetime
91
+ # updated_at :datetime
92
92
  # checkout_icalendar_token :string
93
93
  # save_checkout_history :boolean default(FALSE), not null
94
94
  # expired_at :datetime
95
95
  # full_name_transcription :text
96
96
  # date_of_birth :datetime
97
+ # full_name_translations :jsonb not null
97
98
  #
@@ -13,7 +13,6 @@ class Role < ActiveRecord::Base
13
13
  end
14
14
 
15
15
  private
16
-
17
16
  def valid_name?
18
17
  true
19
18
  end
@@ -25,10 +24,11 @@ end
25
24
  #
26
25
  # id :integer not null, primary key
27
26
  # name :string not null
28
- # display_name_translations :jsonb
27
+ # display_name :string
29
28
  # note :text
30
- # created_at :datetime not null
31
- # updated_at :datetime not null
29
+ # created_at :datetime
30
+ # updated_at :datetime
32
31
  # score :integer default(0), not null
33
32
  # position :integer
33
+ # display_name_translations :jsonb not null
34
34
  #