1
mirror of https://gitlab.com/commento/commento.git synced 2025-06-29 10:55:40 -04:00

frontend, api: allow disabling login methods individually

This commit is contained in:
Adhityaa Chandrasekar
2019-04-19 19:03:34 -04:00
parent 0e54739980
commit a455ff54bc
17 changed files with 258 additions and 56 deletions

View File

@ -73,7 +73,7 @@
var isLocked = false;
var stickyCommentHex = "none";
var shownReply = {};
var configuredOauths = [];
var configuredOauths = {};
var popupBoxType = "login";
var oauthButtonsShown = false;
var selfHex = undefined;
@ -1266,37 +1266,49 @@
attrSet(emailInput, "placeholder", "Email address");
attrSet(emailInput, "type", "text");
for (var i = 0; i < configuredOauths.length; i++) {
var button = create("button");
var numOauthConfigured = 0;
var oauthProviders = ["google", "twitter", "github", "gitlab"];
oauthProviders.forEach(function(provider) {
console.log(provider);
if (configuredOauths[provider]) {
var button = create("button");
classAdd(button, "button");
classAdd(button, configuredOauths[i] + "-button");
classAdd(button, "button");
classAdd(button, provider+ "-button");
button.innerText = configuredOauths[i];
button.innerText = provider;
onclick(button, global.commentoAuth, {"provider": configuredOauths[i], "id": id});
onclick(button, global.commentoAuth, {"provider": provider, "id": id});
append(oauthButtons, button);
}
append(oauthButtons, button);
numOauthConfigured++;
}
});
if (configuredOauths.length > 0) {
if (numOauthConfigured > 0) {
append(loginBox, oauthSubtitle);
append(oauthButtonsContainer, oauthButtons);
append(loginBox, oauthButtonsContainer);
append(loginBox, hr);
oauthButtonsShown = true;
} else {
oauthButtonsShown = false;
}
append(loginBox, emailSubtitle);
append(email, emailInput);
append(email, emailButton);
append(emailContainer, email);
append(loginBox, emailContainer);
append(loginLinkContainer, loginLink);
append(loginBox, loginLinkContainer);
if (numOauthConfigured > 0 && configuredOauths["commento"]) {
append(loginBox, hr);
}
if (configuredOauths["commento"]) {
append(loginBox, emailSubtitle);
append(loginBox, emailContainer);
append(loginBox, loginLinkContainer);
}
append(loginBox, close);

View File

@ -102,6 +102,8 @@
global.vs("domains", resp.domains);
global.vs("configuredOauths", resp.configuredOauths);
if (callback !== undefined) {
callback();
}

View File

@ -31,7 +31,7 @@
{
"id": "general",
"text": "General",
"meaning": "Email settings, data export",
"meaning": "Names, authentication, and export",
"selected": false,
"open": global.generalOpen,
},
@ -72,6 +72,9 @@
// list of domains dynamically loaded; obviously mutable
domains: [{show: false, viewsLast30Days: global.numberify(0), commentsLast30Days: global.numberify(0), moderators: []}],
// configured oauth providers that will be filled in after a backend request
configuredOauths: {},
// whether or not to show the settings column; mutable because we do not
// show the column until a domain has been selected
showSettings: false,