sufia-models 3.1.0 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/sufia/models/install_generator.rb +99 -0
  3. data/lib/generators/sufia/models/templates/config/clamav.rb +1 -0
  4. data/lib/generators/sufia/models/templates/config/mailboxer.rb +17 -0
  5. data/lib/generators/sufia/models/templates/config/redis.yml +6 -0
  6. data/lib/generators/sufia/models/templates/config/redis_config.rb +32 -0
  7. data/lib/generators/sufia/models/templates/config/resque_admin.rb +10 -0
  8. data/lib/generators/sufia/models/templates/config/resque_config.rb +5 -0
  9. data/lib/generators/sufia/models/templates/config/setup_mail.rb +3 -0
  10. data/lib/generators/sufia/models/templates/config/sufia.rb +81 -0
  11. data/lib/generators/sufia/models/templates/migrations/acts_as_follower_migration.rb +17 -0
  12. data/lib/generators/sufia/models/templates/migrations/add_avatars_to_users.rb +9 -0
  13. data/lib/generators/sufia/models/templates/migrations/add_groups_to_users.rb +11 -0
  14. data/lib/generators/sufia/models/templates/migrations/add_ldap_attrs_to_user.rb +27 -0
  15. data/lib/generators/sufia/models/templates/migrations/add_social_to_users.rb +13 -0
  16. data/lib/generators/sufia/models/templates/migrations/create_checksum_audit_logs.rb +20 -0
  17. data/lib/generators/sufia/models/templates/migrations/create_local_authorities.rb +50 -0
  18. data/lib/generators/sufia/models/templates/migrations/create_single_use_links.rb +12 -0
  19. data/lib/generators/sufia/models/templates/migrations/create_trophies.rb +10 -0
  20. data/lib/generators/sufia/models/templates/migrations/create_version_committers.rb +15 -0
  21. data/lib/sufia/models/jobs/batch_update_job.rb +2 -2
  22. data/lib/sufia/models/version.rb +1 -1
  23. metadata +21 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9476084b14b4f2ae7d223df7c2fa01adfe908d2b
4
- data.tar.gz: 13905aa01d70e375b30ab10ab9b1976b64370076
3
+ metadata.gz: 1f262e81abc28d0f72840dbdc78a95e3b6d52b57
4
+ data.tar.gz: 1f94f581db6d3c3bdfe2b7853ae8835a14d884e4
5
5
  SHA512:
6
- metadata.gz: 12b4d9d871804e7627179916e96e9b811589db27bdfdec2b826800e5b0cacb736d13994081e31118f06c3d93a4a4a4a7a86fab4dc1c686c2e8ebb76ff9a8b0b8
7
- data.tar.gz: e46ccc9c4efc212f32cefea6dad8bc97cb90bd7b057f6c335371042c76f46af36bcb9d27ca59bad3a3365c58b31e58c4c46b1f1fc3154a3dbc3516acae02af2d
6
+ metadata.gz: 10168f401439a85afcd7cd6e99069f803a2541ed5558002403951082991c36016de287d8cdf37dec099bb5bb203a42310a8bad75f32c5c06059113cd2e2c8b6c
7
+ data.tar.gz: 55243f46216539e011da9fe4ccb69481394cc29c66459ea9b5599523526c95f1ffd14b80279f92524376c544a5eb3eae10f4eef1ece20e8a3fdf0eb69d135cdb
@@ -0,0 +1,99 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'rails/generators'
3
+ require 'rails/generators/migration'
4
+
5
+ class Sufia::Models::InstallGenerator < Rails::Generators::Base
6
+ include Rails::Generators::Migration
7
+
8
+ source_root File.expand_path('../templates', __FILE__)
9
+
10
+ argument :model_name, :type => :string , :default => "user"
11
+ desc """
12
+ This generator makes the following changes to your application:
13
+ 1. Creates several database migrations if they do not exist in /db/migrate
14
+ 2. Adds user behavior to the user model
15
+ 3. Creates the sufia.rb configuration file
16
+ 4. Adds Sufia::SolrDocumentBehavior to app/models/solr_document.rb
17
+ 5. Generates mailboxer
18
+ """
19
+
20
+ # Implement the required interface for Rails::Generators::Migration.
21
+ # taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
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
26
+ @prev_migration_nr += 1
27
+ end
28
+ @prev_migration_nr.to_s
29
+ end
30
+
31
+ # Setup the database migrations
32
+ def copy_migrations
33
+ # Can't get this any more DRY, because we need this order.
34
+ [
35
+ "acts_as_follower_migration.rb",
36
+ "add_social_to_users.rb",
37
+ "create_single_use_links.rb",
38
+ "add_ldap_attrs_to_user.rb",
39
+ "add_avatars_to_users.rb",
40
+ "create_checksum_audit_logs.rb",
41
+ "create_version_committers.rb",
42
+ "add_groups_to_users.rb",
43
+ "create_local_authorities.rb",
44
+ "create_trophies.rb"
45
+ ].each do |f|
46
+ better_migration_template f
47
+ end
48
+ end
49
+
50
+ # Add behaviors to the user model
51
+ def inject_sufia_user_behavior
52
+ file_path = "app/models/#{model_name.underscore}.rb"
53
+ if File.exists?(file_path)
54
+ inject_into_class file_path, model_name.classify do
55
+ "# Connects this user object to Sufia behaviors. " +
56
+ "\n include Sufia::User\n"
57
+ end
58
+ else
59
+ puts " \e[31mFailure\e[0m Sufia requires a user object. This generators assumes that the model is defined in the file #{file_path}, which does not exist. If you used a different name, please re-run the generator and provide that name as an argument. Such as \b rails -g sufia client"
60
+ end
61
+ end
62
+
63
+ def create_configuration_files
64
+ copy_file "config/sufia.rb", "config/initializers/sufia.rb"
65
+ copy_file "config/redis.yml", "config/redis.yml"
66
+ copy_file "config/redis_config.rb", "config/initializers/redis_config.rb"
67
+ copy_file "config/resque_admin.rb", "config/initializers/resque_admin.rb"
68
+ copy_file "config/resque_config.rb", "config/initializers/resque_config.rb"
69
+ end
70
+
71
+ # Add behaviors to the SolrDocument model
72
+ def inject_sufia_solr_document_behavior
73
+ file_path = "app/models/solr_document.rb"
74
+ if File.exists?(file_path)
75
+ inject_into_class file_path, "SolrDocument" do
76
+ " # Adds Sufia behaviors to the SolrDocument.\n" +
77
+ " include Sufia::SolrDocumentBehavior\n"
78
+ end
79
+ else
80
+ puts " \e[31mFailure\e[0m Sufia requires a SolrDocument object. This generators assumes that the model is defined in the file #{file_path}, which does not exist."
81
+ end
82
+ end
83
+
84
+ def install_mailboxer
85
+ generate "mailboxer:install"
86
+ end
87
+
88
+ private
89
+
90
+ 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
97
+ end
98
+
99
+ end
@@ -0,0 +1 @@
1
+ ClamAV.instance.loaddb() if defined? ClamAV
@@ -0,0 +1,17 @@
1
+ Mailboxer.setup do |config|
2
+
3
+ #Configures if you applications uses or no the email sending for Notifications and Messages
4
+ config.uses_emails = true
5
+
6
+ #Configures the default from for the email sent for Messages and Notifications of Mailboxer
7
+ config.default_from = "no-reply@mailboxer.com"
8
+
9
+ #Configures the methods needed by mailboxer
10
+ config.email_method = :mailboxer_email
11
+ config.name_method = :name
12
+
13
+ #Configures if you use or not a search engine and wich one are you using
14
+ #Supported enignes: [:solr,:sphinx]
15
+ config.search_enabled = false
16
+ config.search_engine = :solr
17
+ end
@@ -0,0 +1,6 @@
1
+ development:
2
+ host: localhost
3
+ port: 6379
4
+ test:
5
+ host: localhost
6
+ port: 6379
@@ -0,0 +1,32 @@
1
+ if defined?(PhusionPassenger)
2
+ PhusionPassenger.on_event(:starting_worker_process) do |forked|
3
+ # We're in smart spawning mode.
4
+ if forked
5
+ # Re-establish redis connection
6
+ require 'redis'
7
+ config = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access
8
+
9
+ # The important two lines
10
+ $redis.client.disconnect if $redis
11
+ $redis = Redis.new(host: config[:host], port: config[:port], thread_safe: true) rescue nil
12
+ Resque.redis = $redis
13
+ Resque.redis.client.reconnect if Resque.redis
14
+ end
15
+ end
16
+ else
17
+ config = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access
18
+ $redis = Redis.new(host: config[:host], port: config[:port], thread_safe: true) rescue nil
19
+ end
20
+
21
+
22
+ # Code borrowed from Obie's Redis patterns talk at RailsConf'12
23
+ Nest.class_eval do
24
+ def initialize(key, redis=$redis)
25
+ super(key.to_param)
26
+ @redis = redis
27
+ end
28
+
29
+ def [](key)
30
+ self.class.new("#{self}:#{key.to_param}", @redis)
31
+ end
32
+ end
@@ -0,0 +1,10 @@
1
+ module Sufia
2
+ class ResqueAdmin
3
+ def self.matches?(request)
4
+ current_user = request.env['warden'].user
5
+ return false if current_user.blank?
6
+ # TODO code a group here that makes sense
7
+ #current_user.groups.include? 'umg/up.dlt.scholarsphere-admin'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ config = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'redis.yml'))).result)[Rails.env].with_indifferent_access
2
+ Resque.redis = Redis.new(host: config[:host], port: config[:port], thread_safe: true)
3
+
4
+ Resque.inline = Rails.env.test?
5
+ Resque.redis.namespace = "#{Sufia.config.id_namespace}:#{Rails.env}"
@@ -0,0 +1,3 @@
1
+ ActionMailer::Base.smtp_settings = {
2
+ :address => "smtp.psu.edu"
3
+ }
@@ -0,0 +1,81 @@
1
+ # Returns an array containing the vhost 'CoSign service' value and URL
2
+ Sufia.config do |config|
3
+
4
+ config.fits_to_desc_mapping= {
5
+ :file_title => :title,
6
+ :file_author => :creator
7
+ }
8
+
9
+ # Specify a different template for your repositories unique identifiers
10
+ # config.noid_template = ".reeddeeddk"
11
+
12
+ config.max_days_between_audits = 7
13
+
14
+ config.cc_licenses = {
15
+ 'Attribution 3.0 United States' => 'http://creativecommons.org/licenses/by/3.0/us/',
16
+ 'Attribution-ShareAlike 3.0 United States' => 'http://creativecommons.org/licenses/by-sa/3.0/us/',
17
+ 'Attribution-NonCommercial 3.0 United States' => 'http://creativecommons.org/licenses/by-nc/3.0/us/',
18
+ 'Attribution-NoDerivs 3.0 United States' => 'http://creativecommons.org/licenses/by-nd/3.0/us/',
19
+ 'Attribution-NonCommercial-NoDerivs 3.0 United States' => 'http://creativecommons.org/licenses/by-nc-nd/3.0/us/',
20
+ 'Attribution-NonCommercial-ShareAlike 3.0 United States' => 'http://creativecommons.org/licenses/by-nc-sa/3.0/us/',
21
+ 'Public Domain Mark 1.0' => 'http://creativecommons.org/publicdomain/mark/1.0/',
22
+ 'CC0 1.0 Universal' => 'http://creativecommons.org/publicdomain/zero/1.0/',
23
+ 'All rights reserved' => 'All rights reserved'
24
+ }
25
+
26
+ config.cc_licenses_reverse = Hash[*config.cc_licenses.to_a.flatten.reverse]
27
+
28
+ config.resource_types = {
29
+ "Article" => "Article",
30
+ "Audio" => "Audio",
31
+ "Book" => "Book",
32
+ "Capstone Project" => "Capstone Project",
33
+ "Conference Proceeding" => "Conference Proceeding",
34
+ "Dataset" => "Dataset",
35
+ "Dissertation" => "Dissertation",
36
+ "Image" => "Image",
37
+ "Journal" => "Journal",
38
+ "Map or Cartographic Material" => "Map or Cartographic Material",
39
+ "Masters Thesis" => "Masters Thesis",
40
+ "Part of Book" => "Part of Book",
41
+ "Poster" => "Poster",
42
+ "Presentation" => "Presentation",
43
+ "Project" => "Project",
44
+ "Report" => "Report",
45
+ "Research Paper" => "Research Paper",
46
+ "Software or Program Code" => "Software or Program Code",
47
+ "Video" => "Video",
48
+ "Other" => "Other",
49
+ }
50
+
51
+ config.permission_levels = {
52
+ "Choose Access"=>"none",
53
+ "View/Download" => "read",
54
+ "Edit" => "edit"
55
+ }
56
+
57
+ config.owner_permission_levels = {
58
+ "Edit" => "edit"
59
+ }
60
+
61
+ config.queue = Sufia::Resque::Queue
62
+
63
+ # Map hostnames onto Google Analytics tracking IDs
64
+ # config.google_analytics_id = 'UA-99999999-1'
65
+
66
+
67
+ # Where to store tempfiles, leave blank for the system temp directory (e.g. /tmp)
68
+ # config.temp_file_base = '/home/developer1'
69
+
70
+ # If you have ffmpeg installed and want to transcode audio and video uncomment this line
71
+ # config.enable_ffmpeg = true
72
+
73
+ # Specify the Fedora pid prefix:
74
+ # config.id_namespace = "sufia"
75
+
76
+ # Specify the path to the file characterization tool:
77
+ # config.fits_path = "fits.sh"
78
+
79
+ end
80
+
81
+ Date::DATE_FORMATS[:standard] = "%m/%d/%Y"
@@ -0,0 +1,17 @@
1
+ class ActsAsFollowerMigration < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :follows, :force => true do |t|
4
+ t.references :followable, :polymorphic => true, :null => false
5
+ t.references :follower, :polymorphic => true, :null => false
6
+ t.boolean :blocked, :default => false, :null => false
7
+ t.timestamps
8
+ end
9
+
10
+ add_index :follows, ["follower_id", "follower_type"], :name => "fk_follows"
11
+ add_index :follows, ["followable_id", "followable_type"], :name => "fk_followables"
12
+ end
13
+
14
+ def self.down
15
+ drop_table :follows
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ class AddAvatarsToUsers < ActiveRecord::Migration
2
+ def self.up
3
+ add_attachment :users, :avatar
4
+ end
5
+
6
+ def self.down
7
+ remove_attachment :users, :avatar
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ class AddGroupsToUsers < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :users, :group_list, :text
4
+ add_column :users, :groups_last_update, :datetime
5
+ end
6
+
7
+ def self.down
8
+ remove_column :users, :group_list
9
+ remove_column :users, :groups_last_update
10
+ end
11
+ end
@@ -0,0 +1,27 @@
1
+ class AddLdapAttrsToUser < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :users, :display_name, :string
4
+ add_column :users, :address, :string
5
+ add_column :users, :admin_area, :string
6
+ add_column :users, :department, :string
7
+ add_column :users, :title, :string
8
+ add_column :users, :office, :string
9
+ add_column :users, :chat_id, :string
10
+ add_column :users, :website, :string
11
+ add_column :users, :affiliation, :string
12
+ add_column :users, :telephone, :string
13
+ end
14
+
15
+ def self.down
16
+ remove_column :users, :display_name
17
+ remove_column :users, :address
18
+ remove_column :users, :admin_area
19
+ remove_column :users, :department
20
+ remove_column :users, :title
21
+ remove_column :users, :office
22
+ remove_column :users, :chat_id
23
+ remove_column :users, :website
24
+ remove_column :users, :affiliation
25
+ remove_column :users, :telephone
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ class AddSocialToUsers < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :users, :facebook_handle, :string
4
+ add_column :users, :twitter_handle, :string
5
+ add_column :users, :googleplus_handle, :string
6
+ end
7
+
8
+ def self.down
9
+ remove_column :users, :facebook_handle, :string
10
+ remove_column :users, :twitter_handle, :string
11
+ remove_column :users, :googleplus_handle, :string
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ class CreateChecksumAuditLogs < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :checksum_audit_logs do |t|
4
+ t.string :pid
5
+ t.string :dsid
6
+ t.string :version
7
+ t.integer :pass
8
+ t.string :expected_result
9
+ t.string :actual_result
10
+ t.timestamps
11
+ end
12
+ add_index :checksum_audit_logs, [:pid, :dsid], :name=>'by_pid_and_dsid', :order => {:created_at => "DESC" }
13
+
14
+ end
15
+
16
+ def self.down
17
+ remove_index(:checksum_audit_logs, :name => 'by_pid_and_dsid')
18
+ drop_table :checksum_audit_logs
19
+ end
20
+ end
@@ -0,0 +1,50 @@
1
+ class CreateLocalAuthorities < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :local_authority_entries, :force => true do |t|
4
+ t.integer :local_authority_id
5
+ t.string :label
6
+ t.string :uri
7
+ end
8
+
9
+ create_table :local_authorities, :force => true do |t|
10
+ t.string :name, :unique => true
11
+ end
12
+
13
+ create_table :domain_terms, :force => true do |t|
14
+ t.string :model
15
+ t.string :term
16
+ end
17
+
18
+ create_table :domain_terms_local_authorities, :id => false do |t|
19
+ t.integer :domain_term_id, :foreign_key => true
20
+ t.integer :local_authority_id, :foreign_key => true
21
+ end
22
+
23
+ create_table :subject_local_authority_entries, :force => true do |t|
24
+ t.string :label
25
+ t.string :lowerLabel
26
+ t.string :url
27
+ end
28
+
29
+ add_index :local_authority_entries, [:local_authority_id, :label], :name => 'entries_by_term_and_label'
30
+ add_index :local_authority_entries, [:local_authority_id, :uri], :name => 'entries_by_term_and_uri'
31
+ add_index :domain_terms, [:model, :term], :name => 'terms_by_model_and_term'
32
+ add_index :domain_terms_local_authorities, [:local_authority_id, :domain_term_id], :name => 'dtla_by_ids1'
33
+ add_index :domain_terms_local_authorities, [:domain_term_id, :local_authority_id], :name => 'dtla_by_ids2'
34
+ add_index :subject_local_authority_entries, [:lowerLabel], :name => 'entries_by_lower_label'
35
+ end
36
+
37
+ def self.down
38
+ drop_table :local_authority_entries
39
+ drop_table :local_authorities
40
+ drop_table :domain_terms
41
+ drop_table :domain_terms_local_authorities
42
+ drop_table :subject_local_authority_entries
43
+ remove_index :local_authority_entries, :name => "entries_by_term_and_label"
44
+ remove_index :local_authority_entries, :name => "entries_by_term_and_uri"
45
+ remove_index :domain_terms, :name => "terms_by_model_and_term"
46
+ remove_index :subject_local_authority_entries, :name => 'entries_by_lower_label'
47
+ remove_index :domain_terms_local_authorities, :name => 'dtla_by_ids1'
48
+ remove_index :domain_terms_local_authorities, :name => 'dtla_by_ids2'
49
+ end
50
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSingleUseLinks < ActiveRecord::Migration
2
+ def change
3
+ create_table :single_use_links do |t|
4
+ t.string :downloadKey
5
+ t.string :path
6
+ t.string :itemId
7
+ t.datetime :expires
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ class CreateTrophies < ActiveRecord::Migration
2
+ def change
3
+ create_table :trophies do |t|
4
+ t.integer :user_id
5
+ t.string :generic_file_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ class CreateVersionCommitters < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :version_committers do |t|
4
+ t.string :obj_id
5
+ t.string :datastream_id
6
+ t.string :version_id
7
+ t.string :committer_login
8
+ t.timestamps
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :version_committers
14
+ end
15
+ end
@@ -44,10 +44,10 @@ class BatchUpdateJob
44
44
 
45
45
  job_user = User.batchuser()
46
46
 
47
- message = '<a class="batchid ui-helper-hidden">ss-'+batch.noid+'</a>The file(s) '+ file_list(@saved)+ " have been saved." unless @saved.empty?
47
+ message = '<span class="batchid ui-helper-hidden">ss-'+batch.noid+'</span>The file(s) '+ file_list(@saved)+ " have been saved." unless @saved.empty?
48
48
  job_user.send_message(user, message, 'Batch upload complete') unless @saved.empty?
49
49
 
50
- message = '<a class="batchid ui-helper-hidden">'+batch.noid+'</a>The file(s) '+ file_list(@denied)+" could not be updated. You do not have sufficient privileges to edit it." unless @denied.empty?
50
+ message = '<span class="batchid ui-helper-hidden">'+batch.noid+'</span>The file(s) '+ file_list(@denied)+" could not be updated. You do not have sufficient privileges to edit it." unless @denied.empty?
51
51
  job_user.send_message(user, message, 'Batch upload permission denied') unless @denied.empty?
52
52
 
53
53
  end
@@ -1,5 +1,5 @@
1
1
  module Sufia
2
2
  module Models
3
- VERSION = "3.1.0"
3
+ VERSION = "3.1.1"
4
4
  end
5
5
  end
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.0
4
+ version: 3.1.1
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-09 00:00:00.000000000 Z
11
+ date: 2013-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -258,6 +258,25 @@ files:
258
258
  - app/models/trophy.rb
259
259
  - app/models/version_committer.rb
260
260
  - config/locales/sufia.en.yml
261
+ - lib/generators/sufia/models/install_generator.rb
262
+ - lib/generators/sufia/models/templates/config/clamav.rb
263
+ - lib/generators/sufia/models/templates/config/mailboxer.rb
264
+ - lib/generators/sufia/models/templates/config/redis.yml
265
+ - lib/generators/sufia/models/templates/config/redis_config.rb
266
+ - lib/generators/sufia/models/templates/config/resque_admin.rb
267
+ - lib/generators/sufia/models/templates/config/resque_config.rb
268
+ - lib/generators/sufia/models/templates/config/setup_mail.rb
269
+ - lib/generators/sufia/models/templates/config/sufia.rb
270
+ - lib/generators/sufia/models/templates/migrations/acts_as_follower_migration.rb
271
+ - lib/generators/sufia/models/templates/migrations/add_avatars_to_users.rb
272
+ - lib/generators/sufia/models/templates/migrations/add_groups_to_users.rb
273
+ - lib/generators/sufia/models/templates/migrations/add_ldap_attrs_to_user.rb
274
+ - lib/generators/sufia/models/templates/migrations/add_social_to_users.rb
275
+ - lib/generators/sufia/models/templates/migrations/create_checksum_audit_logs.rb
276
+ - lib/generators/sufia/models/templates/migrations/create_local_authorities.rb
277
+ - lib/generators/sufia/models/templates/migrations/create_single_use_links.rb
278
+ - lib/generators/sufia/models/templates/migrations/create_trophies.rb
279
+ - lib/generators/sufia/models/templates/migrations/create_version_committers.rb
261
280
  - lib/sufia/models.rb
262
281
  - lib/sufia/models/active_fedora/redis.rb
263
282
  - lib/sufia/models/active_record/redis.rb