
Set( $rtname, 'example.com');
Set(@Plugins, qw(RT::Authen::ExternalAuth RT::Extension::LDAPImport));

Set($LDAPHost,'ldap.*****.*****.com');
Set($LDAPUser, 'cn=****,ou=*****,dc=*****,dc=com');
Set($LDAPPassword, '********');
Set($LDAPBase, 'ou=***,dc=******,dc=com');
Set($LDAPFilter, '(&(objectClass=user)(objectClass=*))');
Set($LDAPMapping, {Name         => 'sAMAccountName',
                     EmailAddress => 'mail',
                     RealName     => 'cn',
                     WorkPhone    => 'telephoneNumber',
                     Organization => 'departmentName'});
Set($LDAPCreatePrivileged, 1);

Set($LogToSyslog,   'debug'); # debug is very noisy
Set($LogDir, '/var/log');
Set($LogToFileNamed, "rt.log");
Set($LogToFile, 'info');

Set($Timezone, "US/Central");

Set($DatabaseType, "mysql");
Set($DatabaseHost,   "localhost");
Set($DatabaseUser, "rt");
Set($DatabaseName, q{rt4});
Set($DatabasePassword, q{*******});

Set($Organization, "****.*****.com");
#Set($WebPath, "");
Set($WebPort, 443);
Set($WebDomain, '10.0.1.153');
Set($WebBaseURL, 'http://' . RT->Config->Get('WebDomain') . ':' . RT->Config->Get('WebPort'));
Set($WebURL, RT->Config->Get('WebBaseURL') . RT->Config->Get('WebPath') . "/");
Set($WebImagesURL, RT->Config->Get('WebPath') . "/NoAuth/images/");
Set($WebImagesURL , $WebPath . "/images/");  # need this for below
Set($LogoURL, "http://10.0.1.153/html/images/*******.png");
Set($LogoLinkURL, 'http://10.0.1.153/');
Set($LogoAltText, "My TEST RT");
Set($AutoLogoff, 60);
Set($EnableReminders, 1);
Set($NotifyActor, 1);

Set($AutoCreate, { Privileged => 1 });

Set($ExternalAuthPriority, ['Corp_LDAP']);
Set($ExternalInfoPriority, ['Corp_LDAP']);
Set($ExternalServiceUsesSSLorTLS,    0);
Set($AutoCreateNonExternalUsers,    1);

Set($ExternalSettings, {
    'Corp_LDAP'       =>  {
        'type'                      =>  'ldap',
        'server'                    =>  'ldap.*****.*****.com',
        'user'                      =>  'CN=*******,OU=********,DC=******,DC=com',
        'pass'                      =>  '******',
        'base'                      =>  'DC=******,DC=com',
        'filter'                    =>  '',
        'd_filter'                  =>  '(objectClass=FooBarBaz)',
        'tls'                       =>  0,
        'ssl_version'               =>  3,
        'net_ldap_args'             => [    version =>  3   ],
        #'group'                     =>  'GROUP_NAME',
        #'group_attr'                =>  'GROUP_ATTR',
        'attr_match_list'           => [    'Name',
                                            'EmailAddress',
                                            'RealName',
                                            'WorkPhone',
                                            'Address2'
                                       ],
        'attr_map'                  =>  {   'Name' => 'sAMAccountName',
                                            'EmailAddress' => 'mail',
                                            'Organization' => 'physicalDeliveryOfficeName',
                                            'RealName' => 'cn',
                                            'ExternalAuthId' => 'sAMAccountName',
                                            'Gecos' => 'sAMAccountName',
                                            'WorkPhone' => 'telephoneNumber',
                                            'Address1' => 'streetAddress',
                                            'City' => 'l',
                                            'State' => 'st',
                                            'Zip' => 'postalCode',
                                            'Country' => 'co'
                                        }

                          },
                }
);


Set(%Lifecycles,

default => {
        initial => [ 'new' ],
        active  => [ 'open', 'ABC', 'At_Client', 'ABC-E', 'Developing', 'stalled' ],
        inactive => [ 'resolved', 'rejected', 'deleted' ],
        },

defaults => {
        on_create => 'new',
        on_merge  => 'resolved',
        approved  => 'open',
        denied    => 'rejected',
        },


transitions => {
        ''	=> [qw(new open resolved)],
        # from   => [ to list ],
        new      => [qw(open stalled ABC At_Client ABC-E Developing resolved rejected deleted)],
        open     => [qw(stalled ABC At_Client ABC-E Developing resolved rejected deleted)],
        ABC   => [qw(open stalled At_Client ABC-E Developing resolved rejected deleted)],
        At_Client => [qw(open stalled ABC ABC-E Developing resolved rejected deleted)],
        'ABC-E'    => [qw(open stalled ABC At_Client Developing resolved rejected deleted)],
        Developing => [qw(open stalled ABC At_Client ABC-E resolved rejected deleted)],
        stalled  => [qw(open ABC At_Client ABC-E Developing rejected resolved deleted)],
        resolved => [qw(open ABC At_Client ABC-E Developing stalled rejected deleted)],
        rejected => [qw(open ABC At_Client ABC-E Developing stalled resolved deleted)],
        deleted  => [qw(open ABC At_Client ABC-E Developing stalled rejected resolved)],
        },

rights => {
        '* -> deleted'  => 'DeleteTicket',
        '* -> *'        => 'ModifyTicket',
        },

actions => [
        'new -> open'      => { label => 'Open It',  update => 'Respond' },
        'new -> resolved'  => { label => 'Resolve',  update => 'Comment' },
        'new -> rejected'  => { label => 'Reject',   update => 'Respond' },
        'new -> deleted'   => { label => 'Delete'                        },
        'open -> stalled'  => { label => 'Stall',    update => 'Comment' },
        'open -> resolved' => { label => 'Resolve',  update => 'Comment' },
        'open -> rejected' => { label => 'Reject',   update => 'Respond' },
        'stalled -> open'  => { label => 'Open It'                       },
        'resolved -> open' => { label => 'Re-open',  update => 'Comment' },
        'rejected -> open' => { label => 'Re-open',  update => 'Comment' },
        ]

);

## LifeCycles

Set(%Lifecycles,
    default => {
        initial         => [ 'new' ],
        active          => [ 'open', 'stalled' ],
        inactive        => [ 'resolved', 'rejected', 'deleted' ],

        defaults => {
            on_create => 'new',
            on_merge  => 'resolved',
            approved  => 'open',
            denied    => 'rejected',
        },

        transitions => {
            ''       => [qw(new open resolved)],

            # from   => [ to list ],
            new      => [qw(open stalled resolved rejected deleted)],
            open     => [qw(new stalled resolved rejected deleted)],
            stalled  => [qw(new open rejected resolved deleted)],
            resolved => [qw(new open stalled rejected deleted)],
            rejected => [qw(new open stalled resolved deleted)],
            deleted  => [qw(new open stalled rejected resolved)],
        },
        rights => {
            '* -> deleted'  => 'DeleteTicket',
            '* -> *'        => 'ModifyTicket',
        },
        actions => [
            'new -> open'      => {
                label  => 'Open It', # loc
                update => 'Respond',
            },
            'new -> resolved'  => {
                label  => 'Resolve', # loc
                update => 'Comment',
            },
            'new -> rejected'  => {
                label  => 'Reject', # loc
                update => 'Respond',
            },
            'new -> deleted'   => {
                label  => 'Delete', # loc
            },

            'open -> stalled'  => {
                label  => 'Stall', # loc
                update => 'Comment',
            },
            'open -> resolved' => {
                label  => 'Resolve', # loc
                update => 'Comment',
            },
            'open -> rejected' => {
                label  => 'Reject', # loc
                update => 'Respond',
            },

            'stalled -> open'  => {
                label  => 'Open It', # loc
            },
            'resolved -> open' => {
                label  => 'Re-open', # loc
                update => 'Comment',
            },
            'rejected -> open' => {
                label  => 'Re-open', # loc
                update => 'Comment',
            },
            'deleted -> open'  => {
                label  => 'Undelete', # loc
            },
        ],
    },
# don't change lifecyle of the approvals, they are not capable to deal with
# custom statuses
    approvals => {
        initial         => [ 'new' ],
        active          => [ 'open', 'stalled' ],
        inactive        => [ 'resolved', 'rejected', 'deleted' ],

        defaults => {
            on_create => 'new',
            on_merge => 'resolved',
        },

        transitions => {
            ''       => [qw(new open resolved)],

            # from   => [ to list ],
            new      => [qw(open stalled resolved rejected deleted)],
            open     => [qw(new stalled resolved rejected deleted)],
            stalled  => [qw(new open rejected resolved deleted)],
            resolved => [qw(new open stalled rejected deleted)],
            rejected => [qw(new open stalled resolved deleted)],
            deleted  => [qw(new open stalled rejected resolved)],
        },
        rights => {
            '* -> deleted'  => 'DeleteTicket',
            '* -> rejected' => 'ModifyTicket',
            '* -> *'        => 'ModifyTicket',
        },
        actions => [
            'new -> open'      => {
                label  => 'Open It', # loc
                update => 'Respond',
            },
            'new -> resolved'  => {
                label  => 'Resolve', # loc
                update => 'Comment',
            },
            'new -> rejected'  => {
                label  => 'Reject', # loc
                update => 'Respond',
            },
            'new -> deleted'   => {
                label  => 'Delete', # loc
            },

            'open -> stalled'  => {
                label  => 'Stall', # loc
                update => 'Comment',
            },
            'open -> resolved' => {
                label  => 'Resolve', # loc
                update => 'Comment',
            },
            'open -> rejected' => {
                label  => 'Reject', # loc
                update => 'Respond',
            },

            'stalled -> open'  => {
                label  => 'Open It', # loc
            },
            'resolved -> open' => {
                label  => 'Re-open', # loc
                update => 'Comment',
            },
            'rejected -> open' => {
                label  => 'Re-open', # loc
                update => 'Comment',
            },
            'deleted -> open'  => {
                label  => 'Undelete', # loc
            },
        ],
    },
);



1;
