123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?php
- /*
- FusionPBX
- Version: MPL 1.1
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
- The Original Code is FusionPBX
- The Initial Developer of the Original Code is
- Mark J Crane <[email protected]>
- Portions created by the Initial Developer are Copyright (C) 2020
- the Initial Developer. All Rights Reserved.
- Contributor(s):
- Mark J Crane <[email protected]>
- */
- //define the databases class
- if (!class_exists('databases')) {
- class databases {
- /**
- * declare private variables
- */
- private $app_name;
- private $app_uuid;
- private $permission_prefix;
- private $list_page;
- private $table;
- private $uuid_prefix;
- /**
- * called when the object is created
- */
- public function __construct() {
- //assign private variables
- $this->app_name = 'databases';
- $this->app_uuid = '8d229b6d-1383-fcec-74c6-4ce1682479e2';
- $this->permission_prefix = 'database_';
- $this->list_page = 'databases.php';
- $this->table = 'databases';
- $this->uuid_prefix = 'database_';
- }
- /**
- * called when there are no references to a particular object
- * unset the variables used in the class
- */
- public function __destruct() {
- foreach ($this as $key => $value) {
- unset($this->$key);
- }
- }
- /**
- * delete records
- */
- public function delete($records) {
- if (permission_exists($this->permission_prefix.'delete')) {
- //add multi-lingual support
- $language = new text;
- $text = $language->get();
- //validate the token
- $token = new token;
- if (!$token->validate($_SERVER['PHP_SELF'])) {
- message::add($text['message-invalid_token'],'negative');
- header('Location: '.$this->list_page);
- exit;
- }
- //delete multiple records
- if (is_array($records) && @sizeof($records) != 0) {
- //build the delete array
- foreach ($records as $x => $record) {
- if ($record['checked'] == 'true' && is_uuid($record['uuid'])) {
- $array[$this->table][$x][$this->uuid_prefix.'uuid'] = $record['uuid'];
- }
- }
- //delete the checked rows
- if (is_array($array) && @sizeof($array) != 0) {
- //execute delete
- $database = new database;
- $database->app_name = $this->app_name;
- $database->app_uuid = $this->app_uuid;
- $database->delete($array);
- unset($array);
- //set message
- message::add($text['message-delete']);
- }
- unset($records);
- }
- }
- }
- /**
- * copy records
- */
- public function copy($records) {
- if (permission_exists($this->permission_prefix.'add')) {
- //add multi-lingual support
- $language = new text;
- $text = $language->get();
- //validate the token
- $token = new token;
- if (!$token->validate($_SERVER['PHP_SELF'])) {
- message::add($text['message-invalid_token'],'negative');
- header('Location: '.$this->list_page);
- exit;
- }
- //copy the checked records
- if (is_array($records) && @sizeof($records) != 0) {
- //get checked records
- foreach ($records as $x => $record) {
- if ($record['checked'] == 'true' && is_uuid($record['uuid'])) {
- $uuids[] = "'".$record['uuid']."'";
- }
- }
- //create insert array from existing data
- if (is_array($uuids) && @sizeof($uuids) != 0) {
- $sql = "select * from v_".$this->table." ";
- $sql .= "where ".$this->uuid_prefix."uuid in (".implode(', ', $uuids).") ";
- $database = new database;
- $rows = $database->select($sql, $parameters, 'all');
- if (is_array($rows) && @sizeof($rows) != 0) {
- foreach ($rows as $x => $row) {
- //copy data
- $array[$this->table][$x] = $row;
- //overwrite
- $array[$this->table][$x][$this->uuid_prefix.'uuid'] = uuid();
- $array[$this->table][$x]['database_description'] = trim($row['database_description'].' ('.$text['label-copy'].')');
- }
- }
- unset($sql, $parameters, $rows, $row);
- }
- //save the changes and set the message
- if (is_array($array) && @sizeof($array) != 0) {
- //save the array
- $database = new database;
- $database->app_name = $this->app_name;
- $database->app_uuid = $this->app_uuid;
- $database->save($array);
- unset($array);
- //set message
- message::add($text['message-copy']);
- }
- unset($records);
- }
- }
- }
- }
- }
- ?>
|