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 +4 -4
- data/app/models/generic_file.rb +0 -13
- data/lib/generators/sufia/models/install_generator.rb +10 -11
- data/lib/sufia/models/engine.rb +0 -2
- data/lib/sufia/models/generic_file.rb +3 -2
- data/lib/sufia/models/generic_file/permissions.rb +2 -17
- data/lib/sufia/models/generic_file/visibility.rb +59 -0
- data/lib/sufia/models/jobs/batch_update_job.rb +1 -15
- data/lib/sufia/models/version.rb +1 -1
- data/sufia-models.gemspec +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e29c38959e535f4f8e74a7882bad04666274b672
|
4
|
+
data.tar.gz: 302f04b6b382cc2edcbd11bf80bd9ea5928f6466
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f709335f5a92ad6fc59b442c4ac92255e378710fa6b071bc62eab05fa001f7a5985452c90781ea08da15346bfdc2384778de07667a45f7c4d7388e6a8b0dbe5
|
7
|
+
data.tar.gz: ce166166966b2686d676887e96f821aaadaca158c8f916748933103e889c74bba39dd4ea72374697998c39db62d47dba52c3dc41108f3d3f4d31def396fceee1
|
data/app/models/generic_file.rb
CHANGED
@@ -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
|
-
|
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 |
|
46
|
-
better_migration_template
|
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
|
-
|
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
|
data/lib/sufia/models/engine.rb
CHANGED
@@ -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.
|
49
|
+
gf.visibility= visibility
|
64
50
|
|
65
51
|
save_tries = 0
|
66
52
|
begin
|
data/lib/sufia/models/version.rb
CHANGED
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 '
|
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.
|
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-
|
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:
|
160
|
+
name: mailboxer
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
|
-
- -
|
163
|
+
- - ~>
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version: 0.
|
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.
|
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
|