Compare commits
15 commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3030ff4a15 | ||
![]() |
d85999ba13 | ||
![]() |
28abbfa356 | ||
![]() |
52050a4298 | ||
![]() |
72a60a0703 | ||
![]() |
0b2f36dbbd | ||
![]() |
6feed021d2 | ||
![]() |
4eed13e475 | ||
![]() |
0e53529442 | ||
![]() |
aa2a5906f9 | ||
![]() |
36b6bf5b88 | ||
![]() |
972d03b005 | ||
![]() |
2bae2042a2 | ||
![]() |
600c7acdc1 | ||
![]() |
2628d7f938 |
25 changed files with 940 additions and 443 deletions
|
@ -3,10 +3,10 @@
|
|||
|
||||
if test $TRAVIS_TAG
|
||||
then
|
||||
utils/make-package.sh pdnsmanager-${TRAVIS_TAG:1}
|
||||
utils/make-package.sh pdnsmanager-$TRAVIS_COMMIT
|
||||
utils/make-package.sh pdnsmanager-${TRAVIS_TAG:1} ${TRAVIS_TAG:1}
|
||||
utils/make-package.sh pdnsmanager-$TRAVIS_COMMIT $TRAVIS_COMMIT
|
||||
else
|
||||
utils/make-package.sh pdnsmanager-$TRAVIS_COMMIT
|
||||
utils/make-package.sh pdnsmanager-$TRAVIS_COMMIT $TRAVIS_COMMIT
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
curl -F "file=@pdnsmanager-${TRAVIS_TAG:1}.tar.gz" -u "travis:$UPLOAD_PASS" 'https://upload.pdnsmanager.org/?action=release'
|
||||
curl -F "file=@pdnsmanager-${TRAVIS_TAG:1}.tar.gz" -u "travis:$UPLOAD_PASS" "https://upload.pdnsmanager.org/?action=release&version=${TRAVIS_TAG:1}"
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
curl -F "file=@pdnsmanager-$TRAVIS_COMMIT.tar.gz" -u "travis:$UPLOAD_PASS" 'https://upload.pdnsmanager.org/?action=snapshot'
|
||||
curl -F "file=@pdnsmanager-$TRAVIS_COMMIT.tar.gz" -u "travis:$UPLOAD_PASS" "https://upload.pdnsmanager.org/?action=snapshot&version=$TRAVIS_COMMIT"
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
[PDNS Manager](https://pdnsmanager.org) is a simple yet powerful free administration tool for the Powerdns authoritative nameserver. It supports master, native and slave zones.
|
||||
|
||||
PNDS Manager was developed from scratch to achieve a user-friendly
|
||||
and pretty looking interface.
|
||||
PDNS Manager was developed from scratch to achieve a user-friendly and pretty looking interface.
|
||||
|
||||
PDNS Manager also features a powerful API to set records programatically.
|
||||
This can be used e.g. for a dynamic DNS service, but also to obtain certificates from [Let's Encrypt](https://letsencrypt.org/) via the dns-01 challenge.
|
||||
|
|
890
backend/src/composer.lock
generated
890
backend/src/composer.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -31,14 +31,14 @@ $defaultConfig = [
|
|||
'allowedTypes' => [
|
||||
'A', 'A6', 'AAAA', 'AFSDB', 'ALIAS', 'CAA', 'CDNSKEY', 'CDS', 'CERT', 'CNAME', 'DHCID',
|
||||
'DLV', 'DNAME', 'DNSKEY', 'DS', 'EUI48', 'EUI64', 'HINFO',
|
||||
'IPSECKEY', 'KEY', 'KX', 'LOC', 'MAILA', 'MAILB', 'MINFO', 'MR',
|
||||
'IPSECKEY', 'KEY', 'KX', 'LOC', 'LUA', 'MAILA', 'MAILB', 'MINFO', 'MR',
|
||||
'MX', 'NAPTR', 'NS', 'NSEC', 'NSEC3', 'NSEC3PARAM', 'OPENPGPKEY',
|
||||
'OPT', 'PTR', 'RKEY', 'RP', 'RRSIG', 'SIG', 'SPF',
|
||||
'SRV', 'TKEY', 'SSHFP', 'TLSA', 'TSIG', 'TXT', 'WKS', 'MBOXFW', 'URL'
|
||||
]
|
||||
],
|
||||
'proxys' => [],
|
||||
'dbVersion' => 6
|
||||
'dbVersion' => 7
|
||||
];
|
||||
|
||||
if (file_exists('../config/ConfigOverride.php')) {
|
||||
|
|
|
@ -38,9 +38,8 @@ class ClientIp
|
|||
$ip = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
for ($i = count($parts) - 1; $i >= 0; $i--) {
|
||||
if (in_array($parts[$i], $proxys) && $i > 0) {
|
||||
$ip = $parts[$i - 1];
|
||||
} else {
|
||||
if (!in_array($parts[$i], $proxys)) {
|
||||
$ip = $parts[$i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -283,12 +283,12 @@ class Users
|
|||
}
|
||||
|
||||
if ($record['backend'] === 'native' && $name !== null) {
|
||||
//Check if user already exists
|
||||
//Check if user with new name already exists
|
||||
$query = $this->db->prepare('SELECT id FROM users WHERE name=:name AND backend=\'native\'');
|
||||
$query->bindValue(':name', $name);
|
||||
$query->execute();
|
||||
$record = $query->fetch();
|
||||
if ($record !== false && intval($record['id']) !== $userId) {
|
||||
$recordTest = $query->fetch();
|
||||
if ($recordTest !== false && intval($recordTest['id']) !== $userId) {
|
||||
throw new \Exceptions\AlreadyExistentException();
|
||||
}
|
||||
}
|
||||
|
|
100
backend/src/plugins/Sessionstorage/memcached.php
Normal file
100
backend/src/plugins/Sessionstorage/memcached.php
Normal file
|
@ -0,0 +1,100 @@
|
|||
<?php
|
||||
|
||||
namespace Plugins\Sessionstorage;
|
||||
|
||||
require '../vendor/autoload.php';
|
||||
|
||||
/**
|
||||
* Implements a session storage plugin for using PHPs APCu.
|
||||
*/
|
||||
class memcached implements InterfaceSessionstorage
|
||||
{
|
||||
/** @var \Monolog\Logger */
|
||||
private $logger;
|
||||
|
||||
/** @var \Memcached */
|
||||
private $memcached;
|
||||
|
||||
/**
|
||||
* Construct the object
|
||||
*
|
||||
* @param $logger Monolog logger instance for error handling
|
||||
* @param $config The configuration for the Plugin if any was provided
|
||||
*/
|
||||
public function __construct(\Monolog\Logger $logger, array $config = null)
|
||||
{
|
||||
$this->logger = $logger;
|
||||
|
||||
if (!class_exists('Memcached')) {
|
||||
$this->logger->critical('PHP Memcached extension is not available but configured as session storage backend exiting now');
|
||||
exit();
|
||||
}
|
||||
$this->memcached = new \Memcached();
|
||||
if (!array_key_exists('host', $config) || !array_key_exists('port', $config)) {
|
||||
$this->logger->critical('Memcached session configuration missing host or port value');
|
||||
exit();
|
||||
}
|
||||
$this->memcached->addServer($config['host'], $config['port']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save new entry.
|
||||
*
|
||||
* @param $key The key for the entry
|
||||
* @param $value The value for the entry
|
||||
* @param $ttl The time (in s) for which this item should be available
|
||||
*/
|
||||
public function set(string $key, string $value, int $ttl) : void
|
||||
{
|
||||
$this->logger->debug('Storing data to Memcached', ['key' => $key, 'value' => $value, 'ttl' => $ttl]);
|
||||
|
||||
$this->memcached->set($key, $value, $ttl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Queries the existence of some entry.
|
||||
*
|
||||
* @param $key The key to query
|
||||
*/
|
||||
public function exists(string $key) : bool
|
||||
{
|
||||
$this->logger->debug('Checking for Memcached key existence', ['key' => $key]);
|
||||
|
||||
$this->memcached->get($key);
|
||||
return \Memcached::RES_NOTFOUND !== $this->memcached->getResultCode();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the value for a given key. This should also reset the ttl to the given value.
|
||||
*
|
||||
* @param $key The key for the entry to get
|
||||
* @param $ttl The new ttl for the entry
|
||||
*/
|
||||
public function get(string $key, int $ttl) : string
|
||||
{
|
||||
$this->logger->debug('Getting data from Memcached', ['key' => $key, 'ttl' => $ttl]);
|
||||
|
||||
$value = $this->memcached->get($key);
|
||||
|
||||
if ($value == false) {
|
||||
$this->logger->error('Non existing key was queried from Memcached', ['key' => $key]);
|
||||
throw new \InvalidArgumentException('The requested key was not in the database!');
|
||||
}
|
||||
|
||||
$this->memcached->touch($key, $ttl);
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the value for a given key.
|
||||
*
|
||||
* @param $key The key to delete
|
||||
*/
|
||||
public function delete(string $key) : void
|
||||
{
|
||||
$this->logger->debug('Deleting key from Memcached', ['key' => $key]);
|
||||
|
||||
$this->memcached->delete($key);
|
||||
}
|
||||
}
|
10
backend/src/sql/Update7.sql
Normal file
10
backend/src/sql/Update7.sql
Normal file
|
@ -0,0 +1,10 @@
|
|||
ALTER TABLE `remote`
|
||||
DROP FOREIGN KEY remote_ibfk_1;
|
||||
|
||||
ALTER TABLE records MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT;
|
||||
ALTER TABLE remote MODIFY record BIGINT;
|
||||
|
||||
ALTER TABLE `remote`
|
||||
ADD CONSTRAINT remote_ibfk_1 FOREIGN KEY(record) REFERENCES `records`(id);
|
||||
|
||||
UPDATE options SET value=7 WHERE name='schema_version';
|
|
@ -80,7 +80,7 @@ CREATE TABLE `permissions` (
|
|||
--
|
||||
|
||||
CREATE TABLE `records` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||
`domain_id` int(11) DEFAULT NULL,
|
||||
`name` varchar(255) DEFAULT NULL,
|
||||
`type` varchar(10) DEFAULT NULL,
|
||||
|
@ -102,7 +102,7 @@ CREATE TABLE `records` (
|
|||
|
||||
CREATE TABLE `remote` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`record` int(11) NOT NULL,
|
||||
`record` bigint(20) NOT NULL,
|
||||
`description` varchar(255) NOT NULL,
|
||||
`type` varchar(20) NOT NULL,
|
||||
`security` varchar(2000) NOT NULL,
|
||||
|
@ -169,7 +169,7 @@ CREATE TABLE `options` (
|
|||
--
|
||||
|
||||
INSERT INTO `options` (`name`, `value`) VALUES
|
||||
('schema_version', '5');
|
||||
('schema_version', '7');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
|
|
|
@ -3,13 +3,15 @@
|
|||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: localhost
|
||||
-- Generation Time: Mar 31, 2018 at 12:51 PM
|
||||
-- Server version: 5.7.21-0ubuntu0.16.04.1
|
||||
-- PHP Version: 7.0.28-0ubuntu0.16.04.1
|
||||
-- Erstellungszeit: 25. Dez 2019 um 23:22
|
||||
-- Server-Version: 5.7.23-0ubuntu0.16.04.1
|
||||
-- PHP-Version: 7.0.30-0ubuntu0.16.04.1
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||
SET time_zone = "+00:00";
|
||||
|
||||
DROP TABLE IF EXISTS `comments`, `cryptokeys`, `domainmetadata`, `domains`, `options`, `permissions`, `records`, `remote`, `supermasters`, `tsigkeys`, `users`;
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||
|
@ -17,13 +19,13 @@ SET time_zone = "+00:00";
|
|||
/*!40101 SET NAMES utf8mb4 */;
|
||||
|
||||
--
|
||||
-- Database: `pdnsnew`
|
||||
-- Datenbank: `pdnsnew`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `comments`
|
||||
-- Tabellenstruktur für Tabelle `comments`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `comments`;
|
||||
|
@ -40,7 +42,7 @@ CREATE TABLE `comments` (
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `cryptokeys`
|
||||
-- Tabellenstruktur für Tabelle `cryptokeys`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `cryptokeys`;
|
||||
|
@ -55,7 +57,7 @@ CREATE TABLE `cryptokeys` (
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `domainmetadata`
|
||||
-- Tabellenstruktur für Tabelle `domainmetadata`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `domainmetadata`;
|
||||
|
@ -69,7 +71,7 @@ CREATE TABLE `domainmetadata` (
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `domains`
|
||||
-- Tabellenstruktur für Tabelle `domains`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `domains`;
|
||||
|
@ -84,7 +86,7 @@ CREATE TABLE `domains` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Dumping data for table `domains`
|
||||
-- Daten für Tabelle `domains`
|
||||
--
|
||||
|
||||
INSERT INTO `domains` (`id`, `name`, `master`, `last_check`, `type`, `notified_serial`, `account`) VALUES
|
||||
|
@ -97,7 +99,26 @@ INSERT INTO `domains` (`id`, `name`, `master`, `last_check`, `type`, `notified_s
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `permissions`
|
||||
-- Tabellenstruktur für Tabelle `options`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `options`;
|
||||
CREATE TABLE `options` (
|
||||
`name` varchar(255) NOT NULL,
|
||||
`value` varchar(2000) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Daten für Tabelle `options`
|
||||
--
|
||||
|
||||
INSERT INTO `options` (`name`, `value`) VALUES
|
||||
('schema_version', '7');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Tabellenstruktur für Tabelle `permissions`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `permissions`;
|
||||
|
@ -107,7 +128,7 @@ CREATE TABLE `permissions` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `permissions`
|
||||
-- Daten für Tabelle `permissions`
|
||||
--
|
||||
|
||||
INSERT INTO `permissions` (`domain_id`, `user_id`) VALUES
|
||||
|
@ -117,7 +138,7 @@ INSERT INTO `permissions` (`domain_id`, `user_id`) VALUES
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `records`
|
||||
-- Tabellenstruktur für Tabelle `records`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `records`;
|
||||
|
@ -136,7 +157,7 @@ CREATE TABLE `records` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
|
||||
--
|
||||
-- Dumping data for table `records`
|
||||
-- Daten für Tabelle `records`
|
||||
--
|
||||
|
||||
INSERT INTO `records` (`id`, `domain_id`, `name`, `type`, `content`, `ttl`, `prio`, `change_date`, `disabled`, `ordername`, `auth`) VALUES
|
||||
|
@ -149,13 +170,13 @@ INSERT INTO `records` (`id`, `domain_id`, `name`, `type`, `content`, `ttl`, `pri
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `remote`
|
||||
-- Tabellenstruktur für Tabelle `remote`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `remote`;
|
||||
CREATE TABLE `remote` (
|
||||
`id` int(11) NOT NULL,
|
||||
`record` int(11) NOT NULL,
|
||||
`record` bigint(20) DEFAULT NULL,
|
||||
`description` varchar(255) NOT NULL,
|
||||
`type` varchar(20) NOT NULL,
|
||||
`security` varchar(2000) NOT NULL,
|
||||
|
@ -163,7 +184,7 @@ CREATE TABLE `remote` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `remote`
|
||||
-- Daten für Tabelle `remote`
|
||||
--
|
||||
|
||||
INSERT INTO `remote` (`id`, `record`, `description`, `type`, `security`, `nonce`) VALUES
|
||||
|
@ -174,7 +195,7 @@ INSERT INTO `remote` (`id`, `record`, `description`, `type`, `security`, `nonce`
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `supermasters`
|
||||
-- Tabellenstruktur für Tabelle `supermasters`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `supermasters`;
|
||||
|
@ -187,7 +208,7 @@ CREATE TABLE `supermasters` (
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `tsigkeys`
|
||||
-- Tabellenstruktur für Tabelle `tsigkeys`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `tsigkeys`;
|
||||
|
@ -201,26 +222,7 @@ CREATE TABLE `tsigkeys` (
|
|||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `options`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `options`;
|
||||
CREATE TABLE `options` (
|
||||
`name` varchar(255) NOT NULL,
|
||||
`value` varchar(2000) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `options`
|
||||
--
|
||||
|
||||
INSERT INTO `options` (`name`, `value`) VALUES
|
||||
('schema_version', '5');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Table structure for table `users`
|
||||
-- Tabellenstruktur für Tabelle `users`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `users`;
|
||||
|
@ -233,7 +235,7 @@ CREATE TABLE `users` (
|
|||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Dumping data for table `users`
|
||||
-- Daten für Tabelle `users`
|
||||
--
|
||||
|
||||
INSERT INTO `users` (`id`, `name`, `backend`, `type`, `password`) VALUES
|
||||
|
@ -242,11 +244,11 @@ INSERT INTO `users` (`id`, `name`, `backend`, `type`, `password`) VALUES
|
|||
(3, 'configuser', 'config', 'user', NULL);
|
||||
|
||||
--
|
||||
-- Indexes for dumped tables
|
||||
-- Indizes der exportierten Tabellen
|
||||
--
|
||||
|
||||
--
|
||||
-- Indexes for table `comments`
|
||||
-- Indizes für die Tabelle `comments`
|
||||
--
|
||||
ALTER TABLE `comments`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
|
@ -254,34 +256,40 @@ ALTER TABLE `comments`
|
|||
ADD KEY `comments_order_idx` (`domain_id`,`modified_at`);
|
||||
|
||||
--
|
||||
-- Indexes for table `cryptokeys`
|
||||
-- Indizes für die Tabelle `cryptokeys`
|
||||
--
|
||||
ALTER TABLE `cryptokeys`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `domainidindex` (`domain_id`);
|
||||
|
||||
--
|
||||
-- Indexes for table `domainmetadata`
|
||||
-- Indizes für die Tabelle `domainmetadata`
|
||||
--
|
||||
ALTER TABLE `domainmetadata`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `domainmetadata_idx` (`domain_id`,`kind`);
|
||||
|
||||
--
|
||||
-- Indexes for table `domains`
|
||||
-- Indizes für die Tabelle `domains`
|
||||
--
|
||||
ALTER TABLE `domains`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE KEY `name_index` (`name`);
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
--
|
||||
-- Indexes for table `permissions`
|
||||
-- Indizes für die Tabelle `options`
|
||||
--
|
||||
ALTER TABLE `options`
|
||||
ADD PRIMARY KEY (`name`);
|
||||
|
||||
--
|
||||
-- Indizes für die Tabelle `permissions`
|
||||
--
|
||||
ALTER TABLE `permissions`
|
||||
ADD PRIMARY KEY (`user_id`,`domain_id`);
|
||||
ADD PRIMARY KEY (`domain_id`,`user_id`),
|
||||
ADD KEY `permissions_ibfk_2` (`user_id`);
|
||||
|
||||
--
|
||||
-- Indexes for table `records`
|
||||
-- Indizes für die Tabelle `records`
|
||||
--
|
||||
ALTER TABLE `records`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
|
@ -290,74 +298,99 @@ ALTER TABLE `records`
|
|||
ADD KEY `ordername` (`ordername`);
|
||||
|
||||
--
|
||||
-- Indexes for table `remote`
|
||||
-- Indizes für die Tabelle `remote`
|
||||
--
|
||||
ALTER TABLE `remote`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD KEY `remote_ibfk_1` (`record`);
|
||||
|
||||
--
|
||||
-- Indexes for table `supermasters`
|
||||
-- Indizes für die Tabelle `supermasters`
|
||||
--
|
||||
ALTER TABLE `supermasters`
|
||||
ADD PRIMARY KEY (`ip`,`nameserver`);
|
||||
|
||||
--
|
||||
-- Indexes for table `tsigkeys`
|
||||
-- Indizes für die Tabelle `tsigkeys`
|
||||
--
|
||||
ALTER TABLE `tsigkeys`
|
||||
ADD PRIMARY KEY (`id`),
|
||||
ADD UNIQUE KEY `namealgoindex` (`name`,`algorithm`);
|
||||
|
||||
--
|
||||
-- Indexes for table `users`
|
||||
-- Indizes für die Tabelle `users`
|
||||
--
|
||||
ALTER TABLE `users`
|
||||
ADD PRIMARY KEY (`id`);
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for dumped tables
|
||||
-- AUTO_INCREMENT für exportierte Tabellen
|
||||
--
|
||||
|
||||
--
|
||||
-- AUTO_INCREMENT for table `comments`
|
||||
-- AUTO_INCREMENT für Tabelle `comments`
|
||||
--
|
||||
ALTER TABLE `comments`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `cryptokeys`
|
||||
-- AUTO_INCREMENT für Tabelle `cryptokeys`
|
||||
--
|
||||
ALTER TABLE `cryptokeys`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `domainmetadata`
|
||||
-- AUTO_INCREMENT für Tabelle `domainmetadata`
|
||||
--
|
||||
ALTER TABLE `domainmetadata`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `domains`
|
||||
-- AUTO_INCREMENT für Tabelle `domains`
|
||||
--
|
||||
ALTER TABLE `domains`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `records`
|
||||
-- AUTO_INCREMENT für Tabelle `records`
|
||||
--
|
||||
ALTER TABLE `records`
|
||||
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
|
||||
MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `remote`
|
||||
-- AUTO_INCREMENT für Tabelle `remote`
|
||||
--
|
||||
ALTER TABLE `remote`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `tsigkeys`
|
||||
-- AUTO_INCREMENT für Tabelle `tsigkeys`
|
||||
--
|
||||
ALTER TABLE `tsigkeys`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
|
||||
--
|
||||
-- AUTO_INCREMENT for table `users`
|
||||
-- AUTO_INCREMENT für Tabelle `users`
|
||||
--
|
||||
ALTER TABLE `users`
|
||||
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
|
||||
--
|
||||
-- Constraints der exportierten Tabellen
|
||||
--
|
||||
|
||||
--
|
||||
-- Constraints der Tabelle `permissions`
|
||||
--
|
||||
ALTER TABLE `permissions`
|
||||
ADD CONSTRAINT `permissions_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domains` (`id`) ON DELETE CASCADE,
|
||||
ADD CONSTRAINT `permissions_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints der Tabelle `records`
|
||||
--
|
||||
ALTER TABLE `records`
|
||||
ADD CONSTRAINT `records_ibfk_1` FOREIGN KEY (`domain_id`) REFERENCES `domains` (`id`) ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints der Tabelle `remote`
|
||||
--
|
||||
ALTER TABLE `remote`
|
||||
ADD CONSTRAINT `remote_ibfk_1` FOREIGN KEY (`record`) REFERENCES `records` (`id`);
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
|
|
24
backend/test/package-lock.json
generated
24
backend/test/package-lock.json
generated
|
@ -10,12 +10,12 @@
|
|||
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
||||
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
||||
"version": "0.18.1",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
|
||||
"integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
|
||||
"requires": {
|
||||
"follow-redirects": "1.4.1",
|
||||
"is-buffer": "1.1.6"
|
||||
"follow-redirects": "1.5.10",
|
||||
"is-buffer": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"cartesian-product": {
|
||||
|
@ -32,17 +32,17 @@
|
|||
}
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz",
|
||||
"integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==",
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
|
||||
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
|
||||
"requires": {
|
||||
"debug": "3.1.0"
|
||||
"debug": "=3.1.0"
|
||||
}
|
||||
},
|
||||
"is-buffer": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
|
||||
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"version": "1.0.0",
|
||||
"description": "Dependencies for pdnsmanager test",
|
||||
"dependencies": {
|
||||
"axios": "^0.18.0",
|
||||
"axios": "^0.18.1",
|
||||
"cartesian-product": "^2.1.2",
|
||||
"node-rsa": "^0.4.2"
|
||||
}
|
||||
|
|
|
@ -41,6 +41,6 @@ test.run(async function () {
|
|||
});
|
||||
|
||||
assert.equal(res.status, 200);
|
||||
assert.equal(res.data, { ip: '127.0.0.1' }, 'X-Forwarded-For Test 3');
|
||||
assert.equal(res.data, { ip: '1.2.3.4' }, 'X-Forwarded-For Test 3');
|
||||
});
|
||||
});
|
|
@ -90,13 +90,35 @@ test.run(async function () {
|
|||
url: '/users/4',
|
||||
method: 'put',
|
||||
data: {
|
||||
name: 'foo',
|
||||
name: 'foo1',
|
||||
password: 'bar',
|
||||
type: 'user'
|
||||
}
|
||||
});
|
||||
assert.equal(res.status, 204, 'Update should succeed.');
|
||||
|
||||
//Test if updated user can log in
|
||||
var res = await req({
|
||||
url: '/sessions',
|
||||
method: 'post',
|
||||
data: {
|
||||
username: 'foo1',
|
||||
password: 'bar'
|
||||
}
|
||||
});
|
||||
assert.equal(res.status, 201, 'Login with updated user should succeed.');
|
||||
|
||||
//Test user update without password
|
||||
var res = await req({
|
||||
url: '/users/4',
|
||||
method: 'put',
|
||||
data: {
|
||||
name: 'foo',
|
||||
type: 'user'
|
||||
}
|
||||
});
|
||||
assert.equal(res.status, 204, 'Update should succeed.');
|
||||
|
||||
//Test if updated user can log in
|
||||
var res = await req({
|
||||
url: '/sessions',
|
||||
|
|
115
frontend/package-lock.json
generated
115
frontend/package-lock.json
generated
|
@ -669,6 +669,7 @@
|
|||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
|
||||
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"es6-promisify": "5.0.0"
|
||||
}
|
||||
|
@ -702,6 +703,7 @@
|
|||
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
|
||||
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"kind-of": "3.2.2",
|
||||
"longest": "1.0.1",
|
||||
|
@ -713,6 +715,7 @@
|
|||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"is-buffer": "1.1.6"
|
||||
}
|
||||
|
@ -1050,12 +1053,27 @@
|
|||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
||||
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
||||
"version": "0.18.1",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz",
|
||||
"integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==",
|
||||
"requires": {
|
||||
"follow-redirects": "1.5.7",
|
||||
"is-buffer": "1.1.6"
|
||||
"follow-redirects": "1.5.10",
|
||||
"is-buffer": "^2.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"follow-redirects": {
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
|
||||
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
|
||||
"requires": {
|
||||
"debug": "=3.1.0"
|
||||
}
|
||||
},
|
||||
"is-buffer": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
|
||||
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-code-frame": {
|
||||
|
@ -1468,6 +1486,7 @@
|
|||
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
|
||||
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"hoek": "2.16.3"
|
||||
}
|
||||
|
@ -1652,7 +1671,8 @@
|
|||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-0.0.2.tgz",
|
||||
"integrity": "sha1-JrOIXRD6E9t/wBquOquHAZngEkw=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"buffer-xor": {
|
||||
"version": "1.0.3",
|
||||
|
@ -3024,13 +3044,15 @@
|
|||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
|
||||
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"es6-promisify": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
|
||||
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"es6-promise": "4.2.4"
|
||||
}
|
||||
|
@ -3655,6 +3677,7 @@
|
|||
"version": "1.5.7",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.7.tgz",
|
||||
"integrity": "sha512-NONJVIFiX7Z8k2WxfqBjtwqMifx7X42ORLFrOZ2LTKGj71G3C0kfdyTqGqr8fx5zSX6Foo/D95dgGWbPUiwnew==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "3.1.0"
|
||||
}
|
||||
|
@ -3774,7 +3797,8 @@
|
|||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
|
@ -3795,12 +3819,14 @@
|
|||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
|
@ -3815,17 +3841,20 @@
|
|||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
|
@ -3942,7 +3971,8 @@
|
|||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
|
@ -3954,6 +3984,7 @@
|
|||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "1.0.1"
|
||||
}
|
||||
|
@ -3968,6 +3999,7 @@
|
|||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "1.1.11"
|
||||
}
|
||||
|
@ -3975,12 +4007,14 @@
|
|||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.2.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1",
|
||||
"yallist": "3.0.2"
|
||||
|
@ -3999,6 +4033,7 @@
|
|||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
|
@ -4079,7 +4114,8 @@
|
|||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
|
@ -4091,6 +4127,7 @@
|
|||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
|
@ -4176,7 +4213,8 @@
|
|||
"safe-buffer": {
|
||||
"version": "5.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
|
@ -4212,6 +4250,7 @@
|
|||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "1.1.0",
|
||||
"is-fullwidth-code-point": "1.0.0",
|
||||
|
@ -4231,6 +4270,7 @@
|
|||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "2.1.1"
|
||||
}
|
||||
|
@ -4274,12 +4314,14 @@
|
|||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -4288,6 +4330,7 @@
|
|||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
|
||||
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"inherits": "2.0.3",
|
||||
|
@ -4790,7 +4833,8 @@
|
|||
"version": "2.16.3",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
|
||||
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"homedir-polyfill": {
|
||||
"version": "1.0.1",
|
||||
|
@ -4956,6 +5000,7 @@
|
|||
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
|
||||
"integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"agent-base": "4.2.1",
|
||||
"debug": "3.1.0"
|
||||
|
@ -4989,6 +5034,7 @@
|
|||
"resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz",
|
||||
"integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"httpreq": "0.4.24",
|
||||
"underscore": "1.7.0"
|
||||
|
@ -4998,7 +5044,8 @@
|
|||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz",
|
||||
"integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"https-browserify": {
|
||||
"version": "1.0.0",
|
||||
|
@ -5011,6 +5058,7 @@
|
|||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
|
||||
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"agent-base": "4.2.1",
|
||||
"debug": "3.1.0"
|
||||
|
@ -5206,7 +5254,8 @@
|
|||
"is-buffer": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
|
||||
"dev": true
|
||||
},
|
||||
"is-builtin-module": {
|
||||
"version": "1.0.0",
|
||||
|
@ -6018,13 +6067,15 @@
|
|||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz",
|
||||
"integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"libmime": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/libmime/-/libmime-3.0.0.tgz",
|
||||
"integrity": "sha1-UaGp50SOy9Ms2lRCFnW7IbwJPaY=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"iconv-lite": "0.4.15",
|
||||
"libbase64": "0.1.0",
|
||||
|
@ -6035,7 +6086,8 @@
|
|||
"version": "0.4.15",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
|
||||
"integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -6043,7 +6095,8 @@
|
|||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz",
|
||||
"integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"license-webpack-plugin": {
|
||||
"version": "1.4.0",
|
||||
|
@ -6386,7 +6439,8 @@
|
|||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
|
||||
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"loose-envify": {
|
||||
"version": "1.4.0",
|
||||
|
@ -7097,13 +7151,15 @@
|
|||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz",
|
||||
"integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"nodemailer-shared": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz",
|
||||
"integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"nodemailer-fetch": "1.6.0"
|
||||
}
|
||||
|
@ -7136,7 +7192,8 @@
|
|||
"version": "0.1.10",
|
||||
"resolved": "https://registry.npmjs.org/nodemailer-wellknown/-/nodemailer-wellknown-0.1.10.tgz",
|
||||
"integrity": "sha1-WG24EB2zDLRDjrVGc3pBqtDPE9U=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"nopt": {
|
||||
"version": "3.0.6",
|
||||
|
@ -9189,6 +9246,7 @@
|
|||
"resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz",
|
||||
"integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"httpntlm": "1.6.1",
|
||||
"nodemailer-shared": "1.1.0"
|
||||
|
@ -10357,7 +10415,8 @@
|
|||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
|
||||
"integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"union-value": {
|
||||
"version": "1.0.0",
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
"@angular/platform-browser": "6.1.4",
|
||||
"@angular/platform-browser-dynamic": "6.1.4",
|
||||
"@angular/router": "6.1.4",
|
||||
"axios": "^0.18.0",
|
||||
"axios": "^0.18.1",
|
||||
"bootstrap": "^4.1.3",
|
||||
"core-js": "^2.5.7",
|
||||
"font-awesome": "^4.7.0",
|
||||
|
|
|
@ -62,7 +62,7 @@ export class DomainsComponent implements OnInit {
|
|||
try {
|
||||
await this.modal.showMessage(new ModalOptionsDatatype({
|
||||
heading: 'Confirm deletion',
|
||||
body: 'Are you shure you want to delete ' + domain.name + '?',
|
||||
body: 'Are you sure you want to delete ' + domain.name + '?',
|
||||
acceptText: 'Delete',
|
||||
dismisText: 'Cancel',
|
||||
acceptClass: 'danger'
|
||||
|
|
|
@ -88,7 +88,7 @@ export class EditAuthLineComponent implements OnInit, OnChanges {
|
|||
try {
|
||||
await this.modal.showMessage(new ModalOptionsDatatype({
|
||||
heading: 'Confirm deletion',
|
||||
body: 'Are you shure you want to delete the ' + this.inputType.value +
|
||||
body: 'Are you sure you want to delete the ' + this.inputType.value +
|
||||
' record ' + this.fullName() + ' with content ' + this.inputContent.value + '?',
|
||||
acceptText: 'Delete',
|
||||
dismisText: 'Cancel',
|
||||
|
|
|
@ -145,7 +145,7 @@ export class EditCredentialsComponent implements OnInit {
|
|||
try {
|
||||
await this.modal.showMessage(new ModalOptionsDatatype({
|
||||
heading: 'Confirm deletion',
|
||||
body: 'Are you shure you want to delete the credential ' + credential.description + '?',
|
||||
body: 'Are you sure you want to delete the credential ' + credential.description + '?',
|
||||
acceptText: 'Delete',
|
||||
dismisText: 'Cancel',
|
||||
acceptClass: 'danger'
|
||||
|
|
|
@ -58,7 +58,7 @@ export class SetupComponent implements OnInit {
|
|||
} catch (e) {
|
||||
switch (e.response.status) {
|
||||
case 404:
|
||||
this.errorMessage = 'The application has already been setup or the backend is misconfigured.';
|
||||
this.errorMessage = 'The backend seems to be misconfigured or the application has a config file already.';
|
||||
break;
|
||||
case 500:
|
||||
this.errorMessage = e.response.data.error;
|
||||
|
|
|
@ -62,7 +62,7 @@ export class UsersComponent implements OnInit {
|
|||
try {
|
||||
await this.modal.showMessage(new ModalOptionsDatatype({
|
||||
heading: 'Confirm deletion',
|
||||
body: 'Are you shure you want to delete ' + user.name + '?',
|
||||
body: 'Are you sure you want to delete ' + user.name + '?',
|
||||
acceptText: 'Delete',
|
||||
dismisText: 'Cancel',
|
||||
acceptClass: 'danger'
|
||||
|
|
|
@ -57,7 +57,7 @@ export class StateService {
|
|||
private _recordTypes = [
|
||||
'A', 'A6', 'AAAA', 'AFSDB', 'ALIAS', 'CAA', 'CDNSKEY', 'CDS', 'CERT', 'CNAME', 'DHCID',
|
||||
'DLV', 'DNAME', 'DNSKEY', 'DS', 'EUI48', 'EUI64', 'HINFO',
|
||||
'IPSECKEY', 'KEY', 'KX', 'LOC', 'MAILA', 'MAILB', 'MINFO', 'MR',
|
||||
'IPSECKEY', 'KEY', 'KX', 'LOC', 'LUA', 'MAILA', 'MAILB', 'MINFO', 'MR',
|
||||
'MX', 'NAPTR', 'NS', 'NSEC', 'NSEC3', 'NSEC3PARAM', 'OPENPGPKEY',
|
||||
'OPT', 'PTR', 'RKEY', 'RP', 'RRSIG', 'SIG', 'SPF',
|
||||
'SRV', 'TKEY', 'SSHFP', 'TLSA', 'TSIG', 'TXT', 'WKS', 'MBOXFW', 'URL'
|
||||
|
|
|
@ -21,6 +21,13 @@ cd ..
|
|||
cp LICENSE "$1"
|
||||
cp README.md "$1"
|
||||
|
||||
# Add version info
|
||||
cat << EOF > "$1"/version.json
|
||||
{
|
||||
"version": "$2"
|
||||
}
|
||||
EOF
|
||||
|
||||
# Create archive
|
||||
tar -czf "$1".tar.gz "$1"
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue