fcrepo_admin 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +9 -0
- data/.rspec +1 -0
- data/Gemfile +5 -0
- data/LICENSE +27 -0
- data/README.rdoc +75 -0
- data/Rakefile +22 -0
- data/app/controllers/fcrepo_admin/audit_trail_controller.rb +17 -0
- data/app/controllers/fcrepo_admin/datastreams_controller.rb +29 -0
- data/app/controllers/fcrepo_admin/objects_controller.rb +14 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/mailers/.gitkeep +0 -0
- data/app/models/.gitkeep +0 -0
- data/app/views/fcrepo_admin/audit_trail/index.html.erb +34 -0
- data/app/views/fcrepo_admin/catalog/_datastreams.html.erb +19 -0
- data/app/views/fcrepo_admin/catalog/_show.html.erb +2 -0
- data/app/views/fcrepo_admin/datastreams/_content.html.erb +12 -0
- data/app/views/fcrepo_admin/datastreams/_datastreams.html +18 -0
- data/app/views/fcrepo_admin/datastreams/_profile.html.erb +10 -0
- data/app/views/fcrepo_admin/datastreams/index.html.erb +4 -0
- data/app/views/fcrepo_admin/datastreams/show.html.erb +22 -0
- data/app/views/fcrepo_admin/objects/_more_info.html.erb +6 -0
- data/app/views/fcrepo_admin/objects/_properties.html.erb +8 -0
- data/app/views/fcrepo_admin/objects/show.html.erb +18 -0
- data/config/locales/fcrepo_admin.en.yml +55 -0
- data/config/routes.rb +14 -0
- data/doc/README_FOR_APP +2 -0
- data/fcrepo_admin.gemspec +42 -0
- data/lib/assets/.gitkeep +0 -0
- data/lib/assets/stylesheets/fcrepo_admin/fcrepo_admin.css +4 -0
- data/lib/fcrepo_admin.rb +8 -0
- data/lib/fcrepo_admin/controller_behavior.rb +10 -0
- data/lib/fcrepo_admin/engine.rb +12 -0
- data/lib/fcrepo_admin/solr_document_extension.rb +49 -0
- data/lib/fcrepo_admin/version.rb +3 -0
- data/lib/tasks/.gitkeep +0 -0
- data/lib/tasks/fcrepo_admin.rake +24 -0
- data/script/rails +6 -0
- data/spec/controllers/audit_trail_controller_spec.rb +20 -0
- data/spec/controllers/datastreams_controller_spec.rb +21 -0
- data/spec/factories/fcrepo_admin_factories.rb +20 -0
- data/spec/factories/user_factories.rb +8 -0
- data/spec/features/audit_trail/index.html.erb_spec.rb +11 -0
- data/spec/features/catalog/show.html.erb_spec.rb +21 -0
- data/spec/features/datastreams/show.html.erb_spec.rb +31 -0
- data/spec/features/objects/show.html.erb_spec.rb +29 -0
- data/spec/fixtures/auditable.foxml.xml +110 -0
- data/spec/internal/README.rdoc +261 -0
- data/spec/internal/Rakefile +7 -0
- data/spec/internal/app/assets/javascripts/application.js +16 -0
- data/spec/internal/app/assets/stylesheets/application.css +13 -0
- data/spec/internal/app/assets/stylesheets/blacklight.css.scss +3 -0
- data/spec/internal/app/controllers/application_controller.rb +11 -0
- data/spec/internal/app/controllers/catalog_controller.rb +169 -0
- data/spec/internal/app/helpers/application_helper.rb +2 -0
- data/spec/internal/app/mailers/.gitkeep +0 -0
- data/spec/internal/app/models/.gitkeep +0 -0
- data/spec/internal/app/models/ability.rb +4 -0
- data/spec/internal/app/models/content_model.rb +12 -0
- data/spec/internal/app/models/solr_document.rb +36 -0
- data/spec/internal/app/models/user.rb +26 -0
- data/spec/internal/app/views/catalog/_show_default.html.erb +12 -0
- data/spec/internal/app/views/layouts/application.html.erb +14 -0
- data/spec/internal/config.ru +4 -0
- data/spec/internal/config/application.rb +59 -0
- data/spec/internal/config/boot.rb +10 -0
- data/spec/internal/config/database.yml +25 -0
- data/spec/internal/config/environment.rb +5 -0
- data/spec/internal/config/environments/development.rb +37 -0
- data/spec/internal/config/environments/production.rb +67 -0
- data/spec/internal/config/environments/test.rb +37 -0
- data/spec/internal/config/fedora.yml +12 -0
- data/spec/internal/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/internal/config/initializers/devise.rb +240 -0
- data/spec/internal/config/initializers/hydra_config.rb +34 -0
- data/spec/internal/config/initializers/inflections.rb +15 -0
- data/spec/internal/config/initializers/mime_types.rb +12 -0
- data/spec/internal/config/initializers/secret_token.rb +7 -0
- data/spec/internal/config/initializers/session_store.rb +8 -0
- data/spec/internal/config/initializers/wrap_parameters.rb +14 -0
- data/spec/internal/config/locales/devise.en.yml +59 -0
- data/spec/internal/config/locales/en.yml +5 -0
- data/spec/internal/config/role_map_development.yml +6 -0
- data/spec/internal/config/role_map_test.yml +6 -0
- data/spec/internal/config/routes.rb +6 -0
- data/spec/internal/config/solr.yml +6 -0
- data/spec/internal/db/schema.rb +57 -0
- data/spec/internal/lib/assets/.gitkeep +0 -0
- data/spec/internal/log/.gitkeep +0 -0
- data/spec/internal/public/404.html +26 -0
- data/spec/internal/public/422.html +26 -0
- data/spec/internal/public/500.html +25 -0
- data/spec/internal/public/favicon.ico +0 -0
- data/spec/internal/script/rails +6 -0
- data/spec/spec_helper.rb +45 -0
- metadata +397 -0
data/config/routes.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
FcrepoAdmin::Engine.routes.draw do
|
2
|
+
|
3
|
+
scope :module => "fcrepo_admin" do
|
4
|
+
resources :objects, :only => :show do
|
5
|
+
resources :datastreams, :only => [:index, :show] do
|
6
|
+
member do
|
7
|
+
get 'download'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
resources :audit_trail, :only => :index
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
data/doc/README_FOR_APP
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
|
3
|
+
# Maintain your gem's version:
|
4
|
+
require "fcrepo_admin/version"
|
5
|
+
|
6
|
+
# Describe your gem and declare its dependencies:
|
7
|
+
Gem::Specification.new do |s|
|
8
|
+
s.name = "fcrepo_admin"
|
9
|
+
s.version = FcrepoAdmin::VERSION
|
10
|
+
s.platform = Gem::Platform::RUBY
|
11
|
+
s.authors = ["David Chandek-Stark", "Jim Coble", "Chris Beer", "Justin Coyne"]
|
12
|
+
s.email = ["hydra-tech@googlegroups.com"]
|
13
|
+
s.homepage = "http://projecthydra.org"
|
14
|
+
s.summary = "Hydra-based Fedora Commons repository admin tool."
|
15
|
+
s.description = "A Rails engine for administrative access to a Fedora Commons repository based on the Hydra Project repository application framework."
|
16
|
+
s.license = "BSD Simplified"
|
17
|
+
|
18
|
+
s.required_ruby_version = '>= 1.9.3'
|
19
|
+
|
20
|
+
s.files = `git ls-files`.split("\n")
|
21
|
+
s.test_files = `git ls-files -- spec/*`.split("\n")
|
22
|
+
|
23
|
+
s.extra_rdoc_files = ["LICENSE", "README.rdoc"]
|
24
|
+
|
25
|
+
s.require_paths = ["lib"]
|
26
|
+
|
27
|
+
s.add_dependency "hydra-head", "6.0.0"
|
28
|
+
s.add_dependency "blacklight"
|
29
|
+
s.add_dependency "rails", "~> 3.2"
|
30
|
+
s.add_dependency "mime-types", '~> 1.19'
|
31
|
+
|
32
|
+
s.add_development_dependency "devise"
|
33
|
+
s.add_development_dependency "rspec"
|
34
|
+
s.add_development_dependency "rspec-rails"
|
35
|
+
s.add_development_dependency "capybara"
|
36
|
+
s.add_development_dependency "sqlite3"
|
37
|
+
s.add_development_dependency "factory_girl_rails"
|
38
|
+
s.add_development_dependency "jettywrapper"
|
39
|
+
s.add_development_dependency "jquery-rails"
|
40
|
+
s.add_development_dependency "sass-rails"
|
41
|
+
s.add_development_dependency "bootstrap-sass"
|
42
|
+
end
|
data/lib/assets/.gitkeep
ADDED
File without changes
|
data/lib/fcrepo_admin.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module FcrepoAdmin
|
4
|
+
module SolrDocumentExtension
|
5
|
+
|
6
|
+
def object_profile
|
7
|
+
@object_profile ||= JSON.parse(self[ActiveFedora::Base.profile_solr_name].first)
|
8
|
+
end
|
9
|
+
|
10
|
+
def datastreams
|
11
|
+
object_profile["datastreams"]
|
12
|
+
end
|
13
|
+
|
14
|
+
def has_datastream?(dsID)
|
15
|
+
!datastreams[dsID].blank?
|
16
|
+
end
|
17
|
+
|
18
|
+
def has_admin_policy?
|
19
|
+
!admin_policy_uri.blank?
|
20
|
+
end
|
21
|
+
|
22
|
+
def admin_policy_uri
|
23
|
+
get ActiveFedora::SolrService.solr_name('is_governed_by', :symbol)
|
24
|
+
end
|
25
|
+
|
26
|
+
def admin_policy_pid
|
27
|
+
uri = admin_policy_uri
|
28
|
+
uri &&= ActiveFedora::Base.pids_from_uris(uri)
|
29
|
+
end
|
30
|
+
|
31
|
+
def has_parent?
|
32
|
+
!parent_uri
|
33
|
+
end
|
34
|
+
|
35
|
+
def parent_uri
|
36
|
+
get(ActiveFedora::SolrService.solr_name('is_part_of', :symbol)) || get(ActiveFedora::SolrService.solr_name('is_member_of', :symbol)) || get(ActiveFedora::SolrService.solr_name('is_member_of_collection', :symbol))
|
37
|
+
end
|
38
|
+
|
39
|
+
def parent_pid
|
40
|
+
uri = parent_uri
|
41
|
+
uri &&= ActiveFedora::Base.pids_from_uris(uri)
|
42
|
+
end
|
43
|
+
|
44
|
+
def active_fedora_model
|
45
|
+
get(ActiveFedora::SolrService.solr_name('active_fedora_model', :symbol))
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
data/lib/tasks/.gitkeep
ADDED
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
namespace :fcrepo_admin do
|
2
|
+
namespace :solr do
|
3
|
+
desc "Deletes everything from the Solr index"
|
4
|
+
task :clean => :environment do
|
5
|
+
Blacklight.solr.delete_by_query("*:*")
|
6
|
+
Blacklight.solr.commit
|
7
|
+
end
|
8
|
+
desc "Index a single object in solr specified by PID="
|
9
|
+
task :index => :environment do
|
10
|
+
raise "Must specify a pid. Ex: PID=changeme:12" unless ENV['PID']
|
11
|
+
ActiveFedora::Base.connection_for_pid('foo:1') # Loads Rubydora connection with fake object
|
12
|
+
ActiveFedora::Base.find(ENV['PID'], cast: true).update_index
|
13
|
+
end
|
14
|
+
desc 'Index all objects in the repository (except fedora-system: objects).'
|
15
|
+
task :index_all => :environment do
|
16
|
+
ActiveFedora::Base.connection_for_pid('foo:1') # Loads Rubydora connection with fake object
|
17
|
+
ActiveFedora::Base.fedora_connection[0].connection.search(nil) do |object|
|
18
|
+
if !object.pid.starts_with?('fedora-system:')
|
19
|
+
ActiveFedora::Base.find(object.pid, cast: true).update_index
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/script/rails
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
3
|
+
|
4
|
+
APP_PATH = File.expand_path('../../config/application', __FILE__)
|
5
|
+
require File.expand_path('../../config/boot', __FILE__)
|
6
|
+
require 'rails/commands'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FcrepoAdmin::AuditTrailController do
|
4
|
+
context "#index" do
|
5
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
6
|
+
after { object.delete }
|
7
|
+
it "should render the index template" do
|
8
|
+
get :index, :object_id => object, :use_route => 'fcrepo_admin'
|
9
|
+
response.should render_template(:index)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
context "#index?download=true" do
|
13
|
+
context "object does not respond to audit_trail" do
|
14
|
+
subject { get :index, :object_id => object, :download => 'true', :use_route => 'fcrepo_admin' }
|
15
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
16
|
+
after { object.delete }
|
17
|
+
its(:response_code) { should eq(200) }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
shared_examples "a datastream profile view" do
|
4
|
+
it { should render_template(:show) }
|
5
|
+
end
|
6
|
+
|
7
|
+
describe FcrepoAdmin::DatastreamsController do
|
8
|
+
after { object.delete }
|
9
|
+
context "#show" do
|
10
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
11
|
+
let(:dsid) { "DC" }
|
12
|
+
context "profile information" do
|
13
|
+
subject { get :show, :object_id => object, :id => dsid, :use_route => 'fcrepo_admin' }
|
14
|
+
it { should render_template(:show) }
|
15
|
+
end
|
16
|
+
context "download content" do
|
17
|
+
subject { get :show, :object_id => object, :id => dsid, :download => 'true', :use_route => 'fcrepo_admin' }
|
18
|
+
it { should be_successful }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
|
3
|
+
factory :admin_policy do
|
4
|
+
title "Test APO"
|
5
|
+
permissions [{type: 'group', name: 'public', access: 'read'}]
|
6
|
+
default_permissions [{type: 'group', name: 'public', access: 'read'}]
|
7
|
+
end
|
8
|
+
|
9
|
+
factory :content_model do
|
10
|
+
title "Test Object"
|
11
|
+
permissions [{type: 'group', name: 'public', access: 'read'}]
|
12
|
+
|
13
|
+
trait :has_apo do
|
14
|
+
admin_policy
|
15
|
+
end
|
16
|
+
|
17
|
+
factory :content_model_has_apo, :traits => [:has_apo]
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "audit_trail/index.html.erb" do
|
4
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
5
|
+
after { object.delete }
|
6
|
+
it "should display the audit trail" do
|
7
|
+
visit fcrepo_admin.object_audit_trail_index_path(object)
|
8
|
+
page.should have_content(object.pid)
|
9
|
+
page.should have_link(I18n.t("fcrepo_admin.audit_trail.download"), :href => "#{fcrepo_admin.object_audit_trail_index_path(object)}?download=true")
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "catalog/show.html.erb" do
|
4
|
+
after { object.delete }
|
5
|
+
context "basic object" do
|
6
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
7
|
+
it "should link to all datastreams" do
|
8
|
+
visit catalog_path(object)
|
9
|
+
object.datastreams.reject { |dsid, ds| ds.profile.empty? }.each_key do |dsid|
|
10
|
+
page.should have_link(dsid, :href => fcrepo_admin.object_datastream_path(object, dsid))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
it "should link to its audit trail" do
|
14
|
+
visit catalog_path(object)
|
15
|
+
page.should have_link(I18n.t("fcrepo_admin.audit_trail.title"))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
context "object has admin policy" do
|
19
|
+
it "should link to the APO"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
shared_examples "a datastream show page" do
|
4
|
+
it "should display all attributes of the datastream profile" do
|
5
|
+
object.datastreams[dsid].profile.each do |key, value|
|
6
|
+
expect(subject).to have_content(I18n.t("fcrepo_admin.datastream.profile.#{key}"))
|
7
|
+
expect(subject).to have_content(value)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
it "should have a link to download the datastream content" do
|
11
|
+
expect(subject).to have_link(I18n.t("fcrepo_admin.datastream.download"), :href => fcrepo_admin.download_object_datastream_path(object, dsid))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
shared_examples "an object having datastream show pages" do
|
16
|
+
it_behaves_like "a datastream show page" do
|
17
|
+
let(:dsid) { "DC" }
|
18
|
+
end
|
19
|
+
it_behaves_like "a datastream show page" do
|
20
|
+
let(:dsid) { "RELS-EXT" }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "datastreams/show.html.erb" do
|
25
|
+
subject { page }
|
26
|
+
before { visit fcrepo_admin.object_datastream_path(object, dsid) }
|
27
|
+
after { object.delete }
|
28
|
+
it_behaves_like "an object having datastream show pages" do
|
29
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "objects/show.html.erb" do
|
4
|
+
after { object.delete }
|
5
|
+
context "basic object" do
|
6
|
+
let(:object) { FactoryGirl.create(:content_model) }
|
7
|
+
it "should display the object's properties" do
|
8
|
+
visit fcrepo_admin.object_path(object)
|
9
|
+
page.should have_content(I18n.t("fcrepo_admin.object.properties.keys.state"))
|
10
|
+
page.should have_content(I18n.t("fcrepo_admin.object.properties.keys.create_date"))
|
11
|
+
page.should have_content(I18n.t("fcrepo_admin.object.properties.keys.modified_date"))
|
12
|
+
page.should have_content(I18n.t("fcrepo_admin.object.properties.keys.owner_id"))
|
13
|
+
page.should have_content(I18n.t("fcrepo_admin.object.properties.keys.label"))
|
14
|
+
end
|
15
|
+
it "should link to all datastreams" do
|
16
|
+
visit fcrepo_admin.object_path(object)
|
17
|
+
object.datastreams.reject { |dsid, ds| ds.profile.empty? }.each_key do |dsid|
|
18
|
+
page.should have_link(dsid, :href => fcrepo_admin.object_datastream_path(object, dsid))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
it "should link to its audit trail" do
|
22
|
+
visit fcrepo_admin.object_path(object)
|
23
|
+
page.should have_link(I18n.t("fcrepo_admin.audit_trail.title"), :href => fcrepo_admin.object_audit_trail_index_path(object))
|
24
|
+
end
|
25
|
+
context "object governed by an admin policy" do
|
26
|
+
it "should link to the APO"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<foxml:digitalObject VERSION="1.1" PID="changeme:242"
|
3
|
+
xmlns:foxml="info:fedora/fedora-system:def/foxml#"
|
4
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
5
|
+
xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
|
6
|
+
<foxml:objectProperties>
|
7
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/>
|
8
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#label" VALUE=""/>
|
9
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#ownerId" VALUE="fedoraAdmin"/>
|
10
|
+
<foxml:property NAME="info:fedora/fedora-system:def/model#createdDate" VALUE="2013-02-25T16:43:05.802Z"/>
|
11
|
+
<foxml:property NAME="info:fedora/fedora-system:def/view#lastModifiedDate" VALUE="2013-02-25T16:43:06.379Z"/>
|
12
|
+
</foxml:objectProperties>
|
13
|
+
<foxml:datastream ID="AUDIT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="false">
|
14
|
+
<foxml:datastreamVersion ID="AUDIT.0" LABEL="Audit Trail for this object" CREATED="2013-02-25T16:43:05.802Z" MIMETYPE="text/xml" FORMAT_URI="info:fedora/fedora-system:format/xml.fedora.audit">
|
15
|
+
<foxml:xmlContent>
|
16
|
+
<audit:auditTrail xmlns:audit="info:fedora/fedora-system:def/audit#">
|
17
|
+
<audit:record ID="AUDREC1">
|
18
|
+
<audit:process type="Fedora API-M"/>
|
19
|
+
<audit:action>addDatastream</audit:action>
|
20
|
+
<audit:componentID>RELS-EXT</audit:componentID>
|
21
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
22
|
+
<audit:date>2013-02-25T16:43:06.219Z</audit:date>
|
23
|
+
<audit:justification></audit:justification>
|
24
|
+
</audit:record>
|
25
|
+
<audit:record ID="AUDREC2">
|
26
|
+
<audit:process type="Fedora API-M"/>
|
27
|
+
<audit:action>addDatastream</audit:action>
|
28
|
+
<audit:componentID>descMetadata</audit:componentID>
|
29
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
30
|
+
<audit:date>2013-02-25T16:43:06.315Z</audit:date>
|
31
|
+
<audit:justification></audit:justification>
|
32
|
+
</audit:record>
|
33
|
+
<audit:record ID="AUDREC3">
|
34
|
+
<audit:process type="Fedora API-M"/>
|
35
|
+
<audit:action>addDatastream</audit:action>
|
36
|
+
<audit:componentID>rightsMetadata</audit:componentID>
|
37
|
+
<audit:responsibility>fedoraAdmin</audit:responsibility>
|
38
|
+
<audit:date>2013-02-25T16:43:06.379Z</audit:date>
|
39
|
+
<audit:justification></audit:justification>
|
40
|
+
</audit:record>
|
41
|
+
</audit:auditTrail>
|
42
|
+
</foxml:xmlContent>
|
43
|
+
</foxml:datastreamVersion>
|
44
|
+
</foxml:datastream>
|
45
|
+
<foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
46
|
+
<foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2013-02-25T16:43:05.802Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="341">
|
47
|
+
<foxml:contentDigest TYPE="SHA-256" DIGEST="eb075bf6da5903e54464631dc998f66f95bffde9f4137132796457d31de5cd44"/>
|
48
|
+
<foxml:xmlContent>
|
49
|
+
<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
|
50
|
+
<dc:identifier>changeme:242</dc:identifier>
|
51
|
+
</oai_dc:dc>
|
52
|
+
</foxml:xmlContent>
|
53
|
+
</foxml:datastreamVersion>
|
54
|
+
</foxml:datastream>
|
55
|
+
<foxml:datastream ID="RELS-EXT" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
56
|
+
<foxml:datastreamVersion ID="RELS-EXT.0" LABEL="Fedora Object-to-Object Relationship Metadata" CREATED="2013-02-25T16:43:06.219Z" MIMETYPE="application/rdf+xml" SIZE="284">
|
57
|
+
<foxml:contentDigest TYPE="SHA-256" DIGEST="013d2229de7bd91c61256563eff1b475cd1e8f7e45a2f15de5a36f2d20ec2852"/>
|
58
|
+
<foxml:xmlContent>
|
59
|
+
<rdf:RDF xmlns:ns0="info:fedora/fedora-system:def/model#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
60
|
+
<rdf:Description rdf:about="info:fedora/changeme:242">
|
61
|
+
<ns0:hasModel rdf:resource="info:fedora/afmodel:TestModel"></ns0:hasModel>
|
62
|
+
</rdf:Description>
|
63
|
+
</rdf:RDF>
|
64
|
+
</foxml:xmlContent>
|
65
|
+
</foxml:datastreamVersion>
|
66
|
+
</foxml:datastream>
|
67
|
+
<foxml:datastream ID="descMetadata" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
68
|
+
<foxml:datastreamVersion ID="descMetadata.0" LABEL="" CREATED="2013-02-25T16:43:06.315Z" MIMETYPE="text/xml" SIZE="215">
|
69
|
+
<foxml:contentDigest TYPE="SHA-256" DIGEST="3f588eca58dea77b31c9ed0b90e4560288a419856c4bb744fab9c7fe8749ad19"/>
|
70
|
+
<foxml:xmlContent>
|
71
|
+
<dc xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
72
|
+
<dcterms:title>Fcrepo Test Object</dcterms:title>
|
73
|
+
<dcterms:identifier>test00001</dcterms:identifier>
|
74
|
+
</dc>
|
75
|
+
</foxml:xmlContent>
|
76
|
+
</foxml:datastreamVersion>
|
77
|
+
</foxml:datastream>
|
78
|
+
<foxml:datastream ID="rightsMetadata" STATE="A" CONTROL_GROUP="X" VERSIONABLE="true">
|
79
|
+
<foxml:datastreamVersion ID="rightsMetadata.0" LABEL="" CREATED="2013-02-25T16:43:06.379Z" MIMETYPE="text/xml" SIZE="596">
|
80
|
+
<foxml:contentDigest TYPE="SHA-256" DIGEST="472f8634b31bd425dadd9206531ab02a70c08c22e4250bb2b0d3dd0314cfb240"/>
|
81
|
+
<foxml:xmlContent>
|
82
|
+
<rightsMetadata xmlns="http://hydra-collab.stanford.edu/schemas/rightsMetadata/v1" version="0.1">
|
83
|
+
<copyright>
|
84
|
+
<human type="title"></human>
|
85
|
+
<human type="description"></human>
|
86
|
+
<machine type="uri"></machine>
|
87
|
+
</copyright>
|
88
|
+
<access type="discover">
|
89
|
+
<human></human>
|
90
|
+
<machine></machine>
|
91
|
+
</access>
|
92
|
+
<access type="read">
|
93
|
+
<human></human>
|
94
|
+
<machine>
|
95
|
+
<group>public</group>
|
96
|
+
</machine>
|
97
|
+
</access>
|
98
|
+
<access type="edit">
|
99
|
+
<human></human>
|
100
|
+
<machine></machine>
|
101
|
+
</access>
|
102
|
+
<embargo>
|
103
|
+
<human></human>
|
104
|
+
<machine></machine>
|
105
|
+
</embargo>
|
106
|
+
</rightsMetadata>
|
107
|
+
</foxml:xmlContent>
|
108
|
+
</foxml:datastreamVersion>
|
109
|
+
</foxml:datastream>
|
110
|
+
</foxml:digitalObject>
|