prevent cloning duplicate extensions (master #1821) (#2033)

* prevent cloning duplicate extensions

app/extensions/app_languages.php
+ add duplicate extension error prompt

app/extensions/extension_copy.php
+ add check to see if duplicate extension exists

app/extensions/resources/classes/extension.php
+ add function to check if extension exists

* fix typo

* Update app_languages.php

* Update extension_copy.php

* Update extension.php

* Update extension_copy.php

Use the global app_languages.php message-duplicate translation.

* Update extension_copy.php

* Update extension.php
This commit is contained in:
jebsolutions
2016-11-24 02:23:44 -05:00
committed by FusionPBX
parent b1c2c9dbdd
commit 9626f23072
2 changed files with 45 additions and 15 deletions

View File

@@ -17,23 +17,27 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2012
Portions created by the Initial Developer are Copyright (C) 2008-2016
the Initial Developer. All Rights Reserved.
Contributor(s):
Mark J Crane <markjcrane@fusionpbx.com>
*/
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
require_once "resources/paging.php";
if (permission_exists('extension_add')) {
//access granted
}
else {
echo "access denied";
exit;
}
//includes
include "root.php";
require_once "resources/require.php";
require_once "resources/check_auth.php";
require_once "resources/paging.php";
//check permissions
if (permission_exists('extension_add')) {
//access granted
}
else {
echo "access denied";
exit;
}
//add multi-lingual support
$language = new text;
@@ -47,7 +51,21 @@ else {
$number_alias_new = check_str($_REQUEST["alias"]);
}
}
// skip the copy if the domain extension already exists
$ext = new extension;
$ext->db = $db;
if ($ext->exists($domain_uuid, $extension_new)) {
//begin the page content
require_once "resources/header.php";
echo "<div align='center'>".$text['message-duplicate']."<br />";
echo " <input type='button' class='btn' alt='".$text['button-back']."' onclick=\"window.location='./extension_edit.php?id=".$extension_uuid."';\" value='".$text['button-back']."'>\n";
echo "</div>";
require_once "resources/footer.php";
return;
}
//get the v_extensions data
$sql = "select * from v_extensions ";
$sql .= "where domain_uuid = '$domain_uuid' ";
@@ -228,4 +246,4 @@ else {
header("Location: extensions.php");
return;
?>
?>

View File

@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Copyright (C) 2010 - 2014
Copyright (C) 2010 - 2016
All Rights Reserved.
Contributor(s):
@@ -518,6 +518,18 @@ if (!class_exists('extension')) {
$_SESSION["reload_xml"] = true;
}
}
// returns true if the domain extension already exists
public function exists($domain_uuid, $extension) {
$sql = "select * from v_extensions where domain_uuid = '".$domain_uuid."' ";
$sql .= "and extension='".$extension."'";
$prep_statement = $this->db->prepare(check_sql($sql));
$prep_statement->execute();
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
return count($result) != 0;
}
}
}