⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.50
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-horde
/
mnemo
/
migration
/
View File Name :
3_mnemo_upgrade_sqlng.php
* @category Horde * @license http://www.horde.org/licenses/apache ASL * @package Mnemo */ class MnemoUpgradeSqlng extends Horde_Db_Migration_Base { /** * Upgrade. */ public function up() { if (in_array('mnemo_sharesng', $this->tables())) { return; } $t = $this->createTable('mnemo_sharesng', array('autoincrementKey' => 'share_id')); $t->column('share_name', 'string', array('limit' => 255, 'null' => false)); $t->column('share_owner', 'string', array('limit' => 255)); $t->column('share_flags', 'integer', array('default' => 0, 'null' => false)); $t->column('perm_creator_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_creator_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_creator_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_creator_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_default_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_default_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_default_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_default_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_guest_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_guest_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_guest_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_guest_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); $t->column('attribute_name', 'string', array('limit' => 255, 'null' => false)); $t->column('attribute_desc', 'string', array('limit' => 255)); $t->end(); $this->addIndex('mnemo_sharesng', array('share_name')); $this->addIndex('mnemo_sharesng', array('share_owner')); $this->addIndex('mnemo_sharesng', array('perm_creator_' . Horde_Perms::SHOW)); $this->addIndex('mnemo_sharesng', array('perm_creator_' . Horde_Perms::READ)); $this->addIndex('mnemo_sharesng', array('perm_creator_' . Horde_Perms::EDIT)); $this->addIndex('mnemo_sharesng', array('perm_creator_' . Horde_Perms::DELETE)); $this->addIndex('mnemo_sharesng', array('perm_default_' . Horde_Perms::SHOW)); $this->addIndex('mnemo_sharesng', array('perm_default_' . Horde_Perms::READ)); $this->addIndex('mnemo_sharesng', array('perm_default_' . Horde_Perms::EDIT)); $this->addIndex('mnemo_sharesng', array('perm_default_' . Horde_Perms::DELETE)); $this->addIndex('mnemo_sharesng', array('perm_guest_' . Horde_Perms::SHOW)); $this->addIndex('mnemo_sharesng', array('perm_guest_' . Horde_Perms::READ)); $this->addIndex('mnemo_sharesng', array('perm_guest_' . Horde_Perms::EDIT)); $this->addIndex('mnemo_sharesng', array('perm_guest_' . Horde_Perms::DELETE)); $t = $this->createTable('mnemo_sharesng_groups', array('autoincrementKey' => false)); $t->column('share_id', 'integer', array('null' => false)); $t->column('group_uid', 'string', array('limit' => 255, 'null' => false)); $t->column('perm_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); $t->end(); $this->addIndex('mnemo_sharesng_groups', array('share_id')); $this->addIndex('mnemo_sharesng_groups', array('group_uid')); $this->addIndex('mnemo_sharesng_groups', array('perm_' . Horde_Perms::SHOW)); $this->addIndex('mnemo_sharesng_groups', array('perm_' . Horde_Perms::READ)); $this->addIndex('mnemo_sharesng_groups', array('perm_' . Horde_Perms::EDIT)); $this->addIndex('mnemo_sharesng_groups', array('perm_' . Horde_Perms::DELETE)); $t = $this->createTable('mnemo_sharesng_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_' . Horde_Perms::SHOW, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_' . Horde_Perms::READ, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_' . Horde_Perms::EDIT, 'boolean', array('default' => false, 'null' => false)); $t->column('perm_' . Horde_Perms::DELETE, 'boolean', array('default' => false, 'null' => false)); $t->end(); $this->addIndex('mnemo_sharesng_users', array('share_id')); $this->addIndex('mnemo_sharesng_users', array('user_uid')); $this->addIndex('mnemo_sharesng_users', array('perm_' . Horde_Perms::SHOW)); $this->addIndex('mnemo_sharesng_users', array('perm_' . Horde_Perms::READ)); $this->addIndex('mnemo_sharesng_users', array('perm_' . Horde_Perms::EDIT)); $this->addIndex('mnemo_sharesng_users', array('perm_' . Horde_Perms::DELETE)); $this->dataUp(); } /** * Downgrade */ public function down() { $this->dropTable('mnemo_sharesng'); $this->dropTable('mnemo_sharesng_groups'); $this->dropTable('mnemo_sharesng_users'); } public function dataUp() { $whos = array('creator', 'default', 'guest'); $perms = array(Horde_Perms::SHOW, Horde_Perms::READ, Horde_Perms::EDIT, Horde_Perms::DELETE); $sql = 'INSERT INTO mnemo_sharesng (share_id, share_name, share_owner, share_flags, attribute_name, attribute_desc'; $count = 0; foreach ($whos as $who) { foreach ($perms as $perm) { $sql .= ', perm_' . $who . '_' . $perm; $count++; } } $sql .= ') VALUES (?, ?, ?, ?, ?, ?' . str_repeat(', ?', $count) . ')'; foreach ($this->select('SELECT * FROM mnemo_shares') as $share) { $values = array($share['share_id'], $share['share_name'], $share['share_owner'], $share['share_flags'], $share['attribute_name'], $share['attribute_desc']); foreach ($whos as $who) { foreach ($perms as $perm) { $values[] = (bool)($share['perm_' . $who] & $perm); } } $this->insert($sql, $values, null, 'share_id', $share['share_id']); } foreach (array('user', 'group') as $what) { $sql = 'INSERT INTO mnemo_sharesng_' . $what . 's (share_id, ' . $what . '_uid'; $count = 0; foreach ($perms as $perm) { $sql .= ', perm_' . $perm; $count++; } $sql .= ') VALUES (?, ?' . str_repeat(', ?', $count) . ')'; foreach ($this->select('SELECT * FROM mnemo_shares_' . $what . 's') as $share) { $values = array($share['share_id'], $share[$what . '_uid']); foreach ($perms as $perm) { $values[] = (bool)($share['perm'] & $perm); } $this->insert($sql, $values); } } } }