summaryrefslogtreecommitdiffstats
path: root/trunk/etherpad/src/etherpad/control/pro/admin/account_manager_control.js
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/etherpad/src/etherpad/control/pro/admin/account_manager_control.js')
-rw-r--r--trunk/etherpad/src/etherpad/control/pro/admin/account_manager_control.js260
1 files changed, 0 insertions, 260 deletions
diff --git a/trunk/etherpad/src/etherpad/control/pro/admin/account_manager_control.js b/trunk/etherpad/src/etherpad/control/pro/admin/account_manager_control.js
deleted file mode 100644
index 8f93b2e..0000000
--- a/trunk/etherpad/src/etherpad/control/pro/admin/account_manager_control.js
+++ /dev/null
@@ -1,260 +0,0 @@
-/**
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS-IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import("funhtml.*");
-import("stringutils");
-import("stringutils.*");
-import("email.sendEmail");
-
-import("etherpad.globals.*");
-import("etherpad.utils.*");
-import("etherpad.sessions.getSession");
-
-import("etherpad.control.pro.admin.pro_admin_control");
-
-import("etherpad.pne.pne_utils");
-import("etherpad.pro.pro_accounts");
-import("etherpad.pro.pro_accounts.getSessionProAccount");
-import("etherpad.pro.pro_utils");
-import("etherpad.pro.pro_config");
-import("etherpad.pro.domains");
-import("etherpad.billing.team_billing");
-
-jimport("java.lang.System.out.println");
-
-function _err(m) {
- if (m) {
- getSession().accountManagerError = m;
- response.redirect(request.path);
- }
-}
-
-function _renderTopDiv(mid, htmlId) {
- var m = getSession()[mid];
- if (m) {
- delete getSession()[mid];
- return DIV({id: htmlId}, m);
- } else {
- return '';
- }
-}
-
-function _errorDiv() { return _renderTopDiv('accountManagerError', 'error-message'); }
-function _messageDiv() { return _renderTopDiv('accountManagerMessage', 'message'); }
-function _warningDiv() { return _renderTopDiv('accountManagerWarning', 'warning'); }
-
-function onRequest() {
- var parts = request.path.split('/');
-
- function dispatchAccountAction(action, handlerGet, handlerPost) {
- if ((parts[4] == action) && (isNumeric(parts[5]))) {
- if (request.isGet) { handlerGet(+parts[5]); }
- if (request.isPost) { handlerPost(+parts[5]); }
- return true;
- }
- return false;
- }
-
- if (dispatchAccountAction('account', render_account_get, render_account_post)) {
- return true;
- }
- if (dispatchAccountAction('delete-account', render_delete_account_get, render_delete_account_post)) {
- return true;
- };
-
- return false;
-}
-
-function render_main() {
- var accountList = pro_accounts.listAllDomainAccounts();
- pro_admin_control.renderAdminPage('account-manager', {
- accountList: accountList,
- messageDiv: _messageDiv,
- warningDiv: _warningDiv
- });
-}
-
-function render_new_get() {
- pro_admin_control.renderAdminPage('new-account', {
- oldData: getSession().accountManagerFormData || {},
- stringutils: stringutils,
- errorDiv: _errorDiv
- });
-}
-
-function _ensureBillingOK() {
- var activeAccounts = pro_accounts.getCachedActiveCount(domains.getRequestDomainId());
- if (activeAccounts < PRO_FREE_ACCOUNTS) {
- return;
- }
-
- var status = team_billing.getDomainStatus(domains.getRequestDomainId());
- if (!((status == team_billing.CURRENT)
- || (status == team_billing.PAST_DUE))) {
- _err(SPAN(
- "A payment profile is required to create more than ", PRO_FREE_ACCOUNTS,
- " accounts. ",
- A({href: "/ep/admin/billing/", id: "billinglink"}, "Manage billing")));
- }
-}
-
-function render_new_post() {
- if (request.params.cancel) {
- response.redirect('/ep/admin/account-manager/');
- }
-
- _ensureBillingOK();
-
- var fullName = request.params.fullName;
- var email = trim(request.params.email);
- var tempPass = request.params.tempPass;
- var makeAdmin = !!request.params.makeAdmin;
-
- getSession().accountManagerFormData = {
- fullName: fullName,
- email: email,
- tempPass: tempPass,
- makeAdmin: makeAdmin
- };
-
- // validation
- if (!tempPass) {
- tempPass = stringutils.randomString(6);
- }
-
- _err(pro_accounts.validateEmail(email));
- _err(pro_accounts.validateFullName(fullName));
- _err(pro_accounts.validatePassword(tempPass));
-
- var existingAccount = pro_accounts.getAccountByEmail(email, null);
- if (existingAccount) {
- _err("There is already a account with that email address.");
- }
-
- pro_accounts.createNewAccount(null, fullName, email, tempPass, makeAdmin);
- var account = pro_accounts.getAccountByEmail(email, null);
-
- pro_accounts.setTempPassword(account, tempPass);
- sendWelcomeEmail(account, tempPass);
-
- delete getSession().accountManagerFormData;
- getSession().accountManagerMessage = "Account "+fullName+" ("+email+") created successfully.";
- response.redirect('/ep/admin/account-manager/');
-}
-
-function sendWelcomeEmail(account, tempPass) {
- var subj = "Welcome to EtherPad on "+pro_utils.getFullProDomain()+"!";
- var toAddr = account.email;
- var fromAddr = pro_utils.getEmailFromAddr();
-
- var body = renderTemplateAsString('pro/account/account-welcome-email.ejs', {
- account: account,
- adminAccount: getSessionProAccount(),
- signinLink: pro_accounts.getTempSigninUrl(account, tempPass),
- toEmail: toAddr,
- siteName: pro_config.getConfig().siteName
- });
- try {
- sendEmail(toAddr, fromAddr, subj, {}, body);
- } catch (ex) {
- var d = DIV();
- d.push(P("Warning: unable to send welcome email."));
- if (pne_utils.isPNE()) {
- d.push(P("Perhaps you have not ",
- A({href: '/ep/admin/pne-config'}, "Configured SMTP on this server", "?")));
- }
- getSession().accountManagerWarning = d;
- }
-}
-
-// Managing a single account.
-function render_account_get(accountId) {
- var account = pro_accounts.getAccountById(accountId);
- if (!account) {
- response.write("Account not found.");
- return true;
- }
- pro_admin_control.renderAdminPage('manage-account', {
- account: account,
- errorDiv: _errorDiv,
- warningDiv: _warningDiv
- });
-}
-
-function render_account_post(accountId) {
- if (request.params.cancel) {
- response.redirect('/ep/admin/account-manager/');
- }
- var newFullName = request.params.newFullName;
- var newEmail = request.params.newEmail;
- var newIsAdmin = !!request.params.newIsAdmin;
-
- _err(pro_accounts.validateEmail(newEmail));
- _err(pro_accounts.validateFullName(newFullName));
-
- if ((!newIsAdmin) && (accountId == getSessionProAccount().id)) {
- _err("You cannot remove your own administrator privileges.");
- }
-
- var account = pro_accounts.getAccountById(accountId);
- if (!account) {
- response.write("Account not found.");
- return true;
- }
-
- pro_accounts.setEmail(account, newEmail);
- pro_accounts.setFullName(account, newFullName);
- pro_accounts.setIsAdmin(account, newIsAdmin);
-
- getSession().accountManageMessage = "Info updated.";
- response.redirect('/ep/admin/account-manager/');
-}
-
-function render_delete_account_get(accountId) {
- var account = pro_accounts.getAccountById(accountId);
- if (!account) {
- response.write("Account not found.");
- return true;
- }
- pro_admin_control.renderAdminPage('delete-account', {
- account: account,
- errorDiv: _errorDiv
- });
-}
-
-function render_delete_account_post(accountId) {
- if (request.params.cancel) {
- response.redirect("/ep/admin/account-manager/account/"+accountId);
- }
-
- if (accountId == getSessionProAccount().id) {
- getSession().accountManagerError = "You cannot delete your own account.";
- response.redirect("/ep/admin/account-manager/account/"+accountId);
- }
-
- var account = pro_accounts.getAccountById(accountId);
- if (!account) {
- response.write("Account not found.");
- return true;
- }
-
- pro_accounts.setDeleted(account);
- getSession().accountManagerMessage = "The account "+account.fullName+" <"+account.email+"> has been deleted.";
- response.redirect("/ep/admin/account-manager/");
-}
-
-
-