sufia 1.1.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc608966c9285b346242ba6be80305cc3ee82cad
4
- data.tar.gz: 7be4d8597798945013fdf1c4b6b82dbf267ab041
3
+ metadata.gz: 5c1ede98424a5850d9fc61805d683d009adc137f
4
+ data.tar.gz: b4b58df9eb918d41e5852a5afd4917f7771849d8
5
5
  SHA512:
6
- metadata.gz: 7aa180c10138cd6460044b1271de080662daab0bc355c10e4e64177fc16ec6c3683191733ae2244836feb31ed1b4821cbfa12dfe2183a22fb7a7c55b260618bb
7
- data.tar.gz: 7bc1d454033cc0b2cd9eee243e30d91ddc890bd6745136b966b4025c272d85d34a2a8d88b32b47ff83c8fceb2264462ac5d24e65ad1c95a0699b1739c69d918b
6
+ metadata.gz: a15c15aa6703dfe883f75db875fa8362f6fb3dc3b5589549a75475dfc2b5fbfb7a8ee41bb9bcabadf1c8dbc3f2ef5fb3c41517a60ea046382afdc3f5f81ba291
7
+ data.tar.gz: 6af364e8b6a156ca8fdbbe0dcee00c994192e088fb9a662b087dfb47de2386975534d3c96fa769fcc2bcc61644b78416dc73e0fbc279db85f687ed861e68c235
@@ -1,33 +1,29 @@
1
1
  require 'sufia/single_use_error'
2
2
 
3
3
  class SingleUseLinkController < DownloadsController
4
- before_filter :authenticate_user!, :except => [:show, :download]
4
+ before_filter :authenticate_user!, :except => [:download, :show]
5
+ before_filter :find_file, :only => [:generate_download, :generate_show]
6
+ before_filter :authorize_user!, :only => [:generate_download, :generate_show]
5
7
  skip_filter :normalize_identifier
6
8
  prepend_before_filter :normalize_identifier, :except => [:download, :show]
7
9
  rescue_from Sufia::SingleUseError, :with => :render_single_use_error
8
-
10
+
9
11
  def generate_download
10
- @generic_file = GenericFile.find(params[:id])
11
- authorize! :read, @generic_file
12
12
  @su = SingleUseLink.create_download(params[:id])
13
13
  @link = sufia.download_single_use_link_path(@su.downloadKey)
14
14
  respond_to do |format|
15
15
  format.html
16
16
  format.js {render :js => @link}
17
17
  end
18
-
19
18
  end
20
19
 
21
20
  def generate_show
22
- @generic_file = GenericFile.find(params[:id])
23
- authorize! :read, @generic_file
24
21
  @su = SingleUseLink.create_show(params[:id])
25
22
  @link = sufia.show_single_use_link_path(@su.downloadKey)
26
23
  respond_to do |format|
27
24
  format.html
28
25
  format.js {render :js => @link}
29
26
  end
30
-
31
27
  end
32
28
 
33
29
  def download
@@ -35,13 +31,13 @@ class SingleUseLinkController < DownloadsController
35
31
  link = lookup_hash
36
32
 
37
33
  #grab the item id
38
- id = link.itemId
39
-
34
+ id = link.itemId
35
+
40
36
  #check to make sure the path matches
41
37
  not_found if link.path != sufia.download_path(id)
42
-
38
+
43
39
  # send the data content
44
- asset = ActiveFedora::Base.find(id, :cast=>true)
40
+ asset = GenericFile.find(id)
45
41
  send_content(asset)
46
42
  end
47
43
 
@@ -49,42 +45,50 @@ class SingleUseLinkController < DownloadsController
49
45
  link = lookup_hash
50
46
 
51
47
  #grab the item id
52
- id = link.itemId
53
-
48
+ id = link.itemId
49
+
54
50
  #check to make sure the path matches
55
51
  not_found if link.path != sufia.generic_file_path(id)
56
-
52
+
57
53
  #show the file
58
- @generic_file = GenericFile.find(id)
54
+ @generic_file = GenericFile.load_instance_from_solr(id)
59
55
  @terms = @generic_file.terms_for_display
60
-
56
+
61
57
  # create a dowload link that is single use for the user since we do not just want to show metadata we want to access it too
62
58
  @su = SingleUseLink.create_download(id)
63
59
  @download_link = sufia.download_single_use_link_path(@su.downloadKey)
64
60
  end
65
-
61
+
66
62
  protected
67
-
68
- def lookup_hash
63
+
64
+ def authorize_user!
65
+ authorize! :read, @generic_file
66
+ end
67
+
68
+ def find_file
69
+ @generic_file = GenericFile.load_instance_from_solr(params[:id])
70
+ end
71
+
72
+ def lookup_hash
69
73
  id = params[:id]
70
74
  # invalid hash send not found
71
75
  link = SingleUseLink.find_by_downloadKey(id) || not_found
72
-
76
+
73
77
  # expired hash send not found
74
78
  now = DateTime.now
75
- not_found if link.expires <= now
76
-
79
+ not_found if link.expires <= now
80
+
77
81
  # delete the link since it has been used
78
82
  link.destroy
79
-
83
+
80
84
  return link
81
85
  end
82
-
86
+
83
87
  def not_found
84
- raise Sufia::SingleUseError.new('Single Use Link Not Found')
88
+ raise Sufia::SingleUseError.new('Single-Use Link Not Found')
85
89
  end
90
+
86
91
  def expired
87
- raise Sufia::SingleUseError.new('Single Use Link Expired')
92
+ raise Sufia::SingleUseError.new('Single-Use Link Expired')
88
93
  end
89
-
90
94
  end
@@ -39,6 +39,10 @@ module SufiaHelper
39
39
  return User.find_by_user_key(recent_document.depositor).name rescue recent_document.depositor
40
40
  end
41
41
 
42
+ def number_of_deposits(user)
43
+ ActiveFedora::SolrService.query("#{Solrizer.solr_name('depositor', :stored_searchable, :type => :string)}:#{user.user_key}").count
44
+ end
45
+
42
46
  def link_to_facet(field, field_string)
43
47
  link_to(field, add_facet_params(field_string, field).merge!({"controller" => "catalog", :action=> "index"}))
44
48
  end
@@ -26,10 +26,10 @@ class ChecksumAuditLog < ActiveRecord::Base
26
26
  ## Check to see if there are previous passing logs that we can delete
27
27
  # we want to keep the first passing event after a failure, the most current passing event, and all failures so that this table doesn't grow too large
28
28
  # Simple way (a little naieve): if the last 2 were passing, delete the first one
29
- logs = GenericFile.find(version.pid).logs(version.dsid)
29
+ logs = GenericFile.load_instance_from_solr(version.pid).logs(version.dsid)
30
30
  list = logs.limit(2)
31
31
  if list.size > 1 && (list[0].pass == 1) && (list[1].pass == 1)
32
- list[0].delete
32
+ list[0].delete
33
33
  end
34
34
  end
35
- end
35
+ end
@@ -14,14 +14,12 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  %>
16
16
 
17
- <!-- scholarsphere over ride -->
18
- <!-- the sub on ':' is b.c. jQuery has trouble with '.' or ':'
19
- on element ids -->
20
17
  <% noid = document.noid %>
21
- <tr id="document_<%= noid.gsub(":", "_") %>" class="<%= cycle("","zebra") %>">
22
- <% gf = GenericFile.find(document.id) %>
18
+ <tr id="document_<%= noid %>" class="<%= cycle("","zebra") %>">
19
+ <% gf = GenericFile.load_instance_from_solr(document.id) %>
23
20
  <td width="6%"><%= batch_edit_select(document) %>&nbsp;</td>
24
21
  <td width="1%">
22
+ <%# This block is for adding/removing the magic wand while batch updates are processing %>
25
23
  <% if gf.processing? %>
26
24
  <i class="icon-magic icon-large <%= 'ss-'+gf.batch.noid%>"/>
27
25
  <% elsif gf.depositor != @user.user_key %>
@@ -29,7 +27,7 @@ on element ids -->
29
27
  <% end %>
30
28
  </td>
31
29
  <td width="37%">
32
- <a href="" title="Click for more details"><i id="expand_<%= noid.gsub(":", "_") %>" class="icon-plus icon-large fleft"></i></a>&nbsp;
30
+ <a href="" title="Click for more details"><i id="expand_<%= noid %>" class="icon-plus icon-large fleft"></i></a>&nbsp;
33
31
  <%= render :partial => 'dashboard/_index_partials/thumbnail_display', :locals => {:document=>document} %>
34
32
  <span class=center><%= link_to document.title_or_label, sufia.generic_file_path(noid), :id => "src_copy_link#{noid}" %> <br /></span>
35
33
  </td>
@@ -67,7 +65,7 @@ on element ids -->
67
65
  </div>
68
66
  </td>
69
67
  </tr>
70
- <tr class="hide" id="detail_<%= noid.gsub(":", "_") %>"> <!-- document detail"> -->
68
+ <tr class="hide" id="detail_<%= noid %>"> <!-- document detail"> -->
71
69
  <td colspan="6">
72
70
  <table class="expanded-details">
73
71
  <tr>
@@ -36,10 +36,9 @@ limitations under the License.
36
36
  <td ><a href="<%= sufia.profile_path(URI.escape(user.user_key,'@.')) %>" ><%= user.name %><a></td>
37
37
  <td><a href="<%= sufia.profile_path(URI.escape(user.user_key,'@.')) %>" ><%= user.user_key %><a></td>
38
38
  <td><%= user.department %> </td>
39
- <td><%= GenericFile.find(:depositor => user.to_s).count %> </td>
39
+ <td><%= number_of_deposits(user) %> </td>
40
40
  </tr>
41
-
42
- <% end %>
41
+ <% end %>
43
42
  </tbody>
44
43
  </table>
45
44
  <div class="pager">
@@ -0,0 +1,8 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
5
+ %>
6
+ default: <%= std_opts %> features
7
+ wip: --tags @wip:3 --wip features
8
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -1,7 +1,6 @@
1
1
  # Returns an array containing the vhost 'CoSign service' value and URL
2
2
  Sufia.config do |config|
3
- config.id_namespace = "sufia"
4
- config.fits_path = "fits.sh"
3
+
5
4
  config.fits_to_desc_mapping= {
6
5
  :file_title => :title,
7
6
  :file_author => :creator
@@ -59,14 +58,20 @@ Sufia.config do |config|
59
58
  config.queue = Sufia::Resque::Queue
60
59
 
61
60
  # Map hostnames onto Google Analytics tracking IDs
62
- #config.google_analytics_id = 'UA-99999999-1'
61
+ # config.google_analytics_id = 'UA-99999999-1'
63
62
 
64
63
 
65
64
  # Where to store tempfiles, leave blank for the system temp directory (e.g. /tmp)
66
- #config.temp_file_base = '/home/developer1'
65
+ # config.temp_file_base = '/home/developer1'
67
66
 
68
67
  # If you have ffmpeg installed and want to transcode audio and video uncomment this line
69
- #config.enable_ffmpeg = true
68
+ # config.enable_ffmpeg = true
69
+
70
+ # Specify the Fedora pid prefix:
71
+ # config.id_namespace = "sufia"
72
+
73
+ # Specify the path to the file characterization tool:
74
+ # config.fits_path = "fits.sh"
70
75
 
71
76
  end
72
77
 
@@ -30,11 +30,14 @@ module Sufia
30
30
  config.ffmpeg_path = 'ffmpeg'
31
31
  config.fits_message_length = 5
32
32
  config.temp_file_base = nil
33
+ config.id_namespace = "sufia"
34
+ config.fits_path = "fits.sh"
33
35
 
34
36
  config.autoload_paths += %W(
35
37
  #{config.root}/lib/sufia/jobs
36
38
  #{config.root}/app/controllers/concerns
37
39
  #{config.root}/app/models/concerns
40
+ #{config.root}/app/models/datastreams
38
41
  )
39
42
 
40
43
  initializer "Patch active_fedora" do
@@ -3,7 +3,7 @@ module Sufia
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  def edit
6
- super
6
+ super
7
7
  @generic_file = ::GenericFile.new
8
8
  @generic_file.depositor = current_user.user_key
9
9
  @terms = @generic_file.terms_for_editing - [:title, :format, :resource_type]
@@ -17,13 +17,13 @@ module Sufia
17
17
 
18
18
  # For each of the files in the batch, set the attributes to be the concatination of all the attributes
19
19
  batch.each do |doc_id|
20
- gf = ::GenericFile.find(doc_id)
20
+ gf = ::GenericFile.load_instance_from_solr(doc_id)
21
21
  gf.terms_for_editing.each do |key|
22
22
  h[key] ||= []
23
- h[key] = (h[key] + gf.send(key)).uniq
23
+ h[key] = (h[key] + gf.send(key)).uniq
24
24
  end
25
- @names << display_title(gf)
26
- permissions = (permissions+gf.permissions).uniq
25
+ @names << display_title(gf)
26
+ permissions = (permissions + gf.permissions).uniq
27
27
  end
28
28
 
29
29
  initialize_fields(h, @show_file)
@@ -32,47 +32,46 @@ module Sufia
32
32
  # todo sort the access level some how...
33
33
  perm_param ={'user'=>{},'group'=>{"public"=>"1"}}
34
34
  permissions.each{ |perm| perm_param[perm[:type]][perm[:name]] = perm[:access]}
35
- @show_file.permissions = HashWithIndifferentAccess.new(perm_param)
35
+ @show_file.permissions = HashWithIndifferentAccess.new(perm_param)
36
36
  end
37
37
 
38
- def after_update
39
- redirect_to sufia.dashboard_index_path unless request.xhr?
38
+ def after_update
39
+ redirect_to sufia.dashboard_index_path unless request.xhr?
40
40
  end
41
-
41
+
42
42
  def update_document(obj)
43
43
  super
44
44
  obj.date_modified = Time.now.ctime
45
45
  obj.set_visibility(params[:visibility])
46
46
  end
47
-
47
+
48
48
  def update
49
49
  # keep the batch around if we are doing ajax calls
50
- batch_sav = batch.dup if request.xhr?
50
+ batch_sav = batch.dup if request.xhr?
51
51
  catalog_index_path = sufia.dashboard_index_path
52
52
  type = params["update_type"]
53
- if (type == "update")
54
- #params["generic_file"].reject! {|k,v| (v.blank? || (v.respond_to?(:length) && v.length==1 && v.first.blank?))}
55
- super
56
- elsif (type == "delete_all")
53
+ if type == "update"
54
+ super
55
+ elsif type == "delete_all"
57
56
  batch.each do |doc_id|
58
- gf = ::GenericFile.find(doc_id)
57
+ gf = ::GenericFile.load_instance_from_solr(doc_id)
59
58
  gf.delete
60
59
  end
61
- clear_batch!
60
+ clear_batch!
62
61
  after_update
63
62
  end
64
63
 
65
64
  # reset the batch around if we are doing ajax calls
66
65
  if request.xhr?
67
- self.batch = batch_sav.dup
66
+ self.batch = batch_sav.dup
68
67
  @key = params["key"]
69
- if (@key != "permissions")
70
- @vals = params["generic_file"][@key]
68
+ if @key != "permissions"
69
+ @vals = params["generic_file"][@key]
71
70
  else
72
- @vals = [""]
73
- end
71
+ @vals = [""]
72
+ end
74
73
  render :update_edit
75
- end
74
+ end
76
75
  end
77
76
 
78
77
  protected
@@ -80,10 +79,9 @@ module Sufia
80
79
  # override this method if you need to initialize more complex RDF assertions (b-nodes)
81
80
  def initialize_fields(attributes, file)
82
81
  file.terms_for_editing.each do |key|
83
- # if value is empty, we create an one element array to loop over for output
82
+ # if value is empty, we create an one element array to loop over for output
84
83
  file[key] = attributes[key].empty? ? [''] : attributes[key]
85
84
  end
86
85
  end
87
-
88
86
  end
89
87
  end
@@ -25,13 +25,13 @@ module Sufia
25
25
  end
26
26
 
27
27
  def show
28
- if can? :read, params["id"]
29
- asset = ActiveFedora::Base.find(params[:id], :cast=>true)
28
+ if can? :read, params[:id]
29
+ asset = ActiveFedora::Base.load_instance_from_solr(params[:id])
30
30
  # we can now examine @asset and determine if we should send_content, or some other action.
31
31
  send_content (asset)
32
32
  else
33
- logger.info "Can not read #{params['id']}"
34
- redirect_to "/assets/NoAccess.png"
33
+ logger.info "Can not read #{params[:id]}"
34
+ raise Hydra::AccessDenied.new("You do not have sufficient access privileges to read this document, which has been marked private.", :read, params[:id])
35
35
  end
36
36
  end
37
37
 
@@ -57,12 +57,6 @@ module Sufia
57
57
  @groups = current_user.groups
58
58
  end
59
59
 
60
- # routed to /files/:id
61
- def index
62
- @generic_files = ::GenericFile.find(:all, :rows => ::GenericFile.count)
63
- render :json => @generic_files.map(&:to_jq_upload).to_json
64
- end
65
-
66
60
  # routed to /files/:id (DELETE)
67
61
  def destroy
68
62
  pid = @generic_file.noid
@@ -81,7 +75,7 @@ module Sufia
81
75
  if !file
82
76
  json_error "Error! No file for upload", 'unknown file', :status => :unprocessable_entity
83
77
  elsif (empty_file?(file))
84
- json_error "Error! Zero Length File!", file.original_filename
78
+ json_error "Error! Zero Length File!", file.original_filename
85
79
  elsif (!terms_accepted?)
86
80
  json_error "You must accept the terms of service!", file.original_filename
87
81
  else
@@ -89,7 +83,7 @@ module Sufia
89
83
  end
90
84
  rescue => error
91
85
  logger.error "GenericFilesController::create rescued #{error.class}\n\t#{error.to_s}\n #{error.backtrace.join("\n")}\n\n"
92
- json_error "Error occurred while creating generic file."
86
+ json_error "Error occurred while creating generic file."
93
87
  ensure
94
88
  # remove the tempfile (only if it is a temp file)
95
89
  file.tempfile.delete if file.respond_to?(:tempfile)
@@ -13,13 +13,12 @@ module Sufia
13
13
  autoload :Actions
14
14
  autoload :Permissions
15
15
  include Sufia::ModelMethods
16
- include Sufia::Noid
16
+ include Sufia::Noid
17
17
  include Sufia::GenericFile::Thumbnail
18
18
  include Sufia::GenericFile::Export
19
19
  include Sufia::GenericFile::Characterization
20
20
  include Sufia::GenericFile::Audit
21
21
  include Sufia::GenericFile::Permissions
22
-
23
22
 
24
23
  included do
25
24
  has_metadata :name => "descMetadata", :type => GenericFileRdfDatastream
@@ -35,14 +34,14 @@ module Sufia
35
34
  :contributor, :title, :tag, :description, :rights,
36
35
  :publisher, :date_created, :subject,
37
36
  :resource_type, :identifier, :language]
37
+
38
38
  around_save :characterize_if_changed, :retry_warming
39
39
  before_save :remove_blank_assertions
40
-
41
40
  end
42
41
 
43
42
  def delete
44
- self.cleanup_trophies
45
- super
43
+ self.cleanup_trophies
44
+ super
46
45
  end
47
46
 
48
47
  def remove_blank_assertions
@@ -95,7 +94,7 @@ module Sufia
95
94
  # fail for good if the tries is greater than 3
96
95
  raise if save_tries >=3
97
96
  sleep 0.01
98
- retry
97
+ retry
99
98
  rescue ActiveResource::ResourceConflict => error
100
99
  conflict_tries += 1
101
100
  logger.warn "Retry caught Active Resource Conflict #{self.pid}: #{error.inspect}"
@@ -111,8 +110,7 @@ module Sufia
111
110
  retry
112
111
  else
113
112
  raise
114
- end
115
-
113
+ end
116
114
  end
117
115
  end
118
116
 
@@ -120,7 +118,6 @@ module Sufia
120
118
  Trophy.destroy_all(generic_file_id: self.noid)
121
119
  end
122
120
 
123
-
124
121
  def related_files
125
122
  relateds = begin
126
123
  self.batch.generic_files
@@ -136,7 +133,7 @@ module Sufia
136
133
  # Unstemmed, searchable, stored
137
134
  def self.noid_indexer
138
135
  @noid_indexer ||= Solrizer::Descriptor.new(:text, :indexed, :stored)
139
- end
136
+ end
140
137
 
141
138
  def to_solr(solr_doc={}, opts={})
142
139
  super(solr_doc, opts)
@@ -192,6 +189,5 @@ module Sufia
192
189
  return false if !self.batch.methods.include? :status
193
190
  return (!self.batch.status.empty?) && (self.batch.status.count == 1) && (self.batch.status[0] == "processing")
194
191
  end
195
-
196
192
  end
197
193
  end
@@ -19,18 +19,16 @@ module Sufia
19
19
  title || label
20
20
  end
21
21
 
22
-
23
22
  ##
24
23
  # Give our SolrDocument an ActiveModel::Naming appropriate route_key
25
24
  def route_key
26
- get('has_model_ssim').split(':').last.downcase
25
+ get(Solrizer.solr_name('has_model', :symbol)).split(':').last.downcase
27
26
  end
28
27
 
29
-
30
28
  ##
31
- # Offer the source (ActiveFedora-based) model to Rails for some of the
32
- # Rails methods (e.g. link_to).
33
- # @example
29
+ # Offer the source (ActiveFedora-based) model to Rails for some of the
30
+ # Rails methods (e.g. link_to).
31
+ # @example
34
32
  # link_to '...', SolrDocument(:id => 'bXXXXXX5').new => <a href="/dams_object/bXXXXXX5">...</a>
35
33
  def to_model
36
34
  m = ActiveFedora::Base.load_instance_from_solr(id, self)
@@ -42,7 +40,6 @@ module Sufia
42
40
  self[Solrizer.solr_name('noid', Sufia::GenericFile.noid_indexer)]
43
41
  end
44
42
 
45
-
46
43
  def date_uploaded
47
44
  field = self[Solrizer.solr_name("desc_metadata__date_uploaded", :stored_sortable, type: :date)]
48
45
  return unless field.present?
@@ -53,7 +50,6 @@ module Sufia
53
50
  end
54
51
  end
55
52
 
56
-
57
53
  def depositor(default = '')
58
54
  val = Array(self[Solrizer.solr_name("depositor")]).first
59
55
  val.present? ? val : default
@@ -65,18 +65,13 @@ module Sufia::User
65
65
 
66
66
  # method needed for trophies
67
67
  def trophies
68
- trophies = Trophy.where(user_id:self.id)
68
+ trophies = Trophy.where(:user_id => self.id)
69
69
  return trophies
70
70
  end
71
-
71
+
72
72
  #method to get the trophy ids without the namespace included
73
73
  def trophy_ids
74
- trophies=[]
75
- trophies.each do |t|
76
- @trophies << GenericFile.find("#{Sufia::Engine.config.id_namespace}:#{t.generic_file_id}")
77
-
78
- end
79
- return trophies
74
+ trophies.map { |t| "#{Sufia::Engine.config.id_namespace}:#{t.generic_file_id}" }
80
75
  end
81
76
 
82
77
  # method needed for messaging
@@ -84,7 +79,7 @@ module Sufia::User
84
79
  return nil
85
80
  end
86
81
 
87
- # The basic groups method, override or will fallback to Sufia::Ldap::User
82
+ # The basic groups method, override or will fallback to Sufia::Ldap::User
88
83
  def groups
89
84
  return self.group_list ? self.group_list.split(";?;") : []
90
85
  end
@@ -93,7 +88,7 @@ module Sufia::User
93
88
  @ability ||= Ability.new(self)
94
89
  end
95
90
 
96
- module ClassMethods
91
+ module ClassMethods
97
92
  def current
98
93
  Thread.current[:user]
99
94
  end
@@ -1,3 +1,3 @@
1
1
  module Sufia
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -16,12 +16,6 @@ require 'spec_helper'
16
16
 
17
17
  describe DownloadsController do
18
18
 
19
- describe "routing" do
20
- it "should route" do
21
- assert_recognizes( {:controller=>"downloads", :action=>"show", "id"=>"test1"}, "/downloads/test1?filename=my%20dog.jpg" )
22
- end
23
- end
24
-
25
19
  describe "default_datastream?" do
26
20
  it "should be true when no datastram_id is passed" do
27
21
  controller.should be_default_datastream
@@ -103,7 +97,8 @@ describe DownloadsController do
103
97
  describe "show" do
104
98
  it "should deny access" do
105
99
  get "show", :id => "test1"
106
- response.should redirect_to("/assets/NoAccess.png")
100
+ response.should redirect_to root_path
101
+ flash[:alert].should == "You do not have sufficient access privileges to read this document, which has been marked private."
107
102
  end
108
103
  end
109
104
  end
@@ -33,8 +33,8 @@ describe GenericFilesController do
33
33
  begin
34
34
  Batch.find("sample:batch_id").delete
35
35
  rescue
36
- end
37
- @mock.delete unless @mock.inner_object.class == ActiveFedora::UnsavedDigitalObject
36
+ end
37
+ @mock.delete unless @mock.inner_object.class == ActiveFedora::UnsavedDigitalObject
38
38
  end
39
39
 
40
40
  it "should render error the file wasn't actually a file" do
@@ -279,8 +279,8 @@ describe GenericFile do
279
279
  local[Solrizer.solr_name("desc_metadata__part_of")].should be_nil
280
280
  local[Solrizer.solr_name("desc_metadata__date_uploaded")].should be_nil
281
281
  local[Solrizer.solr_name("desc_metadata__date_modified")].should be_nil
282
- local[Solrizer.solr_name("desc_metadata__date_uploaded", :stored_sortable, type: :date)].should == ['2011-01-01T00:00:00Z']
283
- local[Solrizer.solr_name("desc_metadata__date_modified", :stored_sortable, type: :date)].should == ['2012-01-01T00:00:00Z']
282
+ local[Solrizer.solr_name("desc_metadata__date_uploaded", :stored_sortable, type: :date)].should == '2011-01-01T00:00:00Z'
283
+ local[Solrizer.solr_name("desc_metadata__date_modified", :stored_sortable, type: :date)].should == '2012-01-01T00:00:00Z'
284
284
  local[Solrizer.solr_name("desc_metadata__rights")].should == ["Wide open, buddy."]
285
285
  local[Solrizer.solr_name("desc_metadata__related_url")].should be_nil
286
286
  local[Solrizer.solr_name("desc_metadata__contributor")].should == ["Mohammad"]
@@ -10,6 +10,7 @@ task :ci => ['jetty:config'] do
10
10
  jetty_params = Jettywrapper.load_config
11
11
  error = Jettywrapper.wrap(jetty_params) do
12
12
  Rake::Task['spec'].invoke
13
+ Rake::Task['cucumber:all'].invoke
13
14
  end
14
15
  raise "test failures: #{error}" if error
15
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-01 00:00:00.000000000 Z
11
+ date: 2013-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -335,7 +335,6 @@ files:
335
335
  - LICENSE.md
336
336
  - README.md
337
337
  - Rakefile
338
- - app/assets/images/NoAccess.png
339
338
  - app/assets/images/blacklight/bg.png
340
339
  - app/assets/images/blacklight/border.png
341
340
  - app/assets/images/blacklight/bul_sq_gry.gif
@@ -637,6 +636,7 @@ files:
637
636
  - app/views/users/notifications_number.js.erb
638
637
  - app/views/users/show.html.erb
639
638
  - bin/audit_repository
639
+ - config/cucumber.yml
640
640
  - config/jetty.yml
641
641
  - config/locales/sufia.en.yml
642
642
  - config/routes.rb
@@ -1003,3 +1003,4 @@ test_files:
1003
1003
  - spec/views/single_user_link/generate_download.html.erb_spec.rb
1004
1004
  - spec/views/single_user_link/generate_show.html.erb_spec.rb
1005
1005
  - spec/views/single_user_link/show.html.erb_spec.rb
1006
+ has_rdoc: