Compare commits
6 Commits
docker_tests
...
v1.10.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 6f6afa1b6a | |||
| 3634e47794 | |||
| 5be39bc271 | |||
| 6b55d7585c | |||
| 8e4b3f9a4a | |||
| 15cf0c3c19 |
@@ -1190,3 +1190,18 @@
|
|||||||
* Add DigitalOcean Spaces region Singapore 1 (SGP1)
|
* Add DigitalOcean Spaces region Singapore 1 (SGP1)
|
||||||
* Configure Exoscale SOS to use new SOS NG endpoint
|
* Configure Exoscale SOS to use new SOS NG endpoint
|
||||||
* Fix S3 storage backend CopySource encoding rules
|
* Fix S3 storage backend CopySource encoding rules
|
||||||
|
|
||||||
|
[1.10.1]
|
||||||
|
* Migrate mailboxes to support multiple domains
|
||||||
|
* Update addon containers to latest versions
|
||||||
|
* Add DigitalOcean Spaces region Singapore 1 (SGP1)
|
||||||
|
* Configure Exoscale SOS to use new SOS NG endpoint
|
||||||
|
* Fix S3 storage backend CopySource encoding rules
|
||||||
|
|
||||||
|
[1.10.2]
|
||||||
|
* Migrate mailboxes to support multiple domains
|
||||||
|
* Update addon containers to latest versions
|
||||||
|
* Add DigitalOcean Spaces region Singapore 1 (SGP1)
|
||||||
|
* Configure Exoscale SOS to use new SOS NG endpoint
|
||||||
|
* Fix S3 storage backend CopySource encoding rules
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ exports.up = function(db, callback) {
|
|||||||
|
|
||||||
async.series([
|
async.series([
|
||||||
db.runSql.bind(db, 'START TRANSACTION;'),
|
db.runSql.bind(db, 'START TRANSACTION;'),
|
||||||
|
db.runSql.bind(db, 'ALTER TABLE users DROP INDEX users_email'),
|
||||||
db.runSql.bind(db, 'ALTER TABLE users ADD COLUMN fallbackEmail VARCHAR(512) DEFAULT ""'),
|
db.runSql.bind(db, 'ALTER TABLE users ADD COLUMN fallbackEmail VARCHAR(512) DEFAULT ""'),
|
||||||
function setDefaults(done) {
|
function setDefaults(done) {
|
||||||
async.eachSeries(users, function (user, iteratorCallback) {
|
async.eachSeries(users, function (user, iteratorCallback) {
|
||||||
@@ -21,13 +22,14 @@ exports.up = function(db, callback) {
|
|||||||
defaultEmail = user.email;
|
defaultEmail = user.email;
|
||||||
fallbackEmail = user.email;
|
fallbackEmail = user.email;
|
||||||
} else {
|
} else {
|
||||||
defaultEmail = user.username + '@' + mailDomains[0].domain;
|
defaultEmail = user.username ? (user.username + '@' + mailDomains[0].domain) : user.email;
|
||||||
fallbackEmail = user.email;
|
fallbackEmail = user.email;
|
||||||
}
|
}
|
||||||
|
|
||||||
db.runSql('UPDATE users SET email = ?, fallbackEmail = ? WHERE id = ?', [ defaultEmail, fallbackEmail, user.id ], iteratorCallback);
|
db.runSql('UPDATE users SET email = ?, fallbackEmail = ? WHERE id = ?', [ defaultEmail, fallbackEmail, user.id ], iteratorCallback);
|
||||||
}, done);
|
}, done);
|
||||||
},
|
},
|
||||||
|
db.runSql.bind(db, 'ALTER TABLE users ADD UNIQUE users_email (email)'),
|
||||||
db.runSql.bind(db, 'COMMIT')
|
db.runSql.bind(db, 'COMMIT')
|
||||||
], callback);
|
], callback);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ if [[ "$(node --version)" != "v8.9.3" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
box_version=$(cd "${SOURCE_DIR}" && git rev-parse "HEAD")
|
box_version=$(cd "${SOURCE_DIR}" && git rev-parse "HEAD")
|
||||||
webadmin_version=$(cd "${SOURCE_DIR}/../webadmin" && git rev-parse "HEAD")
|
branch=$(git rev-parse --abbrev-ref HEAD)
|
||||||
|
webadmin_version=$(cd "${SOURCE_DIR}/../webadmin" && git fetch && git rev-parse "origin/${branch}")
|
||||||
bundle_dir=$(mktemp -d -t box 2>/dev/null || mktemp -d box-XXXXXXXXXX --tmpdir=$TMPDIR)
|
bundle_dir=$(mktemp -d -t box 2>/dev/null || mktemp -d box-XXXXXXXXXX --tmpdir=$TMPDIR)
|
||||||
[[ -z "$bundle_file" ]] && bundle_file="${TMPDIR}/box-${box_version:0:10}-${webadmin_version:0:10}.tar.gz"
|
[[ -z "$bundle_file" ]] && bundle_file="${TMPDIR}/box-${box_version:0:10}-${webadmin_version:0:10}.tar.gz"
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -73,7 +73,7 @@ function SetupError(reason, errorOrMessage) {
|
|||||||
}
|
}
|
||||||
util.inherits(SetupError, Error);
|
util.inherits(SetupError, Error);
|
||||||
SetupError.BAD_FIELD = 'Field error';
|
SetupError.BAD_FIELD = 'Field error';
|
||||||
SetupError.BAD_STATE = 'Field error';
|
SetupError.BAD_STATE = 'Bad State';
|
||||||
SetupError.ALREADY_SETUP = 'Already Setup';
|
SetupError.ALREADY_SETUP = 'Already Setup';
|
||||||
SetupError.INTERNAL_ERROR = 'Internal Error';
|
SetupError.INTERNAL_ERROR = 'Internal Error';
|
||||||
SetupError.EXTERNAL_ERROR = 'External Error';
|
SetupError.EXTERNAL_ERROR = 'External Error';
|
||||||
@@ -184,6 +184,8 @@ function dnsSetup(adminFqdn, domain, zoneName, provider, dnsConfig, tlsConfig, c
|
|||||||
|
|
||||||
if (config.adminDomain()) return callback(new SetupError(SetupError.ALREADY_SETUP));
|
if (config.adminDomain()) return callback(new SetupError(SetupError.ALREADY_SETUP));
|
||||||
|
|
||||||
|
if (gWebadminStatus.configuring || gWebadminStatus.restoring) return callback(new SetupError(SetupError.BAD_STATE, 'Already restoring or configuring'));
|
||||||
|
|
||||||
if (!zoneName) zoneName = tld.getDomain(domain) || domain;
|
if (!zoneName) zoneName = tld.getDomain(domain) || domain;
|
||||||
|
|
||||||
debug('dnsSetup: Setting up Cloudron with domain %s and zone %s', domain, zoneName);
|
debug('dnsSetup: Setting up Cloudron with domain %s and zone %s', domain, zoneName);
|
||||||
@@ -291,6 +293,8 @@ function restore(backupConfig, backupId, version, callback) {
|
|||||||
if (!semver.valid(version)) return callback(new SetupError(SetupError.BAD_STATE, 'version is not a valid semver'));
|
if (!semver.valid(version)) return callback(new SetupError(SetupError.BAD_STATE, 'version is not a valid semver'));
|
||||||
if (semver.major(config.version()) !== semver.major(version) || semver.minor(config.version()) !== semver.minor(version)) return callback(new SetupError(SetupError.BAD_STATE, `Run cloudron-setup with --version ${version} to restore from this backup`));
|
if (semver.major(config.version()) !== semver.major(version) || semver.minor(config.version()) !== semver.minor(version)) return callback(new SetupError(SetupError.BAD_STATE, `Run cloudron-setup with --version ${version} to restore from this backup`));
|
||||||
|
|
||||||
|
if (gWebadminStatus.configuring || gWebadminStatus.restoring) return callback(new SetupError(SetupError.BAD_STATE, 'Already restoring or configuring'));
|
||||||
|
|
||||||
user.count(function (error, count) {
|
user.count(function (error, count) {
|
||||||
if (error) return callback(new SetupError(SetupError.INTERNAL_ERROR, error));
|
if (error) return callback(new SetupError(SetupError.INTERNAL_ERROR, error));
|
||||||
if (count) return callback(new SetupError(SetupError.ALREADY_PROVISIONED, 'Already activated'));
|
if (count) return callback(new SetupError(SetupError.ALREADY_PROVISIONED, 'Already activated'));
|
||||||
|
|||||||
Reference in New Issue
Block a user