bpluser 0.1.18 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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" %>