sufia-models 3.1.1 → 3.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f262e81abc28d0f72840dbdc78a95e3b6d52b57
4
- data.tar.gz: 1f94f581db6d3c3bdfe2b7853ae8835a14d884e4
3
+ metadata.gz: e29c38959e535f4f8e74a7882bad04666274b672
4
+ data.tar.gz: 302f04b6b382cc2edcbd11bf80bd9ea5928f6466
5
5
  SHA512:
6
- metadata.gz: 10168f401439a85afcd7cd6e99069f803a2541ed5558002403951082991c36016de287d8cdf37dec099bb5bb203a42310a8bad75f32c5c06059113cd2e2c8b6c
7
- data.tar.gz: 55243f46216539e011da9fe4ccb69481394cc29c66459ea9b5599523526c95f1ffd14b80279f92524376c544a5eb3eae10f4eef1ece20e8a3fdf0eb69d135cdb
6
+ metadata.gz: 0f709335f5a92ad6fc59b442c4ac92255e378710fa6b071bc62eab05fa001f7a5985452c90781ea08da15346bfdc2384778de07667a45f7c4d7388e6a8b0dbe5
7
+ data.tar.gz: ce166166966b2686d676887e96f821aaadaca158c8f916748933103e889c74bba39dd4ea72374697998c39db62d47dba52c3dc41108f3d3f4d31def396fceee1
@@ -1,16 +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
1
  class GenericFile < ActiveFedora::Base
15
2
  include Sufia::GenericFile
16
3
  end
@@ -20,10 +20,14 @@ This generator makes the following changes to your application:
20
20
  # Implement the required interface for Rails::Generators::Migration.
21
21
  # taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
22
22
  def self.next_migration_number(path)
23
- unless @prev_migration_nr
24
- @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
25
- else
23
+ if @prev_migration_nr
26
24
  @prev_migration_nr += 1
25
+ else
26
+ if last_migration = Dir[File.join(path, '*.rb')].sort.last
27
+ @prev_migration_nr = last_migration.sub(File.join(path, '/'), '').to_i + 1
28
+ else
29
+ @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
30
+ end
27
31
  end
28
32
  @prev_migration_nr.to_s
29
33
  end
@@ -42,8 +46,8 @@ This generator makes the following changes to your application:
42
46
  "add_groups_to_users.rb",
43
47
  "create_local_authorities.rb",
44
48
  "create_trophies.rb"
45
- ].each do |f|
46
- better_migration_template f
49
+ ].each do |file|
50
+ better_migration_template file
47
51
  end
48
52
  end
49
53
 
@@ -88,12 +92,7 @@ This generator makes the following changes to your application:
88
92
  private
89
93
 
90
94
  def better_migration_template(file)
91
- begin
92
- migration_template "migrations/#{file}", "db/migrate/#{file}"
93
- sleep 1 # ensure scripts have different time stamps
94
- rescue
95
- puts " \e[1m\e[34mMigrations\e[0m " + $!.message
96
- end
95
+ migration_template "migrations/#{file}", "db/migrate/#{file}"
97
96
  end
98
97
 
99
98
  end
@@ -46,13 +46,11 @@ module Sufia
46
46
  require 'sufia/models/noid'
47
47
  require 'sufia/models/file_content'
48
48
  require 'sufia/models/file_content/versions'
49
- require 'sufia/models/generic_file/actions'
50
49
  require 'sufia/models/generic_file/audit'
51
50
  require 'sufia/models/generic_file/characterization'
52
51
  require 'sufia/models/generic_file/derivatives'
53
52
  require 'sufia/models/generic_file/export'
54
53
  require 'sufia/models/generic_file/mime_types'
55
- require 'sufia/models/generic_file/permissions'
56
54
  require 'sufia/models/generic_file/thumbnail'
57
55
  require 'sufia/models/generic_file'
58
56
  require 'sufia/models/user'
@@ -2,8 +2,9 @@ module Sufia
2
2
  module GenericFile
3
3
  extend ActiveSupport::Concern
4
4
  extend ActiveSupport::Autoload
5
- autoload :Actions
6
- autoload :Permissions
5
+ autoload :Actions, 'sufia/models/generic_file/actions'
6
+ autoload :Permissions, 'sufia/models/generic_file/permissions'
7
+ autoload :Visibility, 'sufia/models/generic_file/visibility'
7
8
  autoload :WebForm, 'sufia/models/generic_file/web_form'
8
9
  autoload :AccessibleAttributes, 'sufia/models/generic_file/accessible_attributes'
9
10
  include Sufia::ModelMethods
@@ -4,26 +4,13 @@ module Sufia
4
4
  extend ActiveSupport::Concern
5
5
  #we're overriding the permissions= method which is in RightsMetadata
6
6
  include Hydra::ModelMixins::RightsMetadata
7
+ include Sufia::GenericFile::Visibility
8
+
7
9
  included do
8
10
  has_metadata :name => "rightsMetadata", :type => ParanoidRightsDatastream
9
11
  validate :paranoid_permissions
10
12
  end
11
13
 
12
- def set_visibility(visibility)
13
- # only set explicit permissions
14
- case visibility
15
- when "open"
16
- self.datastreams["rightsMetadata"].permissions({:group=>"public"}, "read")
17
- when "psu"
18
- self.datastreams["rightsMetadata"].permissions({:group=>"registered"}, "read")
19
- self.datastreams["rightsMetadata"].permissions({:group=>"public"}, "none")
20
- when "restricted"
21
- self.datastreams["rightsMetadata"].permissions({:group=>"registered"}, "none")
22
- self.datastreams["rightsMetadata"].permissions({:group=>"public"}, "none")
23
- end
24
- end
25
-
26
-
27
14
  def paranoid_permissions
28
15
  # let the rightsMetadata ds make this determination
29
16
  # - the object instance is passed in for easier access to the props ds
@@ -57,8 +44,6 @@ module Sufia
57
44
  end
58
45
  {'person'=>user_perms, 'group'=>group_perms}
59
46
  end
60
-
61
-
62
47
  end
63
48
  end
64
49
  end
@@ -0,0 +1,59 @@
1
+ module Sufia
2
+ module GenericFile
3
+ module Visibility
4
+ extend ActiveSupport::Concern
5
+ extend Deprecation
6
+ include ActiveModel::Dirty
7
+
8
+ included do
9
+ define_attribute_methods :visibility
10
+ end
11
+
12
+ def visibility= (value)
13
+ # only set explicit permissions
14
+ case value
15
+ when "open"
16
+ public_visibility!
17
+ when "psu"
18
+ registered_visibility!
19
+ when "restricted"
20
+ private_visibility!
21
+ end
22
+ end
23
+
24
+ def public_visibility!
25
+ visibility_will_change! unless visibility == 'public'
26
+ self.datastreams["rightsMetadata"].permissions({:group=>"public"}, "read")
27
+ end
28
+
29
+ def registered_visibility!
30
+ visibility_will_change! unless visibility == 'registered'
31
+ self.datastreams["rightsMetadata"].permissions({:group=>"registered"}, "read")
32
+ self.datastreams["rightsMetadata"].permissions({:group=>"public"}, "none")
33
+ end
34
+
35
+ def private_visibility!
36
+ visibility_will_change! unless visibility == 'private'
37
+ self.datastreams["rightsMetadata"].permissions({:group=>"registered"}, "none")
38
+ self.datastreams["rightsMetadata"].permissions({:group=>"public"}, "none")
39
+ end
40
+
41
+ def visibility
42
+ if read_groups.include? 'public'
43
+ 'public'
44
+ elsif read_groups.include? 'registered'
45
+ 'registered'
46
+ else
47
+ 'private'
48
+ end
49
+ end
50
+
51
+ def set_visibility(visibility)
52
+ Deprecation.warn Permissions, "set_visibility is deprecated, use visibility= instead. set_visibility will be removed in sufia 3.0", caller
53
+ self.visibility= visibility
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+
@@ -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
  class BatchUpdateJob
16
2
  include Hydra::PermissionsQuery
17
3
  include Rails.application.routes.url_helpers
@@ -60,7 +46,7 @@ class BatchUpdateJob
60
46
  end
61
47
  gf.title = title[gf.pid] if title[gf.pid] rescue gf.label
62
48
  gf.attributes=file_attributes
63
- gf.set_visibility(visibility)
49
+ gf.visibility= visibility
64
50
 
65
51
  save_tries = 0
66
52
  begin
@@ -1,5 +1,5 @@
1
1
  module Sufia
2
2
  module Models
3
- VERSION = "3.1.1"
3
+ VERSION = "3.1.2"
4
4
  end
5
5
  end
data/sufia-models.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency 'resque', '~> 1.23.0'#, :require => 'resque/server'
37
37
  spec.add_dependency 'resque-pool', '0.3.0'
38
38
  spec.add_dependency 'noid', '~> 0.6.6'
39
- spec.add_dependency 'curationexperts-mailboxer', '0.10.3'
39
+ spec.add_dependency 'mailboxer', '~> 0.11.0'
40
40
  spec.add_dependency 'acts_as_follower', '0.1.1'
41
41
  spec.add_dependency 'paperclip', '~> 3.4.0'
42
42
  spec.add_dependency 'zipruby', '0.3.6'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sufia-models
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Friesen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-20 00:00:00.000000000 Z
11
+ date: 2013-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -157,19 +157,19 @@ dependencies:
157
157
  - !ruby/object:Gem::Version
158
158
  version: 0.6.6
159
159
  - !ruby/object:Gem::Dependency
160
- name: curationexperts-mailboxer
160
+ name: mailboxer
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
- - - '='
163
+ - - ~>
164
164
  - !ruby/object:Gem::Version
165
- version: 0.10.3
165
+ version: 0.11.0
166
166
  type: :runtime
167
167
  prerelease: false
168
168
  version_requirements: !ruby/object:Gem::Requirement
169
169
  requirements:
170
- - - '='
170
+ - - ~>
171
171
  - !ruby/object:Gem::Version
172
- version: 0.10.3
172
+ version: 0.11.0
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: acts_as_follower
175
175
  requirement: !ruby/object:Gem::Requirement
@@ -294,6 +294,7 @@ files:
294
294
  - lib/sufia/models/generic_file/mime_types.rb
295
295
  - lib/sufia/models/generic_file/permissions.rb
296
296
  - lib/sufia/models/generic_file/thumbnail.rb
297
+ - lib/sufia/models/generic_file/visibility.rb
297
298
  - lib/sufia/models/generic_file/web_form.rb
298
299
  - lib/sufia/models/id_service.rb
299
300
  - lib/sufia/models/jobs/active_fedora_pid_based_job.rb