# Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/ class ObjectManagerUpdateUser < ActiveRecord::Migration[4.2] def up # return if it's a new setup return if !Setting.exists?(name: 'system_init_done') UserInfo.current_user_id = 1 ObjectManager::Attribute.add( force: true, object: 'User', name: 'login', display: 'Login', data_type: 'input', data_option: { type: 'text', maxlength: 100, null: true, autocapitalize: false, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: {}, view: { '-all-' => { shown: false, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 100, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'firstname', display: 'Firstname', data_type: 'input', data_option: { type: 'text', maxlength: 150, null: false, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: { '-all-' => { null: false, }, }, invite_agent: { '-all-' => { null: false, }, }, invite_customer: { '-all-' => { null: false, }, }, edit: { '-all-' => { null: false, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 200, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'lastname', display: 'Lastname', data_type: 'input', data_option: { type: 'text', maxlength: 150, null: false, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: { '-all-' => { null: false, }, }, invite_agent: { '-all-' => { null: false, }, }, invite_customer: { '-all-' => { null: false, }, }, edit: { '-all-' => { null: false, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 300, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'email', display: 'Email', data_type: 'input', data_option: { type: 'email', maxlength: 150, null: false, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: { '-all-' => { null: false, }, }, invite_agent: { '-all-' => { null: false, }, }, invite_customer: { '-all-' => { null: false, }, }, edit: { '-all-' => { null: false, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 400, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'web', display: 'Web', data_type: 'input', data_option: { type: 'url', maxlength: 250, null: true, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 500, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'phone', display: 'Phone', data_type: 'input', data_option: { type: 'tel', maxlength: 100, null: true, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 600, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'mobile', display: 'Mobile', data_type: 'input', data_option: { type: 'tel', maxlength: 100, null: true, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 700, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'fax', display: 'Fax', data_type: 'input', data_option: { type: 'tel', maxlength: 100, null: true, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 800, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'organization_id', display: 'Organization', data_type: 'autocompletion_ajax', data_option: { multiple: false, nulloption: true, null: true, relation: 'Organization', item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: { '-all-' => { null: true, }, }, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 900, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'department', display: 'Department', data_type: 'input', data_option: { type: 'text', maxlength: 200, null: true, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1000, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'street', display: 'Street', data_type: 'input', data_option: { type: 'text', maxlength: 100, null: true, }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1100, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'zip', display: 'Zip', data_type: 'input', data_option: { type: 'text', maxlength: 100, null: true, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1200, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'city', display: 'City', data_type: 'input', data_option: { type: 'text', maxlength: 100, null: true, item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1300, ) ObjectManager::Attribute.add( force: true, 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: {}, invite_customer: {}, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1350, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'password', display: 'Password', data_type: 'input', data_option: { type: 'password', maxlength: 100, null: true, autocomplete: 'off', item_class: 'formGroup--halfSize', }, editable: false, active: true, screens: { signup: { '-all-' => { null: false, }, }, invite_agent: {}, invite_customer: {}, edit: { Admin: { null: true, }, }, view: {} }, to_create: false, to_migrate: false, to_delete: false, position: 1400, ) # rubocop:disable Lint/BooleanSymbol ObjectManager::Attribute.add( force: true, object: 'User', name: 'vip', display: 'VIP', data_type: 'boolean', data_option: { null: true, default: false, item_class: 'formGroup--halfSize', options: { false: 'no', true: 'yes', }, translate: true, }, editable: false, active: true, screens: { edit: { Admin: { null: true, }, Agent: { null: true, }, }, view: { '-all-' => { shown: false, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1490, ) # rubocop:enable Lint/BooleanSymbol ObjectManager::Attribute.add( force: true, object: 'User', name: 'note', display: 'Note', data_type: 'richtext', data_option: { type: 'text', maxlength: 250, null: true, note: 'Notes are visible to agents only, never to customers.', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: { '-all-' => { null: true, }, }, edit: { '-all-' => { null: true, }, }, view: { '-all-' => { shown: true, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1500, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'role_ids', display: 'Roles', data_type: 'checkbox', data_option: { default: '', multiple: true, null: false, relation: 'Role', }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { Admin: { null: false, }, }, view: { '-all-' => { shown: false, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1600, ) ObjectManager::Attribute.add( force: true, object: 'User', name: 'active', display: 'Active', data_type: 'active', data_option: { null: true, default: true, }, editable: false, active: true, screens: { signup: {}, invite_agent: {}, invite_customer: {}, edit: { Admin: { null: false, }, }, view: { '-all-' => { shown: false, }, }, }, to_create: false, to_migrate: false, to_delete: false, position: 1800, ) end end