ddr-models 1.8.1 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/app/controllers/users/omniauth_callbacks_controller.rb +11 -0
  4. data/app/controllers/users/sessions_controller.rb +7 -0
  5. data/app/controllers/users/sessions_controller.rb~ +11 -0
  6. data/config/initializers/devise.rb +15 -1
  7. data/config/routes.rb +4 -0
  8. data/lib/ddr/auth/user.rb +17 -4
  9. data/lib/ddr/managers/#index_manager.rb# +21 -0
  10. data/lib/ddr/models/#index_fields.rb# +13 -0
  11. data/lib/ddr/models/engine.rb +3 -22
  12. data/lib/ddr/models/version.rb +1 -1
  13. data/spec/dummy/config/routes.rb +0 -54
  14. data/spec/dummy/db/development.sqlite3 +0 -0
  15. data/spec/dummy/log/development.log +4702 -0
  16. data/spec/dummy/log/production.log +5 -0
  17. data/spec/dummy/log/test.log +50543 -0
  18. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  19. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  20. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  21. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  22. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  23. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  24. metadata +44 -26
  25. data/db/migrate/20150109192134_drop_workflow_state.rb~ +0 -11
  26. data/db/migrate/20150110023410_drop_workflow_states.rb~ +0 -4
  27. data/lib/ddr/datastreams/admin_metadata_datastream.rb~ +0 -13
  28. data/lib/ddr/index.rb~ +0 -8
  29. data/lib/ddr/managers/index_manager.rb~ +0 -7
  30. data/lib/ddr/managers/manager.rb~ +0 -14
  31. data/lib/ddr/managers/role_manager.rb~ +0 -21
  32. data/lib/ddr/managers/workflow_manager.rb~ +0 -33
  33. data/lib/ddr/models/#index.rb# +0 -25
  34. data/lib/ddr/models/#indexing.rb# +0 -108
  35. data/lib/ddr/models/has_admin_metadata.rb~ +0 -34
  36. data/lib/ddr/vocab.rb~ +0 -9
  37. data/lib/ddr/vocab/workflow.rb~ +0 -7
  38. data/spec/models/has_admin_metadata_spec.rb~ +0 -144
@@ -1,34 +0,0 @@
1
- module Ddr
2
- module Models
3
- module HasAdminMetadata
4
- extend ActiveSupport::Concern
5
-
6
- included do
7
- has_metadata "adminMetadata",
8
- type: Ddr::Datastreams::AdminMetadataDatastream,
9
- versionable: true,
10
- control_group: "M"
11
-
12
- has_attributes :permanent_id, :permanent_url,
13
- datastream: "adminMetadata", multiple: false
14
-
15
- delegate :principal_has_role?, to: :roles
16
-
17
- after_create :assign_permanent_id!, if: "Ddr::Models.auto_assign_permanent_ids"
18
- end
19
-
20
- def permanent_id_manager
21
- @permanent_id_manager ||= Ddr::Managers::PermanentIdManager.new(self)
22
- end
23
-
24
- def roles
25
- @roles || Ddr::Managers::RoleMananger.new(self)
26
- end
27
-
28
- def assign_permanent_id!
29
- permanent_id_manager.assign_later
30
- end
31
-
32
- end
33
- end
34
- end
data/lib/ddr/vocab.rb~ DELETED
@@ -1,9 +0,0 @@
1
- module Ddr
2
- module Vocab
3
- extend ActiveSupport::Autoload
4
-
5
- autoload :PREMIS
6
- autoload :Preservation
7
-
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- module Ddr
2
- module Vocab
3
- class Workflow < RDF::StrictVocabulary("http://repository.lib.duke.edu/vocab/workflow/")
4
- term :published, label: "Published"
5
- end
6
- end
7
- end
@@ -1,144 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Ddr
4
- module Models
5
- RSpec.describe HasAdminMetadata, type: :model do
6
-
7
- describe "permanent id and permanent url" do
8
-
9
- before(:all) do
10
- class PermanentlyIdentifiable < ActiveFedora::Base
11
- include Ddr::Models::Describable
12
- include Ddr::Models::Indexing
13
- include Ddr::Models::HasWorkflow
14
- include Ddr::Models::HasAdminMetadata
15
- include Ddr::Models::EventLoggable
16
- end
17
- end
18
-
19
- after(:all) do
20
- Ddr::Models.send(:remove_const, :PermanentlyIdentifiable)
21
- end
22
-
23
- subject { PermanentlyIdentifiable.new }
24
-
25
- describe "permanent_id" do
26
- describe "when a permanent id has not been assigned" do
27
- it "should be nil" do
28
- expect(subject.permanent_id).to be_nil
29
- end
30
- end
31
- end
32
-
33
- describe "object lifecycle" do
34
- context "when created" do
35
- context "and auto-assignment is enabled" do
36
- before { allow(Ddr::Models).to receive(:auto_assign_permanent_ids) { true } }
37
- it "should assign a permanent id" do
38
- expect_any_instance_of(PermanentlyIdentifiable).to receive(:assign_permanent_id!) { nil }
39
- PermanentlyIdentifiable.create
40
- end
41
- end
42
- context "and auto-assignment is disabled" do
43
- before { allow(Ddr::Models).to receive(:auto_assign_permanent_ids) { false } }
44
- it "should not assign a permanent id" do
45
- expect_any_instance_of(PermanentlyIdentifiable).not_to receive(:assign_permanent_id!)
46
- PermanentlyIdentifiable.create
47
- end
48
- end
49
- end
50
- context "when saved" do
51
- context "and auto-assignment is enabled" do
52
- before { allow(Ddr::Models).to receive(:auto_assign_permanent_ids) { true } }
53
- it "should assign a permanent id once" do
54
- expect(subject).to receive(:assign_permanent_id!).once { nil }
55
- subject.save
56
- subject.title = ["New Title"]
57
- subject.save
58
- end
59
- end
60
- context "and auto-assignment is disabled" do
61
- before { allow(Ddr::Models).to receive(:auto_assign_permanent_ids) { false } }
62
- it "should not assign a permanent id" do
63
- expect(subject).not_to receive(:assign_permanent_id!)
64
- subject.save
65
- end
66
- end
67
- end
68
- end
69
-
70
- describe "#assign_permanent_id!" do
71
- it "should assign the permanent id later" do
72
- expect(subject.permanent_id_manager).to receive(:assign_later) { nil }
73
- subject.assign_permanent_id!
74
- end
75
- end
76
-
77
- describe "events" do
78
- before { allow(Ddr::Models).to receive(:auto_assign_permanent_ids) { true } }
79
- context "when the operation succeeds" do
80
- let(:stub_identifier) { double(id: "ark:/99999/fk4zzz", metadata: "_target: http://example.com") }
81
- before { allow_any_instance_of(Ddr::Managers::PermanentIdManager).to receive(:mint) { stub_identifier } }
82
- it "should create a success event" do
83
- expect { subject.save }.to change { subject.update_events.count }.by(1)
84
- end
85
- end
86
- context "when there's an exception" do
87
- before { allow(Ezid::Identifier).to receive(:create).and_raise(Ezid::Error) }
88
- it "should create a failure event" do
89
- begin
90
- subject.save
91
- rescue Ezid::Error
92
- end
93
- expect(subject.update_events.last).to be_failure
94
- end
95
- end
96
- end
97
-
98
- describe "indexing" do
99
- let(:permanent_id) { "ark:/99999/fk4zzz" }
100
- let(:permanent_url) { "http://id.library.duke.edu/ark:/99999/fk4zzz" }
101
- before do
102
- subject.permanent_id = permanent_id
103
- subject.permanent_url = permanent_url
104
- end
105
- it "should index the permanent id value" do
106
- expect(subject.to_solr[Ddr::IndexFields::PERMANENT_ID]).to eq(permanent_id)
107
- end
108
- it "should index the permanent url" do
109
- expect(subject.to_solr[Ddr::IndexFields::PERMANENT_URL]).to eq(permanent_url)
110
- end
111
- end
112
-
113
- end
114
-
115
- describe "role assignments" do
116
-
117
- before(:all) do
118
- class RoleAssignable < ActiveFedora::Base
119
- include HasRoleAssignments
120
- end
121
- end
122
-
123
- after(:all) do
124
- Ddr::Models.send(:remove_const, :RoleAssignable)
125
- end
126
-
127
- subject { RoleAssignable.new }
128
-
129
- describe "#principal_has_role?" do
130
- it "should respond when given a list of principals and a valid role" do
131
- expect { subject.principal_has_role?(["bob", "admins"], :administrator) }.not_to raise_error
132
- end
133
- it "should respond when given a principal name and a valid role" do
134
- expect { subject.principal_has_role?("bob", :administrator) }.not_to raise_error
135
- end
136
- it "should raise an error when given an invalid role" do
137
- expect { subject.principal_has_role?("bob", :foo) }.to raise_error
138
- end
139
- end
140
- end
141
-
142
- end
143
- end
144
- end