diff --git a/setup/start.sh b/setup/start.sh index 5fcbd271d..9ecc61f56 100755 --- a/setup/start.sh +++ b/setup/start.sh @@ -193,15 +193,15 @@ fi echo "Add webadmin api cient" readonly ADMIN_SCOPES="cloudron,developer,profile,users,apps,settings" mysql -u root -p${mysql_root_password} \ - -e "REPLACE INTO clients (id, appId, type, clientSecret, redirectURI, scope) VALUES (\"cid-webadmin\", \"Settings\", \"admin\", \"secret-webadmin\", \"${admin_origin}\", \"${ADMIN_SCOPES}\")" box + -e "REPLACE INTO clients (id, appId, type, clientSecret, redirectURI, scope) VALUES (\"cid-webadmin\", \"Settings\", \"external\", \"secret-webadmin\", \"${admin_origin}\", \"${ADMIN_SCOPES}\")" box echo "Add SDK api client" mysql -u root -p${mysql_root_password} \ - -e "REPLACE INTO clients (id, appId, type, clientSecret, redirectURI, scope) VALUES (\"cid-sdk\", \"SDK\", \"sdk\", \"secret-sdk\", \"${admin_origin}\", \"*,roleSdk\")" box + -e "REPLACE INTO clients (id, appId, type, clientSecret, redirectURI, scope) VALUES (\"cid-sdk\", \"SDK\", \"external\", \"secret-sdk\", \"${admin_origin}\", \"*,roleSdk\")" box echo "Add cli api client" mysql -u root -p${mysql_root_password} \ - -e "REPLACE INTO clients (id, appId, type, clientSecret, redirectURI, scope) VALUES (\"cid-cli\", \"Cloudron Tool\", \"cli\", \"secret-cli\", \"${admin_origin}\", \"*,roleSdk\")" box + -e "REPLACE INTO clients (id, appId, type, clientSecret, redirectURI, scope) VALUES (\"cid-cli\", \"Cloudron Tool\", \"external\", \"secret-cli\", \"${admin_origin}\", \"*,roleSdk\")" box set_progress "80" "Starting Cloudron" systemctl start cloudron.target diff --git a/src/clients.js b/src/clients.js index ad8868bfe..edc588334 100644 --- a/src/clients.js +++ b/src/clients.js @@ -30,10 +30,7 @@ exports = module.exports = { TYPE_EXTERNAL: 'external', TYPE_OAUTH: 'addon-oauth', TYPE_SIMPLE_AUTH: 'addon-simpleauth', - TYPE_PROXY: 'addon-proxy', - TYPE_ADMIN: 'admin', - TYPE_SDK: 'sdk', - TYPE_CLI: 'cli' + TYPE_PROXY: 'addon-proxy' }; var assert = require('assert'), @@ -157,16 +154,9 @@ function getAll(callback) { var tmp = []; async.each(results, function (record, callback) { - if (record.type === exports.TYPE_ADMIN || record.type === exports.TYPE_SDK || record.type === exports.TYPE_CLI) { + if (record.type === exports.TYPE_EXTERNAL) { + // the appId in this case holds the name record.name = record.appId; - record.location = constants.ADMIN_LOCATION; - - tmp.push(record); - - return callback(null); - } else if (record.type === exports.TYPE_EXTERNAL) { - record.name = record.appId; - record.location = 'external'; tmp.push(record); diff --git a/src/cloudron.js b/src/cloudron.js index ff0350595..4995beb65 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -229,7 +229,7 @@ function activate(username, password, email, displayName, ip, auditSource, callb if (error && error.reason === UserError.BAD_FIELD) return callback(new CloudronError(CloudronError.BAD_FIELD, error.message)); if (error) return callback(new CloudronError(CloudronError.INTERNAL_ERROR, error)); - clients.getByAppIdAndType('webadmin', clients.TYPE_ADMIN, function (error, result) { + clients.get('cid-webadmin', function (error, result) { if (error) return callback(new CloudronError(CloudronError.INTERNAL_ERROR, error)); // Also generate a token so the admin creation can also act as a login diff --git a/src/routes/oauth2.js b/src/routes/oauth2.js index a3e977ddd..1ef29165c 100644 --- a/src/routes/oauth2.js +++ b/src/routes/oauth2.js @@ -206,8 +206,7 @@ function loginForm(req, res) { if (error) return sendError(req, res, 'Unknown OAuth client'); switch (result.type) { - case clients.TYPE_ADMIN: return render(constants.ADMIN_NAME, '/api/v1/cloudron/avatar'); - case clients.TYPE_EXTERNAL: return render('External Application', '/api/v1/cloudron/avatar'); + case clients.TYPE_EXTERNAL: return render(result.appId, '/api/v1/cloudron/avatar'); case clients.TYPE_SIMPLE_AUTH: return sendError(req, res, 'Unknown OAuth client'); default: break; } @@ -419,11 +418,8 @@ var authorization = [ // Handle our different types of oauth clients var type = req.oauth2.client.type; - if (type === clients.TYPE_ADMIN) { - eventlog.add(eventlog.ACTION_USER_LOGIN, auditSource(req, 'admin'), { userId: req.oauth2.user.id }); - return next(); - } else if (type === clients.TYPE_EXTERNAL) { - eventlog.add(eventlog.ACTION_USER_LOGIN, auditSource(req, 'external'), { userId: req.oauth2.user.id }); + if (type === clients.TYPE_EXTERNAL) { + eventlog.add(eventlog.ACTION_USER_LOGIN, auditSource(req, req.oauth2.client.appId), { userId: req.oauth2.user.id }); return next(); } else if (type === clients.TYPE_SIMPLE_AUTH) { return sendError(req, res, 'Unknown OAuth client.'); diff --git a/src/user.js b/src/user.js index c45727533..aebe9fca4 100644 --- a/src/user.js +++ b/src/user.js @@ -455,7 +455,7 @@ function setPassword(userId, newPassword, callback) { if (error) return callback(new UserError(UserError.INTERNAL_ERROR, error)); // Also generate a token so the new user can get logged in immediately - clients.getByAppIdAndType('webadmin', clients.TYPE_ADMIN, function (error, result) { + clients.get('cid-webadmin', function (error, result) { if (error) return callback(new UserError(UserError.INTERNAL_ERROR, error)); var token = tokendb.generateToken();