This file is indexed.

/usr/share/horde/nag/migration/1_nag_base_tables.php is in php-horde-nag 4.2.7-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
<?php
/**
 * Create Nag base tables (as of Nag 2.x).
 *
 * Copyright 2010-2016 Horde LLC (http://www.horde.org/)
 *
 * See the enclosed file COPYING for license information (GPL). If you
 * did not receive this file, see http://www.horde.org/licenses/gpl.
 *
 * @author   Chuck Hagenbuch <chuck@horde.org>
 * @category Horde
 * @license  http://www.horde.org/licenses/gpl GPL
 * @package  Nag
 */
class NagBaseTables extends Horde_Db_Migration_Base
{
    /**
     * Upgrade.
     */
    public function up()
    {
        $tableList = $this->tables();

        if (!in_array('nag_tasks', $tableList)) {
            $t = $this->createTable('nag_tasks', array('autoincrementKey' => false));
            $t->column('task_id', 'string', array('limit' => 32, 'null' => false));
            $t->column('task_owner', 'string', array('null' => false));
            $t->column('task_creator', 'string', array('null' => false));
            $t->column('task_parent', 'string');
            $t->column('task_assignee', 'string');
            $t->column('task_name', 'string', array('null' => false));
            $t->column('task_uid', 'string', array('null' => false));
            $t->column('task_desc', 'text');
            $t->column('task_start', 'integer');
            $t->column('task_due', 'integer');
            $t->column('task_priority', 'integer', array('default' => 0, 'null' => false));
            $t->column('task_estimate', 'float');
            $t->column('task_category', 'string', array('limit' => 80));
            $t->column('task_completed', 'integer', array('limit' => 1, 'default' => 0, 'null' => false));
            $t->column('task_completed_date', 'integer');
            $t->column('task_alarm', 'integer', array('default' => 0, 'null' => false));
            $t->column('task_alarm_methods', 'text');
            $t->column('task_private', 'integer', array('limit' => 1, 'default' => 0, 'null' => false));
            $t->primaryKey(array('task_id'));
            $t->end();

            $this->addIndex('nag_tasks', array('task_owner'));
            $this->addIndex('nag_tasks', array('task_uid'));
            $this->addIndex('nag_tasks', array('task_start'));
        }

        if (!in_array('nag_shares', $tableList)) {
            $t = $this->createTable('nag_shares', array('autoincrementKey' => false));
            $t->column('share_id', 'integer', array('null' => false));
            $t->column('share_name', 'string', array('null' => false));
            $t->column('share_owner', 'string');
            $t->column('share_flags', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
            $t->column('perm_creator', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
            $t->column('perm_default', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
            $t->column('perm_guest', 'integer', array('limit' => 2, 'default' => 0, 'null' => false));
            $t->column('attribute_name', 'string', array('null' => false));
            $t->column('attribute_desc', 'string');
            $t->column('attribute_color', 'string', array('limit' => 7));
            $t->primaryKey(array('share_id'));
            $t->end();

            $this->addIndex('nag_shares', array('share_name'));
            $this->addIndex('nag_shares', array('share_owner'));
            $this->addIndex('nag_shares', array('perm_creator'));
            $this->addIndex('nag_shares', array('perm_default'));
            $this->addIndex('nag_shares', array('perm_guest'));
        }

        if (!in_array('nag_shares_groups', $tableList)) {
            $t = $this->createTable('nag_shares_groups', array('autoincrementKey' => false));
            $t->column('share_id', 'integer', array('null' => false));
            $t->column('group_uid', 'string', array('null' => false));
            $t->column('perm', 'integer', array('limit' => 2, 'null' => false));
            $t->end();

            $this->addIndex('nag_shares_groups', array('share_id'));
            $this->addIndex('nag_shares_groups', array('group_uid'));
            $this->addIndex('nag_shares_groups', array('perm'));
        }

        if (!in_array('nag_shares_users', $tableList)) {
            $t = $this->createTable('nag_shares_users', array('autoincrementKey' => false));
            $t->column('share_id', 'integer', array('null' => false));
            $t->column('user_uid', 'string', array('limit' => 255, 'null' => false));
            $t->column('perm', 'integer', array('limit' => 2, 'null' => false));
            $t->end();

            $this->addIndex('nag_shares_users', array('share_id'));
            $this->addIndex('nag_shares_users', array('user_uid'));
            $this->addIndex('nag_shares_users', array('perm'));
        }
    }

    /**
     * Downgrade.
     */
    public function down()
    {
        $this->dropTable('nag_tasks');
        $this->dropTable('nag_shares');
        $this->dropTable('nag_shares_groups');
        $this->dropTable('nag_shares_users');
    }
}