Merged migrations.
This commit is contained in:
parent
2314f318ff
commit
949f414442
8 changed files with 52 additions and 397 deletions
|
@ -417,6 +417,25 @@ class CreateBase < ActiveRecord::Migration
|
||||||
end
|
end
|
||||||
add_index :schedulers, [:name], unique: true
|
add_index :schedulers, [:name], unique: true
|
||||||
|
|
||||||
|
create_table :user_devices do |t|
|
||||||
|
t.references :user, null: false
|
||||||
|
t.string :name, limit: 250, null: false
|
||||||
|
t.string :os, limit: 150, null: true
|
||||||
|
t.string :browser, limit: 250, null: true
|
||||||
|
t.string :location, limit: 150, null: true
|
||||||
|
t.string :device_details, limit: 2500, null: true
|
||||||
|
t.string :location_details, limit: 2500, null: true
|
||||||
|
t.string :fingerprint, limit: 160, null: true
|
||||||
|
t.string :user_agent, limit: 250, null: true
|
||||||
|
t.string :ip, limit: 160, null: true
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
add_index :user_devices, [:user_id]
|
||||||
|
add_index :user_devices, [:os, :browser, :location]
|
||||||
|
add_index :user_devices, [:fingerprint]
|
||||||
|
add_index :user_devices, [:updated_at]
|
||||||
|
add_index :user_devices, [:created_at]
|
||||||
|
|
||||||
create_table :delayed_jobs, force: true do |t|
|
create_table :delayed_jobs, force: true do |t|
|
||||||
t.integer :priority, default: 0 # Allows some jobs to jump to the front of the queue
|
t.integer :priority, default: 0 # Allows some jobs to jump to the front of the queue
|
||||||
t.integer :attempts, default: 0 # Provides for retries, but still fail eventually.
|
t.integer :attempts, default: 0 # Provides for retries, but still fail eventually.
|
||||||
|
|
|
@ -929,6 +929,39 @@ class CreateObjectManager < ActiveRecord::Migration
|
||||||
updated_by_id: 1,
|
updated_by_id: 1,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ObjectManager::Attribute.add(
|
||||||
|
object: 'User',
|
||||||
|
name: 'address',
|
||||||
|
display: 'Address',
|
||||||
|
data_type: 'textarea',
|
||||||
|
data_option: {
|
||||||
|
type: 'text',
|
||||||
|
maxlength: 500,
|
||||||
|
null: true,
|
||||||
|
item_class: 'formGroup--halfSize',
|
||||||
|
},
|
||||||
|
editable: false,
|
||||||
|
active: true,
|
||||||
|
screens: {
|
||||||
|
signup: {},
|
||||||
|
invite_agent: {},
|
||||||
|
edit: {
|
||||||
|
'-all-' => {
|
||||||
|
null: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
view: {
|
||||||
|
'-all-' => {
|
||||||
|
shown: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pending_migration: false,
|
||||||
|
position: 1350,
|
||||||
|
created_by_id: 1,
|
||||||
|
updated_by_id: 1,
|
||||||
|
)
|
||||||
|
|
||||||
ObjectManager::Attribute.add(
|
ObjectManager::Attribute.add(
|
||||||
object: 'User',
|
object: 'User',
|
||||||
name: 'password',
|
name: 'password',
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
class CreateAddress < ActiveRecord::Migration
|
|
||||||
def up
|
|
||||||
add_column :users, :address, :string, limit: 500, null: true
|
|
||||||
|
|
||||||
User.all.each {|user|
|
|
||||||
address = ''
|
|
||||||
if user.street && !user.street.empty?
|
|
||||||
address += "#{user.street}\n"
|
|
||||||
end
|
|
||||||
if user.zip && !user.zip.empty?
|
|
||||||
address += "#{user.zip} "
|
|
||||||
end
|
|
||||||
if user.city && !user.city.empty?
|
|
||||||
address += "#{user.city}"
|
|
||||||
end
|
|
||||||
if !address.empty?
|
|
||||||
user.address = address
|
|
||||||
user.save
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
%w(street zip city department).each {|attribute_name|
|
|
||||||
attribute = ObjectManager::Attribute.get(
|
|
||||||
object: 'User',
|
|
||||||
name: attribute_name,
|
|
||||||
)
|
|
||||||
if attribute
|
|
||||||
attribute.active = false
|
|
||||||
attribute.save
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
ObjectManager::Attribute.add(
|
|
||||||
object: 'User',
|
|
||||||
name: 'address',
|
|
||||||
display: 'Address',
|
|
||||||
data_type: 'textarea',
|
|
||||||
data_option: {
|
|
||||||
type: 'text',
|
|
||||||
maxlength: 500,
|
|
||||||
null: true,
|
|
||||||
item_class: 'formGroup--halfSize',
|
|
||||||
},
|
|
||||||
editable: false,
|
|
||||||
active: true,
|
|
||||||
screens: {
|
|
||||||
signup: {},
|
|
||||||
invite_agent: {},
|
|
||||||
edit: {
|
|
||||||
'-all-' => {
|
|
||||||
null: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
view: {
|
|
||||||
'-all-' => {
|
|
||||||
shown: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
pending_migration: false,
|
|
||||||
position: 1350,
|
|
||||||
created_by_id: 1,
|
|
||||||
updated_by_id: 1,
|
|
||||||
)
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,28 +0,0 @@
|
||||||
class UpdateForm < ActiveRecord::Migration
|
|
||||||
def up
|
|
||||||
|
|
||||||
Setting.create_if_not_exists(
|
|
||||||
title: 'Enable Ticket creation',
|
|
||||||
name: 'form_ticket_create',
|
|
||||||
area: 'Form::Base',
|
|
||||||
description: 'Defines if ticket can get created via web form.',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: '',
|
|
||||||
null: true,
|
|
||||||
name: 'form_ticket_create',
|
|
||||||
tag: 'boolean',
|
|
||||||
options: {
|
|
||||||
true => 'yes',
|
|
||||||
false => 'no',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: false,
|
|
||||||
frontend: false,
|
|
||||||
)
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,15 +0,0 @@
|
||||||
class UpdateModelSearchable < ActiveRecord::Migration
|
|
||||||
def up
|
|
||||||
|
|
||||||
Setting.create_if_not_exists(
|
|
||||||
title: 'Define searchable models.',
|
|
||||||
name: 'models_searchable',
|
|
||||||
area: 'Models::Base',
|
|
||||||
description: 'Define the models which can be searched for.',
|
|
||||||
options: {},
|
|
||||||
state: [],
|
|
||||||
frontend: false,
|
|
||||||
)
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,27 +0,0 @@
|
||||||
|
|
||||||
class CreateUserDevices < ActiveRecord::Migration
|
|
||||||
def up
|
|
||||||
create_table :user_devices do |t|
|
|
||||||
t.references :user, null: false
|
|
||||||
t.string :name, limit: 250, null: false
|
|
||||||
t.string :os, limit: 150, null: true
|
|
||||||
t.string :browser, limit: 250, null: true
|
|
||||||
t.string :location, limit: 150, null: true
|
|
||||||
t.string :device_details, limit: 2500, null: true
|
|
||||||
t.string :location_details, limit: 2500, null: true
|
|
||||||
t.string :fingerprint, limit: 160, null: true
|
|
||||||
t.string :user_agent, limit: 250, null: true
|
|
||||||
t.string :ip, limit: 160, null: true
|
|
||||||
t.timestamps
|
|
||||||
end
|
|
||||||
add_index :user_devices, [:user_id]
|
|
||||||
add_index :user_devices, [:os, :browser, :location]
|
|
||||||
add_index :user_devices, [:fingerprint]
|
|
||||||
add_index :user_devices, [:updated_at]
|
|
||||||
add_index :user_devices, [:created_at]
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
drop_table :user_devices
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,50 +0,0 @@
|
||||||
class UpdateSettings2 < ActiveRecord::Migration
|
|
||||||
def up
|
|
||||||
Setting.create_or_update(
|
|
||||||
title: 'Additional follow up detection',
|
|
||||||
name: 'postmaster_follow_up_search_in',
|
|
||||||
area: 'Email::Base',
|
|
||||||
description: 'In default the follow up check is done via the subject of an email. With this setting you can add more fields where the follow up ckeck is executed. "References" - Executes follow up check on In-Reply-To or References headers for mails. "Body" - Executes follow up check in mail body. "Attachment" - Executes follow up check in mail attachments.',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: '',
|
|
||||||
null: true,
|
|
||||||
name: 'postmaster_follow_up_search_in',
|
|
||||||
tag: 'checkbox',
|
|
||||||
options: {
|
|
||||||
'references' => 'References',
|
|
||||||
'body' => 'Body',
|
|
||||||
'attachment' => 'Attachment',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: [],
|
|
||||||
frontend: false
|
|
||||||
)
|
|
||||||
Setting.create_or_update(
|
|
||||||
title: 'Ticket Hook Position',
|
|
||||||
name: 'ticket_hook_position',
|
|
||||||
area: 'Ticket::Base',
|
|
||||||
description: 'The format of the subject. "Left" means "[Ticket#12345] Some Subject", "Right" means "Some Subject [Ticket#12345]", "None" means "Some Subject" and no ticket number. In the last case you should enable "postmaster_follow_up_search_in" to recognize followups based on email headers and/or body.',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: '',
|
|
||||||
null: true,
|
|
||||||
name: 'ticket_hook_position',
|
|
||||||
tag: 'select',
|
|
||||||
options: {
|
|
||||||
'left' => 'Left',
|
|
||||||
'right' => 'Right',
|
|
||||||
'none' => 'None',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: 'right',
|
|
||||||
frontend: false
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,207 +0,0 @@
|
||||||
class UpdateSettings3 < ActiveRecord::Migration
|
|
||||||
def up
|
|
||||||
Setting.create_or_update(
|
|
||||||
title: 'Maximal failed logins',
|
|
||||||
name: 'password_max_login_failed',
|
|
||||||
area: 'Security::Password',
|
|
||||||
description: 'Maximal failed logins after account is inactive.',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: '',
|
|
||||||
null: true,
|
|
||||||
name: 'password_max_login_failed',
|
|
||||||
tag: 'select',
|
|
||||||
options: {
|
|
||||||
4 => ' 4',
|
|
||||||
5 => ' 5',
|
|
||||||
6 => ' 6',
|
|
||||||
7 => ' 7',
|
|
||||||
8 => ' 8',
|
|
||||||
9 => ' 9',
|
|
||||||
10 => '10',
|
|
||||||
11 => '11',
|
|
||||||
13 => '13',
|
|
||||||
14 => '14',
|
|
||||||
15 => '15',
|
|
||||||
16 => '16',
|
|
||||||
17 => '17',
|
|
||||||
18 => '18',
|
|
||||||
19 => '19',
|
|
||||||
20 => '20',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: 10,
|
|
||||||
frontend: true
|
|
||||||
)
|
|
||||||
Setting.create_or_update(
|
|
||||||
title: 'Max. Email Size',
|
|
||||||
name: 'postmaster_max_size',
|
|
||||||
area: 'Email::Base',
|
|
||||||
description: 'Maximal size in MB of emails.',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: '',
|
|
||||||
null: true,
|
|
||||||
name: 'postmaster_max_size',
|
|
||||||
tag: 'select',
|
|
||||||
options: {
|
|
||||||
1 => ' 1',
|
|
||||||
2 => ' 2',
|
|
||||||
3 => ' 3',
|
|
||||||
4 => ' 4',
|
|
||||||
5 => ' 5',
|
|
||||||
6 => ' 6',
|
|
||||||
7 => ' 7',
|
|
||||||
8 => ' 8',
|
|
||||||
9 => ' 9',
|
|
||||||
10 => ' 10',
|
|
||||||
15 => ' 15',
|
|
||||||
20 => ' 20',
|
|
||||||
25 => ' 25',
|
|
||||||
30 => ' 30',
|
|
||||||
35 => ' 35',
|
|
||||||
40 => ' 40',
|
|
||||||
45 => ' 45',
|
|
||||||
50 => ' 50',
|
|
||||||
60 => ' 60',
|
|
||||||
70 => ' 70',
|
|
||||||
80 => ' 80',
|
|
||||||
90 => ' 90',
|
|
||||||
100 => '100',
|
|
||||||
125 => '125',
|
|
||||||
150 => '150',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: 10,
|
|
||||||
preferences: { online_service_disable: true },
|
|
||||||
frontend: false
|
|
||||||
)
|
|
||||||
Setting.create_or_update(
|
|
||||||
title: 'Ticket Number Increment',
|
|
||||||
name: 'ticket_number_increment',
|
|
||||||
area: 'Ticket::Number',
|
|
||||||
description: '-',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: 'Checksum',
|
|
||||||
null: true,
|
|
||||||
name: 'checksum',
|
|
||||||
tag: 'boolean',
|
|
||||||
options: {
|
|
||||||
true => 'yes',
|
|
||||||
false => 'no',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
display: 'Min. size of number',
|
|
||||||
null: true,
|
|
||||||
name: 'min_size',
|
|
||||||
tag: 'select',
|
|
||||||
options: {
|
|
||||||
1 => ' 1',
|
|
||||||
2 => ' 2',
|
|
||||||
3 => ' 3',
|
|
||||||
4 => ' 4',
|
|
||||||
5 => ' 5',
|
|
||||||
6 => ' 6',
|
|
||||||
7 => ' 7',
|
|
||||||
8 => ' 8',
|
|
||||||
9 => ' 9',
|
|
||||||
10 => '10',
|
|
||||||
11 => '11',
|
|
||||||
12 => '12',
|
|
||||||
13 => '13',
|
|
||||||
14 => '14',
|
|
||||||
15 => '15',
|
|
||||||
16 => '16',
|
|
||||||
17 => '17',
|
|
||||||
18 => '18',
|
|
||||||
19 => '19',
|
|
||||||
20 => '20',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: {
|
|
||||||
checksum: false,
|
|
||||||
min_size: 5,
|
|
||||||
},
|
|
||||||
frontend: false
|
|
||||||
)
|
|
||||||
Setting.create_or_update(
|
|
||||||
title: 'Minimal size',
|
|
||||||
name: 'password_min_size',
|
|
||||||
area: 'Security::Password',
|
|
||||||
description: 'Password need to have at least minimal size of characters.',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: '',
|
|
||||||
null: true,
|
|
||||||
name: 'password_min_size',
|
|
||||||
tag: 'select',
|
|
||||||
options: {
|
|
||||||
4 => ' 4',
|
|
||||||
5 => ' 5',
|
|
||||||
6 => ' 6',
|
|
||||||
7 => ' 7',
|
|
||||||
8 => ' 8',
|
|
||||||
9 => ' 9',
|
|
||||||
10 => '10',
|
|
||||||
11 => '11',
|
|
||||||
12 => '12',
|
|
||||||
13 => '13',
|
|
||||||
14 => '14',
|
|
||||||
15 => '15',
|
|
||||||
16 => '16',
|
|
||||||
17 => '17',
|
|
||||||
18 => '18',
|
|
||||||
19 => '19',
|
|
||||||
20 => '20',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: 6,
|
|
||||||
frontend: true
|
|
||||||
)
|
|
||||||
|
|
||||||
options = {}
|
|
||||||
(10..99).each {|item|
|
|
||||||
options[item] = item
|
|
||||||
}
|
|
||||||
system_id = rand(10..99)
|
|
||||||
current = Setting.find_by(name: 'system_id')
|
|
||||||
if current
|
|
||||||
system_id = Setting.get('system_id')
|
|
||||||
end
|
|
||||||
Setting.create_or_update(
|
|
||||||
title: 'SystemID',
|
|
||||||
name: 'system_id',
|
|
||||||
area: 'System::Base',
|
|
||||||
description: 'Defines the system identifier. Every ticket number contains this ID. This ensures that only tickets which belong to your system will be processed as follow-ups (useful when communicating between two instances of Zammad).',
|
|
||||||
options: {
|
|
||||||
form: [
|
|
||||||
{
|
|
||||||
display: '',
|
|
||||||
null: true,
|
|
||||||
name: 'system_id',
|
|
||||||
tag: 'select',
|
|
||||||
options: options,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
state: system_id,
|
|
||||||
preferences: { online_service_disable: true },
|
|
||||||
frontend: true
|
|
||||||
)
|
|
||||||
|
|
||||||
end
|
|
||||||
end
|
|
Loading…
Reference in a new issue