sufia 2.0.1 → 3.0.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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +111 -0
- data/Gemfile +4 -4
- data/History.md +126 -0
- data/README.md +23 -5
- data/SUFIA_VERSION +1 -1
- data/app/assets/javascripts/sufia/multiForm.js +10 -2
- data/app/assets/stylesheets/{application-bootstrap.css → application-bootstrap.css.erb} +7 -7
- data/app/assets/stylesheets/{bootstrap.min.css → bootstrap.min.css.erb} +1 -1
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +9 -3
- data/app/controllers/single_use_link_controller.rb +1 -1
- data/app/helpers/sufia_helper.rb +7 -1
- data/app/models/contact_form.rb +0 -14
- data/app/views/_user_util_links.html.erb +0 -15
- data/app/views/batch_edits/_check_all.html.erb +2 -2
- data/app/views/batch_edits/_delete_selected.html.erb +1 -1
- data/app/views/layouts/{_head-tag-content.html.erb → _head_tag_content.html.erb} +0 -0
- data/app/views/layouts/homepage.html.erb +2 -2
- data/app/views/layouts/sufia-one-column.html.erb +1 -1
- data/app/views/layouts/sufia-two-column.html.erb +1 -1
- data/app/views/users/edit.html.erb +1 -1
- data/app/views/users/show.html.erb +1 -17
- data/config/routes.rb +31 -33
- data/lib/generators/sufia/sufia_generator.rb +5 -3
- data/lib/generators/sufia/templates/catalog_controller.rb +5 -1
- data/lib/generators/sufia/templates/config/redis_config.rb +1 -14
- data/lib/sufia/batch_edits_controller_behavior.rb +1 -1
- data/lib/sufia/controller.rb +1 -1
- data/lib/sufia/dashboard_controller_behavior.rb +8 -2
- data/lib/sufia/files_controller_behavior.rb +1 -2
- data/lib/sufia/version.rb +1 -1
- data/spec/active_fedora/unsaved_digital_object_spec.rb +1 -15
- data/spec/controllers/authorities_controller_spec.rb +1 -15
- data/spec/controllers/batch_controller_spec.rb +10 -16
- data/spec/controllers/batch_edits_controller_spec.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +1 -15
- data/spec/controllers/dashboard_controller_spec.rb +23 -17
- data/spec/controllers/downloads_controller_spec.rb +1 -15
- data/spec/controllers/generic_files_controller_spec.rb +18 -32
- data/spec/controllers/mailbox_controller_spec.rb +1 -15
- data/spec/controllers/single_use_link_controller_spec.rb +6 -13
- data/spec/controllers/users_controller_spec.rb +27 -41
- data/spec/factories/users.rb +5 -14
- data/spec/features/browse_dashboard_files.rb +21 -0
- data/spec/features/browse_files.rb +31 -0
- data/spec/features/contact_form.rb +99 -0
- data/spec/features/display_dashboard.rb +46 -0
- data/spec/features/ingest_upload_files.rb +24 -0
- data/spec/features/users_spec.rb +25 -0
- data/spec/helpers/generic_file_helper_spec.rb +10 -3
- data/spec/helpers/sufia_helper_spec.rb +1 -1
- data/spec/lib/sufia/id_service_spec.rb +1 -15
- data/spec/models/audit_job_spec.rb +1 -15
- data/spec/models/batch_spec.rb +1 -15
- data/spec/models/batch_update_job_spec.rb +3 -16
- data/spec/models/characterize_job_spec.rb +4 -4
- data/spec/models/checksum_audit_log_spec.rb +1 -15
- data/spec/models/event_jobs_spec.rb +1 -15
- data/spec/models/file_content_datastream_spec.rb +5 -19
- data/spec/models/fits_datastream_spec.rb +1 -15
- data/spec/models/generic_file/web_form_spec.rb +34 -0
- data/spec/models/generic_file_spec.rb +11 -39
- data/spec/models/local_authority_spec.rb +3 -15
- data/spec/models/properties_datastream_spec.rb +1 -1
- data/spec/models/single_use_link_spec.rb +1 -1
- data/spec/models/solr_document_spec.rb +1 -1
- data/spec/models/transcode_audio_job_spec.rb +1 -1
- data/spec/models/transcode_video_job_spec.rb +1 -1
- data/spec/models/trophy_spec.rb +1 -1
- data/spec/models/unzip_job_spec.rb +1 -15
- data/spec/models/user_spec.rb +1 -15
- data/spec/rake/sufia_fixtures_spec.rb +3 -17
- data/spec/routing/route_spec.rb +7 -21
- data/spec/spec_helper.rb +8 -20
- data/spec/support/features.rb +6 -0
- data/spec/support/features/session_helpers.rb +21 -0
- data/spec/support/lib/generators/test_app_generator.rb +4 -0
- data/spec/views/batch_edits/check_all_spec.rb +6 -4
- data/sufia-models/app/models/checksum_audit_log.rb +1 -15
- data/sufia-models/app/models/domain_term.rb +3 -15
- data/sufia-models/app/models/geo_names_resource.rb +1 -13
- data/sufia-models/app/models/local_authority.rb +12 -17
- data/sufia-models/app/models/local_authority_entry.rb +1 -15
- data/sufia-models/app/models/single_use_link.rb +2 -3
- data/sufia-models/app/models/trophy.rb +1 -1
- data/sufia-models/app/models/version_committer.rb +1 -15
- data/sufia-models/lib/sufia/models.rb +6 -2
- data/sufia-models/lib/sufia/models/engine.rb +1 -1
- data/sufia-models/lib/sufia/models/generic_file.rb +3 -0
- data/sufia-models/lib/sufia/models/generic_file/accessible_attributes.rb +87 -0
- data/sufia-models/lib/sufia/models/generic_file/permissions.rb +2 -1
- data/sufia-models/lib/sufia/models/generic_file/web_form.rb +4 -1
- data/sufia-models/lib/sufia/models/user.rb +9 -2
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- data/{lib → sufia-models/lib}/tasks/resque.rake +0 -0
- data/sufia-models/sufia-models.gemspec +13 -11
- data/sufia.gemspec +1 -3
- data/tasks/sufia-dev.rake +21 -10
- metadata +30 -84
- data/config/cucumber.yml +0 -8
- data/features/browse_dashboard_files.feature +0 -16
- data/features/browse_files.feature +0 -16
- data/features/contact_form.feature +0 -86
- data/features/display_dashboard.feature +0 -42
- data/features/ingest_upload_files.feature +0 -21
- data/features/step_definitions/edit_metadata_steps.rb +0 -89
- data/features/step_definitions/fixture_steps.rb +0 -35
- data/features/step_definitions/show_document_steps.rb +0 -103
- data/features/step_definitions/sufia.rb +0 -69
- data/features/step_definitions/user_steps.rb +0 -58
- data/features/step_definitions/web_steps.rb +0 -235
- data/features/support/cleanup.rb +0 -19
- data/features/support/env.rb +0 -90
- data/features/support/headless.rb +0 -26
- data/features/support/paths.rb +0 -101
- data/features/users.feature +0 -18
- data/spec/lib/sufia/role_mapper_spec.rb +0 -28
- data/spec/support/Gemfile +0 -24
- data/spec/views/single_user_link/download.html.erb_spec.rb +0 -5
- data/spec/views/single_user_link/generate_download.html.erb_spec.rb +0 -5
- data/spec/views/single_user_link/generate_show.html.erb_spec.rb +0 -5
- data/spec/views/single_user_link/show.html.erb_spec.rb +0 -5
- data/tasks/cucumber.rake +0 -72
|
@@ -73,7 +73,7 @@ class SingleUseLinkController < DownloadsController
|
|
|
73
73
|
def lookup_hash
|
|
74
74
|
id = params[:id]
|
|
75
75
|
# invalid hash send not found
|
|
76
|
-
link = SingleUseLink.
|
|
76
|
+
link = SingleUseLink.where(downloadKey:id).first || not_found
|
|
77
77
|
|
|
78
78
|
# expired hash send not found
|
|
79
79
|
now = DateTime.now
|
data/app/helpers/sufia_helper.rb
CHANGED
|
@@ -96,8 +96,14 @@ module SufiaHelper
|
|
|
96
96
|
if item.is_a? Array
|
|
97
97
|
render_array_facet_value(facet_solr_field, item, options)
|
|
98
98
|
end
|
|
99
|
-
|
|
99
|
+
if params[:controller] == "dashboard"
|
|
100
|
+
path = sufia.url_for(add_facet_params_and_redirect(facet_solr_field, item.value).merge(:only_path=>true))
|
|
100
101
|
(link_to_unless(options[:suppress_link], item.value, path, :class=>"facet_select") + " " + render_facet_count(item.hits)).html_safe
|
|
102
|
+
else
|
|
103
|
+
# This is for controllers that use this helper method that are defined outside Sufia
|
|
104
|
+
path = url_for(add_facet_params_and_redirect(facet_solr_field, item.value).merge(:only_path=>true))
|
|
105
|
+
(link_to_unless(options[:suppress_link], item.value, path, :class=>"facet_select") + " " + render_facet_count(item.hits)).html_safe
|
|
106
|
+
end
|
|
101
107
|
end
|
|
102
108
|
|
|
103
109
|
# link_back_to_catalog(:label=>'Back to Search')
|
data/app/models/contact_form.rb
CHANGED
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
# Copyright © 2012 The Pennsylvania State University
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
1
|
require 'mail_form'
|
|
16
2
|
|
|
17
3
|
class ContactForm < MailForm::Base
|
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
<%#
|
|
2
|
-
Copyright © 2012 The Pennsylvania State University
|
|
3
|
-
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
%>
|
|
16
1
|
<% if user_signed_in? %>
|
|
17
2
|
<%= render :partial => 'users/notify_link' %>
|
|
18
3
|
<a href="<%= sufia.profile_path(current_user) %>" class="btn btn-small " title="click for User Profile"><i class="icon-user"> </i><%= current_user.name %></a>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<%= check_box_tag 'check_all', 'yes', @all_checked, :disabled => ((@batch_size_on_other_page + @document_list.count) > @max_batch_size) %>
|
|
4
4
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="icon-cog" title="click for selection options"></span></a>
|
|
5
5
|
<ul class="dropdown-menu">
|
|
6
|
-
<%= render partial:
|
|
6
|
+
<%= render partial: "#{controller_name}/batch_edits_actions" %>
|
|
7
7
|
</ul>
|
|
8
8
|
</div>
|
|
9
|
-
<% end %>
|
|
9
|
+
<% end %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<%= form_tag(batch_edits_path, :method => :
|
|
1
|
+
<%= form_tag(batch_edits_path, :method => :delete, :class=> "batch-select-all hidden", "data-behavior" => 'batch-select-all') do -%>
|
|
2
2
|
<%= hidden_field_tag('update_type', 'delete_all') %>
|
|
3
3
|
<%= submit_tag("Delete Selected", :class=>'batch-all-button btn btn-primary submits-batches', :data => { :confirm => "Deleting a file from #{t('sufia.product_name')} is permanent. Click OK to delete this file from #{t('sufia.product_name')}, or Cancel to cancel this operation"}) %>
|
|
4
4
|
<% end %>
|
|
File without changes
|
|
@@ -17,7 +17,7 @@ limitations under the License.
|
|
|
17
17
|
<!DOCTYPE html>
|
|
18
18
|
<html>
|
|
19
19
|
<head>
|
|
20
|
-
<%= render :partial => "layouts/
|
|
20
|
+
<%= render :partial => "layouts/head_tag_content"%>
|
|
21
21
|
</head>
|
|
22
22
|
|
|
23
23
|
<body>
|
|
@@ -53,4 +53,4 @@ limitations under the License.
|
|
|
53
53
|
<%= render partial: '/footer' %>
|
|
54
54
|
<div id="ajax-modal" class="modal hide" tabindex="-1"></div>
|
|
55
55
|
</body>
|
|
56
|
-
</html>
|
|
56
|
+
</html>
|
|
@@ -21,7 +21,7 @@ $("a[rel=popover]").popover({ html: true });
|
|
|
21
21
|
|
|
22
22
|
<h1>Edit Profile</h1>
|
|
23
23
|
<div class="span45 well">
|
|
24
|
-
<%= form_for @user, :url => sufia.
|
|
24
|
+
<%= form_for @user, :url => sufia.profile_path(URI.escape(@user.to_s, '@.')), :html => {:multipart => true, :class => 'form-horizontal' } do |f| %>
|
|
25
25
|
<div class="control-group">
|
|
26
26
|
<%= f.label :avatar, '<i class="icon-camera-retro"></i> Change picture'.html_safe, :class => "control-label" %>
|
|
27
27
|
<div class="controls">
|
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
<%#
|
|
2
|
-
Copyright © 2012 The Pennsylvania State University
|
|
3
|
-
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
%>
|
|
16
|
-
|
|
17
1
|
<h1 class="span110">
|
|
18
2
|
<span class="span60">
|
|
19
3
|
<%= image_tag @user.avatar.url(:thumb), :width => 100 %>
|
|
@@ -24,7 +8,7 @@ limitations under the License.
|
|
|
24
8
|
<% if not signed_in? %>
|
|
25
9
|
<!-- sign in to access social functions -->
|
|
26
10
|
<% elsif current_user == @user %>
|
|
27
|
-
<a class="btn btn-primary" href="<%= sufia.edit_profile_path(
|
|
11
|
+
<a class="btn btn-primary" href="<%= sufia.edit_profile_path(@user) %>"><i class="icon-edit"></i> Edit Your Profile </a>
|
|
28
12
|
<% elsif current_user.following?(@user) %>
|
|
29
13
|
<a class="btn btn-primary" href="<%= sufia.unfollow_user_path(@user.to_s) %>"><i class="icon-eye-close"></i> Unfollow </a>
|
|
30
14
|
<% else %>
|
data/config/routes.rb
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
Sufia::Engine.routes.draw do
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
get 'single_use_link/generate_download/:id' => 'single_use_link#generate_download', :as => :generate_download_single_use_link
|
|
3
|
+
get 'single_use_link/generate_show/:id' => 'single_use_link#generate_show', :as => :generate_show_single_use_link
|
|
4
|
+
get 'single_use_link/show/:id' => 'single_use_link#show', :as => :show_single_use_link
|
|
5
|
+
get 'single_use_link/download/:id' => 'single_use_link#download', :as => :download_single_use_link
|
|
6
6
|
|
|
7
|
-
match 'batch_edits/clear' => 'batch_edits#clear', :as => :batch_edits_clear
|
|
7
|
+
match 'batch_edits/clear' => 'batch_edits#clear', :as => :batch_edits_clear, via: [:get, :post]
|
|
8
8
|
|
|
9
9
|
# Route path-less requests to the index view of catalog
|
|
10
10
|
root :to => "catalog#index"
|
|
11
11
|
|
|
12
12
|
# "Recently added files" route for catalog index view
|
|
13
|
-
|
|
13
|
+
get "catalog/recent" => "catalog#recent", :as => :catalog_recent
|
|
14
14
|
|
|
15
15
|
# "Notifications" route for catalog index view
|
|
16
|
-
|
|
16
|
+
get "users/notifications_number" => "users#notifications_number", :as => :user_notify
|
|
17
17
|
|
|
18
18
|
# Generic file routes
|
|
19
19
|
resources :generic_files, :path => :files, :except => :index do
|
|
@@ -27,21 +27,19 @@ Sufia::Engine.routes.draw do
|
|
|
27
27
|
resources :downloads, :only => "show"
|
|
28
28
|
|
|
29
29
|
# Messages
|
|
30
|
-
|
|
31
|
-
match 'notifications/delete_all' => 'mailbox#delete_all', :
|
|
32
|
-
match 'notifications/:uid/delete' => 'mailbox#delete', :
|
|
30
|
+
get 'notifications' => 'mailbox#index', :as => :mailbox
|
|
31
|
+
match 'notifications/delete_all' => 'mailbox#delete_all', as: :mailbox_delete_all, via: [:get, :post]
|
|
32
|
+
match 'notifications/:uid/delete' => 'mailbox#delete', as: :mailbox_delete, via: [:get, :post]
|
|
33
33
|
|
|
34
34
|
# User profile & follows
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
match 'users/:uid/follow' => 'users#follow', :as => :follow_user
|
|
44
|
-
match 'users/:uid/unfollow' => 'users#unfollow', :as => :unfollow_user
|
|
35
|
+
resources :users, only: [:index, :show, :edit, :update], as: :profiles
|
|
36
|
+
# get 'users' => 'users#index', :as => :profiles
|
|
37
|
+
# get 'users/:uid' => 'users#show', :as => :profile
|
|
38
|
+
# get 'users/:uid/edit' => 'users#edit', :as => :edit_profile
|
|
39
|
+
# put 'users/:uid/update' => 'users#update', :as => :update_profile
|
|
40
|
+
post "users/:id/trophy" => "users#toggle_trophy", :as => :update_trophy_user
|
|
41
|
+
match 'users/:id/follow' => 'users#follow', :as => :follow_user, via: [:get, :post]
|
|
42
|
+
match 'users/:id/unfollow' => 'users#unfollow', :as => :unfollow_user, via: [:get, :post]
|
|
45
43
|
|
|
46
44
|
# Dashboard routes (based partly on catalog routes)
|
|
47
45
|
resources 'dashboard', :only=>:index do
|
|
@@ -54,23 +52,23 @@ Sufia::Engine.routes.draw do
|
|
|
54
52
|
|
|
55
53
|
|
|
56
54
|
# advanced routes for advanced search
|
|
57
|
-
|
|
55
|
+
get 'search' => 'advanced#index', :as => :advanced
|
|
58
56
|
|
|
59
57
|
# Authority vocabulary queries route
|
|
60
|
-
|
|
58
|
+
get 'authorities/:model/:term' => 'authorities#query'
|
|
61
59
|
|
|
62
60
|
# LDAP-related routes for group and user lookups
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
get 'directory/user/:uid' => 'directory#user'
|
|
62
|
+
get 'directory/user/:uid/:attribute' => 'directory#user_attribute'
|
|
63
|
+
get 'directory/group/:cn' => 'directory#group', :constraints => { :cn => /.*/ }
|
|
66
64
|
|
|
67
65
|
# Batch edit routes
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
get 'batches/:id/edit' => 'batch#edit', :as => :batch_edit
|
|
67
|
+
post 'batches/:id/' => 'batch#update', :as => :batch_generic_files
|
|
70
68
|
|
|
71
69
|
# Contact form routes
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
post 'contact' => 'contact_form#create', :as => :contact_form_index
|
|
71
|
+
get 'contact' => 'contact_form#new'
|
|
74
72
|
|
|
75
73
|
# Resque monitoring routes. Don't bother with this route unless Sufia::ResqueAdmin
|
|
76
74
|
# has been defined in the initalizers.
|
|
@@ -83,15 +81,15 @@ Sufia::Engine.routes.draw do
|
|
|
83
81
|
end
|
|
84
82
|
|
|
85
83
|
# Static page routes (workaround)
|
|
86
|
-
|
|
84
|
+
get ':action' => 'static#:action', :constraints => { :action => /about|help|terms|zotero|mendeley|agreement|subject_libraries|versions/ }, :as => :static
|
|
87
85
|
|
|
88
86
|
#Single use link errors
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
get 'single_use_link/not_found' => 'errors#single_use_error'
|
|
88
|
+
get 'single_use_link/expired' => 'errors#single_use_error'
|
|
91
89
|
|
|
92
90
|
# Catch-all (for routing errors)
|
|
93
91
|
unless Rails.env.development? || Rails.env.test?
|
|
94
|
-
match '*error' => 'errors#routing'
|
|
92
|
+
match '*error' => 'errors#routing', via: [:get, :post]
|
|
95
93
|
end
|
|
96
94
|
|
|
97
95
|
end
|
|
@@ -62,7 +62,7 @@ add_groups_to_users.rb create_local_authorities.rb create_trophies.rb}.each do
|
|
|
62
62
|
" \n# Adds Sufia behaviors into the application controller \n" +
|
|
63
63
|
" include Sufia::Controller\n"
|
|
64
64
|
end
|
|
65
|
-
gsub_file file_path, "layout 'blacklight'", "layout
|
|
65
|
+
gsub_file file_path, "layout 'blacklight'", "layout :search_layout"
|
|
66
66
|
else
|
|
67
67
|
puts " \e[31mFailure\e[0m Could not find #{file_path}. To add Sufia behaviors to your Controllers, you must include the Sufia::Controller module in the Controller class definition."
|
|
68
68
|
end
|
|
@@ -86,9 +86,11 @@ add_groups_to_users.rb create_local_authorities.rb create_trophies.rb}.each do
|
|
|
86
86
|
sentinel = /HydraHead.add_routes\(self\)/
|
|
87
87
|
inject_into_file 'config/routes.rb', "\n #{routing_code}\n", { :after => sentinel, :verbose => false }
|
|
88
88
|
|
|
89
|
-
routing_code = "
|
|
89
|
+
routing_code = "\n # This must be the very last route in the file because it has a catch all route for 404 errors.
|
|
90
|
+
# This behavior seems to show up only in production mode.
|
|
91
|
+
mount Sufia::Engine => '/'\n"
|
|
90
92
|
sentinel = /devise_for :users/
|
|
91
|
-
inject_into_file 'config/routes.rb',
|
|
93
|
+
inject_into_file 'config/routes.rb', routing_code, { :after => sentinel, :verbose => false }
|
|
92
94
|
|
|
93
95
|
end
|
|
94
96
|
|
|
@@ -56,7 +56,7 @@ class CatalogController < ApplicationController
|
|
|
56
56
|
|
|
57
57
|
def recent_me
|
|
58
58
|
if user_signed_in?
|
|
59
|
-
(_, @recent_user_documents) = get_search_results(:q =>
|
|
59
|
+
(_, @recent_user_documents) = get_search_results(:q =>filter_mine,
|
|
60
60
|
:sort=>sort_field, :rows=>4)
|
|
61
61
|
end
|
|
62
62
|
end
|
|
@@ -377,6 +377,10 @@ class CatalogController < ApplicationController
|
|
|
377
377
|
"{!lucene q.op=AND df=#{depositor}}-#{current_user.user_key}"
|
|
378
378
|
end
|
|
379
379
|
|
|
380
|
+
def filter_mine
|
|
381
|
+
"{!lucene q.op=AND df=#{depositor}}#{current_user.user_key}"
|
|
382
|
+
end
|
|
383
|
+
|
|
380
384
|
def sort_field
|
|
381
385
|
"#{Solrizer.solr_name('system_create', :sortable)} desc"
|
|
382
386
|
end
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
# Copyright © 2012 The Pennsylvania State University
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
1
|
if defined?(PhusionPassenger)
|
|
16
2
|
PhusionPassenger.on_event(:starting_worker_process) do |forked|
|
|
17
3
|
# We're in smart spawning mode.
|
|
@@ -23,6 +9,7 @@ if defined?(PhusionPassenger)
|
|
|
23
9
|
# The important two lines
|
|
24
10
|
$redis.client.disconnect if $redis
|
|
25
11
|
$redis = Redis.new(host: config[:host], port: config[:port], thread_safe: true) rescue nil
|
|
12
|
+
Resque.redis = $redis
|
|
26
13
|
Resque.redis.client.reconnect if Resque.redis
|
|
27
14
|
end
|
|
28
15
|
end
|
|
@@ -34,7 +34,7 @@ module Sufia
|
|
|
34
34
|
|
|
35
35
|
# map the permissions to parameter like input so that the assign will work
|
|
36
36
|
# todo sort the access level some how...
|
|
37
|
-
perm_param ={'user'=>{},'group'=>{"public"=>"
|
|
37
|
+
perm_param ={'user'=>{},'group'=>{"public"=>"read"}}
|
|
38
38
|
permissions.each{ |perm| perm_param[perm[:type]][perm[:name]] = perm[:access]}
|
|
39
39
|
@show_file.permissions = HashWithIndifferentAccess.new(perm_param)
|
|
40
40
|
end
|
data/lib/sufia/controller.rb
CHANGED
|
@@ -52,7 +52,7 @@ module Sufia::Controller
|
|
|
52
52
|
@batches=[]
|
|
53
53
|
return if action_name == "index" && controller_name == "mailbox"
|
|
54
54
|
if user_signed_in?
|
|
55
|
-
@notify_number= current_user.mailbox.inbox(:unread => true).count
|
|
55
|
+
@notify_number= current_user.mailbox.inbox(:unread => true).count
|
|
56
56
|
@batches=current_user.mailbox.inbox.map {|msg| msg.last_message.body[/<a class="batchid ui-helper-hidden">(.*)<\/a>The file(.*)/,1]}.select{|val| !val.blank?}
|
|
57
57
|
end
|
|
58
58
|
end
|
|
@@ -44,8 +44,14 @@ module Sufia
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def index
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
if params[:controller] == "dashboard"
|
|
48
|
+
extra_head_content << view_context.auto_discovery_link_tag(:rss, sufia.url_for(params.merge(:format => 'rss')), :title => "RSS for results")
|
|
49
|
+
extra_head_content << view_context.auto_discovery_link_tag(:atom, sufia.url_for(params.merge(:format => 'atom')), :title => "Atom for results")
|
|
50
|
+
else
|
|
51
|
+
# This is for controllers that use this behavior that are defined outside Sufia
|
|
52
|
+
extra_head_content << view_context.auto_discovery_link_tag(:rss, url_for(params.merge(:format => 'rss')), :title => "RSS for results")
|
|
53
|
+
extra_head_content << view_context.auto_discovery_link_tag(:atom, url_for(params.merge(:format => 'atom')), :title => "Atom for results")
|
|
54
|
+
end
|
|
49
55
|
(@response, @document_list) = get_search_results
|
|
50
56
|
@user = current_user
|
|
51
57
|
@events = @user.events(100)
|
|
@@ -225,8 +225,7 @@ module Sufia
|
|
|
225
225
|
|
|
226
226
|
# this is provided so that implementing application can override this behavior and map params to different attributes
|
|
227
227
|
def update_metadata
|
|
228
|
-
|
|
229
|
-
@generic_file.attributes = valid_attributes
|
|
228
|
+
@generic_file.attributes = @generic_file.sanitize_attributes(params[:generic_file])
|
|
230
229
|
@generic_file.set_visibility(params[:visibility])
|
|
231
230
|
@generic_file.date_modified = DateTime.now
|
|
232
231
|
end
|
data/lib/sufia/version.rb
CHANGED
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
require 'spec_helper'
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
16
2
|
|
|
17
3
|
describe ActiveFedora::UnsavedDigitalObject do
|
|
18
4
|
it "should have an ARK-style pid" do
|
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
require 'spec_helper'
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
16
2
|
|
|
17
3
|
describe AuthoritiesController do
|
|
18
4
|
describe "#query" do
|
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
#
|
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
# you may not use this file except in compliance with the License.
|
|
5
|
-
# You may obtain a copy of the License at
|
|
6
|
-
#
|
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
#
|
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
# See the License for the specific language governing permissions and
|
|
13
|
-
# limitations under the License.
|
|
14
|
-
|
|
15
|
-
require 'spec_helper'
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
|
16
2
|
|
|
17
3
|
describe BatchController do
|
|
18
4
|
before do
|
|
@@ -48,7 +34,7 @@ describe BatchController do
|
|
|
48
34
|
end
|
|
49
35
|
it "should enqueue a batch update job" do
|
|
50
36
|
params = {'generic_file' => {'read_groups_string' => '', 'read_users_string' => 'archivist1, archivist2', 'tag' => ['']}, 'id' => @batch.pid, 'controller' => 'batch', 'action' => 'update'}
|
|
51
|
-
s1 =
|
|
37
|
+
s1 = double('one')
|
|
52
38
|
BatchUpdateJob.should_receive(:new).with(@user.user_key, params).and_return(s1)
|
|
53
39
|
Sufia.queue.should_receive(:push).with(s1).once
|
|
54
40
|
post :update, :id=>@batch.pid, "generic_file"=>{"read_groups_string"=>"", "read_users_string"=>"archivist1, archivist2", "tag"=>[""]}
|
|
@@ -63,7 +49,15 @@ describe BatchController do
|
|
|
63
49
|
flash[:notice].should include("Your files are being processed")
|
|
64
50
|
end
|
|
65
51
|
end
|
|
52
|
+
|
|
66
53
|
describe "when user has edit permissions on a file" do
|
|
54
|
+
it "should set the groups" do
|
|
55
|
+
post :update, :id=>@batch.pid, "generic_file"=>{"permissions"=>{"group"=>{"public"=>"1", "registered"=>"2"}}}
|
|
56
|
+
@file.reload.read_groups.should == []
|
|
57
|
+
@file.reload.edit_groups.should == []
|
|
58
|
+
response.should redirect_to @routes.url_helpers.dashboard_index_path
|
|
59
|
+
end
|
|
60
|
+
|
|
67
61
|
it "should set the users with read access" do
|
|
68
62
|
post :update, :id=>@batch.pid, "generic_file"=>{"read_groups_string"=>"", "read_users_string"=>"archivist1, archivist2", "tag"=>[""]}
|
|
69
63
|
file = GenericFile.find(@file.pid)
|