bpluser 0.1.18 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +33 -0
  3. data/Rakefile +34 -3
  4. data/app/assets/config/bpluser_manifest.js +1 -0
  5. data/app/assets/javascripts/bpluser/folder_tools.js +26 -0
  6. data/app/controllers/bookmarks_controller.rb +50 -0
  7. data/app/controllers/concerns/bpluser/folders_verify_user.rb +20 -0
  8. data/app/controllers/concerns/bpluser/omniauth_callbacks.rb +27 -0
  9. data/app/controllers/concerns/bpluser/registrations.rb +35 -0
  10. data/app/controllers/concerns/bpluser/saved_searches.rb +62 -0
  11. data/app/controllers/folder_items_actions_controller.rb +77 -0
  12. data/app/controllers/folder_items_controller.rb +97 -0
  13. data/app/controllers/folders_controller.rb +100 -0
  14. data/app/controllers/saved_searches_controller.rb +5 -0
  15. data/app/controllers/users/omniauth_callbacks_controller.rb +7 -0
  16. data/app/controllers/users/registrations_controller.rb +7 -0
  17. data/app/controllers/users/sessions_controller.rb +6 -0
  18. data/app/controllers/users_controller.rb +25 -0
  19. data/app/helpers/bpluser/folders_helper_behavior.rb +11 -0
  20. data/app/helpers/folders_helper.rb +5 -0
  21. data/app/models/bpluser/folder.rb +21 -10
  22. data/app/models/bpluser/folder_item.rb +5 -7
  23. data/app/models/concerns/bpluser/users.rb +71 -0
  24. data/app/models/concerns/bpluser/validatable.rb +34 -0
  25. data/app/views/bookmarks/index.html.erb +58 -0
  26. data/app/views/bookmarks/update.js.erb +1 -0
  27. data/app/views/bpluser/folders/_folder.html.erb +36 -0
  28. data/app/views/catalog/_constraints.html.erb +14 -0
  29. data/app/views/catalog/_folder_item_control.html.erb +52 -0
  30. data/app/views/catalog/_save_search.html.erb +8 -0
  31. data/app/views/devise/confirmations/new.html.erb +14 -0
  32. data/app/views/devise/mailer/reset_password_instructions.html.erb +13 -0
  33. data/app/views/devise/passwords/edit.html.erb +32 -0
  34. data/app/views/devise/passwords/new.html.erb +30 -0
  35. data/app/views/devise/registrations/edit.html.erb +82 -0
  36. data/app/views/devise/registrations/new.html.erb +45 -0
  37. data/app/views/devise/sessions/new.html.erb +72 -0
  38. data/app/views/devise/shared/_links.erb +29 -0
  39. data/app/views/folder_items/create.js.erb +1 -0
  40. data/app/views/folder_items/destroy.js.erb +1 -0
  41. data/app/views/folder_items/item_actions.js.erb +2 -0
  42. data/app/views/folder_items/update.js.erb +1 -0
  43. data/app/views/folders/_in_folder.html.erb +3 -0
  44. data/app/views/folders/_new_edit_form_fields.html.erb +36 -0
  45. data/app/views/folders/edit.html.erb +25 -0
  46. data/app/views/folders/index.html.erb +67 -0
  47. data/app/views/folders/new.html.erb +26 -0
  48. data/app/views/folders/public_list.html.erb +41 -0
  49. data/app/views/folders/show.html.erb +82 -0
  50. data/app/views/saved_searches/index.html.erb +55 -0
  51. data/app/views/search_history/index.html.erb +57 -0
  52. data/app/views/shared/_folder_item_actions.html.erb +54 -0
  53. data/app/views/shared/_folder_tools.html.erb +4 -0
  54. data/app/views/shared/_tools.html.erb +16 -0
  55. data/app/views/shared/_user_util_links.html.erb +42 -0
  56. data/app/views/users/show.html.erb +33 -0
  57. data/config/locales/bpluser.en.yml +129 -0
  58. data/config/routes.rb +23 -2
  59. data/lib/bpluser/controller.rb +61 -0
  60. data/lib/bpluser/devise_guests_override.rb +21 -0
  61. data/lib/bpluser/engine.rb +27 -1
  62. data/lib/bpluser/version.rb +3 -1
  63. data/lib/bpluser.rb +21 -15
  64. data/lib/generators/bpluser/controller_generator.rb +29 -0
  65. data/lib/generators/bpluser/devise_generator.rb +40 -0
  66. data/lib/generators/bpluser/install_generator.rb +62 -0
  67. data/lib/generators/bpluser/templates/config/initializers/{devise.rb → devise.rb.bak} +0 -0
  68. data/lib/generators/bpluser/templates/config/locales/devise.en.yml +53 -0
  69. data/lib/generators/bpluser/templates/config/omniauth-polaris.yml +10 -15
  70. data/lib/generators/bpluser/templates/models/user.rb +3 -4
  71. data/lib/generators/bpluser/user_generator.rb +23 -0
  72. data/lib/tasks/bpluser_tasks.rake +27 -0
  73. metadata +131 -163
  74. data/app/controllers/bpluser/api_controller.rb +0 -8
  75. data/app/controllers/bpluser/users/omniauth_callbacks_controller.rb +0 -48
  76. data/app/controllers/bpluser/users/registrations_controller.rb +0 -35
  77. data/app/controllers/bpluser/users/sessions_controller.rb +0 -23
  78. data/app/models/bpluser/ability.rb +0 -22
  79. data/app/models/bpluser/application_record.rb +0 -5
  80. data/app/models/bpluser/concerns/users.rb +0 -190
  81. data/app/models/bpluser/concerns/validatable.rb +0 -47
  82. data/app/models/bpluser/user.rb~ +0 -213
  83. data/app/models/bpluser/user_institution.rb +0 -6
  84. data/app/models/bpluser/validatable.rb~ +0 -65
  85. data/lib/bpluser/routes.rb +0 -37
  86. data/lib/generators/bpluser/bpluser_generator.rb +0 -183
  87. data/lib/generators/bpluser/templates/config/hydra-ldap.yml +0 -33
  88. data/lib/generators/bpluser/templates/config/omniauth-facebook.yml +0 -14
  89. data/lib/generators/bpluser/templates/controllers/users/omniauth_callbacks_controller.rb +0 -3
  90. data/lib/generators/bpluser/templates/controllers/users/registrations_controller.rb +0 -3
  91. data/lib/generators/bpluser/templates/controllers/users/sessions_controller.rb +0 -3
  92. data/lib/generators/bpluser/templates/migrations/add_fields_to_user.rb +0 -22
  93. data/lib/generators/bpluser/templates/migrations/add_folder_items_to_folder.rb +0 -18
  94. data/lib/generators/bpluser/templates/migrations/add_folders_to_user.rb +0 -14
  95. data/lib/generators/bpluser/templates/migrations/create_institutions_for_users.rb +0 -16
  96. data/lib/generators/bpluser/templates/models/ability.rb +0 -4
  97. data/lib/generators/bpluser/templates/views/devise/registrations/edit.html.erb +0 -0
  98. data/lib/generators/bpluser/templates/views/devise/registrations/new.html.erb +0 -24
  99. data/lib/generators/bpluser/templates/views/devise/sessions/new.html.erb +0 -17
@@ -1,183 +0,0 @@
1
- require 'rails/generators'
2
- require 'rails/generators/migration'
3
-
4
-
5
- class BpluserGenerator < Rails::Generators::Base
6
- include Rails::Generators::Migration
7
-
8
- source_root File.expand_path('../templates', __FILE__)
9
-
10
- argument :model_name, :type => :string , :default => "user"
11
- class_option :devise , :type => :boolean, :default => false, :aliases => "-d", :desc => "Use Devise as authentication logic (this is default)."
12
- class_option :role_management , :type => :boolean, :default => true, :aliases => "-r", :desc => "Use Hydra Role Management as authentication logic (this is default)."
13
- class_option :institution_management , :type => :boolean, :default => true, :aliases => "-i", :desc => "Use BPL Institution Management as authentication logic (this is default)."
14
-
15
- desc """
16
- This generator makes the following changes to your application:
17
- 1. List here
18
-
19
- Thank you for Installing BPLUser.
20
- """
21
-
22
- # Implement the required interface for Rails::Generators::Migration.
23
- # taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
24
- def self.next_migration_number(path)
25
- unless @prev_migration_nr
26
- @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
27
- else
28
- @prev_migration_nr += 1
29
- end
30
- @prev_migration_nr.to_s
31
- end
32
-
33
- def check_arguments
34
- #if File.exists?("app/models/#{model_name}.rb") and options[:devise]
35
- #puts "Because you have selected \"#{model_name}\", which is an existing class, you will need to install devise manually and then run this generator without the Devise option. You can find additional information here: https://github.com/plataformatec/devise. \n Please be sure to include a to_s method in #{model_name} that returns the users name or email, as this will be used by Blacklight to provide a link to user specific information."
36
- #exit
37
- #end
38
- end
39
-
40
- # Install Devise?
41
- def generate_devise_assets
42
- if options[:devise]
43
- if Rails::VERSION::MAJOR == 4
44
- gem "devise", github:'plataformatec/devise', branch: 'rails4'
45
- else
46
- gem "devise"
47
- end
48
-
49
- gem "devise-guests", "~> 0.3"
50
-
51
- Bundler.with_clean_env do
52
- run "bundle install"
53
- end
54
-
55
- generate "devise:install"
56
- generate "devise", model_name.classify
57
- generate "devise_guests", model_name.classify
58
- generate "devise:views"
59
-
60
- end
61
- end
62
-
63
-
64
- #Add gem dependenceies
65
- def add_the_gems
66
- gem 'omniauth'
67
- gem 'omniauth-ldap'
68
- gem 'omniauth-facebook'
69
- gem 'omniauth-polaris', :git => 'https://github.com/boston-library/omniauth-polaris.git'
70
- gem 'omniauth-password'
71
- gem 'bootstrap_forms'
72
- Bundler.with_clean_env do
73
- run "bundle install"
74
- end
75
- end
76
-
77
-
78
- # Copy all files in templates/config directory to host config
79
- def create_configuration_files
80
- copy_file "config/initializers/devise.rb", "config/initializers/devise.rb"
81
- copy_file "controllers/users/omniauth_callbacks_controller.rb", "app/controllers/users/omniauth_callbacks_controller.rb"
82
- copy_file "controllers/users/registrations_controller.rb", "app/controllers/users/registrations_controller.rb"
83
- copy_file "controllers/users/sessions_controller.rb", "app/controllers/users/sessions_controller.rb"
84
- copy_file "models/user.rb", "app/models/user.rb"
85
- copy_file "models/ability.rb", "app/models/ability.rb"
86
- copy_file "views/devise/registrations/new.html.erb", "app/views/devise/registrations/new.html.erb"
87
- copy_file "views/devise/registrations/edit.html.erb", "app/views/devise/registrations/edit.html.erb"
88
- copy_file "views/devise/sessions/new.html.erb", "app/views/devise/sessions/new.html.erb"
89
-
90
- if !File.exists?("config/hydra-ldap.yml")
91
- copy_file "config/hydra-ldap.yml", "config/hydra-ldap.yml"
92
- end
93
-
94
- if !File.exists?("config/omniauth-polaris.yml")
95
- copy_file "config/omniauth-polaris.yml", "config/omniauth-polaris.yml"
96
- end
97
-
98
- if !File.exists?("config/omniauth-facebook.yml")
99
- copy_file "config/omniauth-facebook.yml", "config/omniauth-facebook.yml"
100
- end
101
-
102
- end
103
-
104
- # Setup the database migrations
105
- def copy_migrations
106
- # Can't get this any more DRY, because we need this order.
107
- better_migration_template "add_fields_to_user.rb"
108
- better_migration_template "add_folders_to_user.rb"
109
- better_migration_template "add_folder_items_to_folder.rb"
110
- #better_migration_template "create_institutions_for_users.rb"
111
- end
112
-
113
-
114
- # Install Hydra Role Management?
115
- def generate_hydra_role_management
116
- if options[:role_management]
117
- if Rails::VERSION::MAJOR == 4
118
- #gem "devise", github:'plataformatec/devise', branch: 'rails4'
119
- else
120
- gem "hydra-role-management"
121
- end
122
-
123
- Bundler.with_clean_env do
124
- run "bundle install"
125
- end
126
-
127
- generate "roles"
128
-
129
- Bundler.with_clean_env do
130
- run "bundle install"
131
- end
132
- end
133
- end
134
-
135
- # Install BPL Institution management?
136
- def generate_bpl_institution_management
137
- if options[:institution_management]
138
- if Rails::VERSION::MAJOR == 4
139
- #gem "devise", github:'plataformatec/devise', branch: 'rails4'
140
- else
141
- gem 'bpl-institution-management', :git => 'https://github.com/boston-library/bpl-institution-management.git'
142
- end
143
-
144
- Bundler.with_clean_env do
145
- run "bundle install"
146
- end
147
-
148
- generate "institutions"
149
-
150
- Bundler.with_clean_env do
151
- run "bundle install"
152
- end
153
- end
154
- end
155
-
156
-
157
- def inject_bpluser_routes
158
- # These will end up in routes.rb file in reverse order
159
- # we add em, since each is added at the top of file.
160
- # we want "root" to be FIRST for optimal url generation.
161
- #route('devise_for :users, :controllers => { :omniauth_callbacks => "bpluser/users/omniauth_callbacks" }')
162
- gsub_file("config/routes.rb", "devise_for :users", "")
163
- route('devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks", :registrations => "users/registrations", :sessions => "users/sessions"}')
164
- route('mount Bpluser::Engine => "/bpluser"')
165
- route('Bpluser.add_routes(self)')
166
- end
167
-
168
-
169
- private
170
-
171
- def better_migration_template (file)
172
- begin
173
- migration_template "migrations/#{file}", "db/migrate/#{file}"
174
- sleep 1 # ensure scripts have different time stamps
175
- rescue
176
- puts " \e[1m\e[34mMigrations\e[0m " + $!.message
177
- end
178
- end
179
-
180
-
181
-
182
-
183
- end
@@ -1,33 +0,0 @@
1
- test:
2
- host: #######.bpl.org
3
- port: 389
4
- #group_base: nil
5
- base: dc=bpl,dc=org
6
- uid: #######
7
- username: #####
8
- password: #####
9
- admin_base: dc=bpl,dc=org
10
-
11
- development:
12
- host: #######.bpl.org
13
- port: 389
14
- #group_base: nil
15
- base: dc=bpl,dc=org
16
- uid: #######
17
- username: #####
18
- password: #####
19
- group_member: uniquemember # attribute name in a group to identify a member
20
- group_owner: owner # attribute name to identify group owner
21
- admin_base: dc=bpl,dc=org
22
-
23
- production:
24
- host: #######.bpl.org
25
- port: 389
26
- #group_base: nil
27
- base: dc=bpl,dc=org
28
- uid: #######
29
- username: #####
30
- password: #####
31
- group_member: uniquemember # attribute name in a group to identify a member
32
- group_owner: owner # attribute name to identify group owner
33
- admin_base: dc=bpl,dc=org
@@ -1,14 +0,0 @@
1
- test:
2
- facebook_key: --------
3
- facebook_secret: --------
4
- facebook_scope: email
5
-
6
- development:
7
- facebook_key: --------
8
- facebook_secret: --------
9
- facebook_scope: email
10
-
11
- production:
12
- facebook_key: --------
13
- facebook_secret: --------
14
- facebook_scope: email
@@ -1,3 +0,0 @@
1
- class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
2
- include Bpluser::Users::OmniauthCallbacksController
3
- end
@@ -1,3 +0,0 @@
1
- class Users::RegistrationsController < Devise::RegistrationsController
2
- include Bpluser::Users::RegistrationsController
3
- end
@@ -1,3 +0,0 @@
1
- class Users::SessionsController < Devise::SessionsController
2
- include Bpluser::Users::SessionsController
3
- end
@@ -1,22 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- class AddFieldsToUser < ActiveRecord::Migration
3
- def self.up
4
- add_column :users, :username, :string
5
- add_column :users, :provider, :string
6
- add_column :users, :display_name, :string
7
- add_column :users, :first_name, :string
8
- add_column :users, :last_name, :string
9
- add_column :users, :uid, :string
10
- add_index :users, [:uid, :provider]
11
- end
12
-
13
- def self.down
14
- remove_column :users, :username
15
- remove_column :users, :provider
16
- remove_column :users, :display_name
17
- remove_column :users, :first_name
18
- remove_column :users, :last_name
19
- remove_column :users, :uid
20
- remove_index :users, [:uid, :provider]
21
- end
22
- end
@@ -1,18 +0,0 @@
1
- class AddFolderItemsToFolder < ActiveRecord::Migration
2
- def self.up
3
- create_table :bpluser_folder_items do |t|
4
- t.integer :folder_id
5
- t.string :document_id
6
-
7
- t.timestamps
8
- end
9
-
10
- add_index :bpluser_folder_items, :folder_id
11
- add_index :bpluser_folder_items, :document_id
12
-
13
- end
14
-
15
- def self.down
16
- drop_table :bpluser_folder_items
17
- end
18
- end
@@ -1,14 +0,0 @@
1
- class AddFoldersToUser < ActiveRecord::Migration
2
- def self.up
3
- create_table :bpluser_folders do |t|
4
- t.string :title
5
- t.integer :user_id, :null=>false
6
- t.string :description
7
- t.timestamps
8
- end
9
- end
10
-
11
- def self.down
12
- drop_table :bpluser_folders
13
- end
14
- end
@@ -1,16 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- class CreateInstitutionsForUsers < ActiveRecord::Migration
3
- def self.up
4
- create_table :user_institutions do |t|
5
- t.string :pid
6
- t.references :user
7
-
8
- t.timestamps
9
- end
10
- add_index :user_institutions, :user_id
11
- end
12
-
13
- def self.down
14
- drop_table :user_institutions
15
- end
16
- end
@@ -1,4 +0,0 @@
1
- class Ability
2
- include CanCan::Ability
3
- include Bpluser::Ability
4
- end
@@ -1,24 +0,0 @@
1
- <h2>Sign up</h2>
2
-
3
- <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
4
- <%= devise_error_messages! %>
5
-
6
- <div><%= f.label :email %><br />
7
- <%= f.text_field :email %></div>
8
-
9
- <div><%= f.label "First Name" %><br />
10
- <%= f.text_field :first_name %></div>
11
-
12
- <div><%= f.label "Last Name" %><br />
13
- <%= f.text_field :last_name %></div>
14
-
15
- <div><%= f.label :password %><br />
16
- <%= f.password_field :password %></div>
17
-
18
- <div><%= f.label :password_confirmation %><br />
19
- <%= f.password_field :password_confirmation %></div>
20
-
21
- <div><%= f.submit "Sign up" %></div>
22
- <% end %>
23
-
24
- <%= render "devise/shared/links" %>
@@ -1,17 +0,0 @@
1
- <h2>Sign in</h2>
2
-
3
- <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
4
- <div><%= f.label "Email: " %><br />
5
- <%= f.text_field :uid %></div>
6
-
7
- <div><%= f.label :password %><br />
8
- <%= f.password_field :password %></div>
9
-
10
- <% if devise_mapping.rememberable? -%>
11
- <div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
12
- <% end -%>
13
-
14
- <div><%= f.submit "Sign in" %></div>
15
- <% end %>
16
-
17
- <%= render "devise/shared/links" %>