mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-10 08:48:03 +08:00
288 lines
5.5 KiB
JavaScript
288 lines
5.5 KiB
JavaScript
import { AbstractAjaxRemote } from 'Remote/AbstractAjax';
|
|
|
|
class RemoteAdminAjax extends AbstractAjaxRemote {
|
|
constructor() {
|
|
super();
|
|
|
|
this.oRequests = {};
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {string} sLogin
|
|
* @param {string} sPassword
|
|
*/
|
|
adminLogin(fCallback, sLogin, sPassword) {
|
|
this.defaultRequest(fCallback, 'AdminLogin', {
|
|
Login: sLogin,
|
|
Password: sPassword
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
*/
|
|
adminLogout(fCallback) {
|
|
this.defaultRequest(fCallback, 'AdminLogout');
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {?} oData
|
|
*/
|
|
saveAdminConfig(fCallback, oData) {
|
|
this.defaultRequest(fCallback, 'AdminSettingsUpdate', oData);
|
|
}
|
|
|
|
/**
|
|
* @param {string} key
|
|
* @param {?Function} valueFn
|
|
* @param {?Function} fn
|
|
*/
|
|
saveAdminConfigHelper(key, valueFn, fn) {
|
|
return (value) => {
|
|
const data = {};
|
|
data[key] = valueFn ? valueFn(value) : value;
|
|
this.saveAdminConfig(fn || null, data);
|
|
};
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {boolean=} bIncludeAliases = true
|
|
*/
|
|
domainList(fCallback, bIncludeAliases = true) {
|
|
this.defaultRequest(fCallback, 'AdminDomainList', {
|
|
IncludeAliases: bIncludeAliases ? 1 : 0
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
*/
|
|
pluginList(fCallback) {
|
|
this.defaultRequest(fCallback, 'AdminPluginList');
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
*/
|
|
packagesList(fCallback) {
|
|
this.defaultRequest(fCallback, 'AdminPackagesList');
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
*/
|
|
coreData(fCallback) {
|
|
this.defaultRequest(fCallback, 'AdminCoreData');
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
*/
|
|
updateCoreData(fCallback) {
|
|
this.defaultRequest(fCallback, 'AdminUpdateCoreData', {}, 90000);
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {Object} oPackage
|
|
*/
|
|
packageInstall(fCallback, oPackage) {
|
|
this.defaultRequest(
|
|
fCallback,
|
|
'AdminPackageInstall',
|
|
{
|
|
Id: oPackage.id,
|
|
Type: oPackage.type,
|
|
File: oPackage.file
|
|
},
|
|
60000
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {Object} oPackage
|
|
*/
|
|
packageDelete(fCallback, oPackage) {
|
|
this.defaultRequest(fCallback, 'AdminPackageDelete', {
|
|
Id: oPackage.id
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {string} sName
|
|
*/
|
|
domain(fCallback, sName) {
|
|
this.defaultRequest(fCallback, 'AdminDomainLoad', {
|
|
Name: sName
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {string} sName
|
|
*/
|
|
plugin(fCallback, sName) {
|
|
this.defaultRequest(fCallback, 'AdminPluginLoad', {
|
|
Name: sName
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {string} sName
|
|
*/
|
|
domainDelete(fCallback, sName) {
|
|
this.defaultRequest(fCallback, 'AdminDomainDelete', {
|
|
Name: sName
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {string} sName
|
|
* @param {boolean} bDisabled
|
|
*/
|
|
domainDisable(fCallback, sName, bDisabled) {
|
|
return this.defaultRequest(fCallback, 'AdminDomainDisable', {
|
|
Name: sName,
|
|
Disabled: bDisabled ? 1 : 0
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {Object} oConfig
|
|
*/
|
|
pluginSettingsUpdate(fCallback, oConfig) {
|
|
return this.defaultRequest(fCallback, 'AdminPluginSettingsUpdate', oConfig);
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {string} sName
|
|
* @param {boolean} bDisabled
|
|
*/
|
|
pluginDisable(fCallback, sName, bDisabled) {
|
|
return this.defaultRequest(fCallback, 'AdminPluginDisable', {
|
|
Name: sName,
|
|
Disabled: bDisabled ? 1 : 0
|
|
});
|
|
}
|
|
|
|
createDomainAlias(fCallback, sName, sAlias) {
|
|
this.defaultRequest(fCallback, 'AdminDomainAliasSave', {
|
|
Name: sName,
|
|
Alias: sAlias
|
|
});
|
|
}
|
|
|
|
createOrUpdateDomain(
|
|
fCallback,
|
|
bCreate,
|
|
sName,
|
|
sIncHost,
|
|
iIncPort,
|
|
sIncSecure,
|
|
bIncShortLogin,
|
|
bUseSieve,
|
|
sSieveAllowRaw,
|
|
sSieveHost,
|
|
iSievePort,
|
|
sSieveSecure,
|
|
sOutHost,
|
|
iOutPort,
|
|
sOutSecure,
|
|
bOutShortLogin,
|
|
bOutAuth,
|
|
bOutPhpMail,
|
|
sWhiteList
|
|
) {
|
|
this.defaultRequest(fCallback, 'AdminDomainSave', {
|
|
Create: bCreate ? 1 : 0,
|
|
Name: sName,
|
|
|
|
IncHost: sIncHost,
|
|
IncPort: iIncPort,
|
|
IncSecure: sIncSecure,
|
|
IncShortLogin: bIncShortLogin ? 1 : 0,
|
|
|
|
UseSieve: bUseSieve ? 1 : 0,
|
|
SieveAllowRaw: sSieveAllowRaw ? 1 : 0,
|
|
SieveHost: sSieveHost,
|
|
SievePort: iSievePort,
|
|
SieveSecure: sSieveSecure,
|
|
|
|
OutHost: sOutHost,
|
|
OutPort: iOutPort,
|
|
OutSecure: sOutSecure,
|
|
OutShortLogin: bOutShortLogin ? 1 : 0,
|
|
OutAuth: bOutAuth ? 1 : 0,
|
|
OutUsePhpMail: bOutPhpMail ? 1 : 0,
|
|
|
|
WhiteList: sWhiteList
|
|
});
|
|
}
|
|
|
|
testConnectionForDomain(
|
|
fCallback,
|
|
sName,
|
|
sIncHost,
|
|
iIncPort,
|
|
sIncSecure,
|
|
bUseSieve,
|
|
sSieveHost,
|
|
iSievePort,
|
|
sSieveSecure,
|
|
sOutHost,
|
|
iOutPort,
|
|
sOutSecure,
|
|
bOutAuth,
|
|
bOutPhpMail
|
|
) {
|
|
this.defaultRequest(fCallback, 'AdminDomainTest', {
|
|
Name: sName,
|
|
IncHost: sIncHost,
|
|
IncPort: iIncPort,
|
|
IncSecure: sIncSecure,
|
|
UseSieve: bUseSieve ? 1 : 0,
|
|
SieveHost: sSieveHost,
|
|
SievePort: iSievePort,
|
|
SieveSecure: sSieveSecure,
|
|
OutHost: sOutHost,
|
|
OutPort: iOutPort,
|
|
OutSecure: sOutSecure,
|
|
OutAuth: bOutAuth ? 1 : 0,
|
|
OutUsePhpMail: bOutPhpMail ? 1 : 0
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {?} oData
|
|
*/
|
|
testContacts(fCallback, oData) {
|
|
this.defaultRequest(fCallback, 'AdminContactsTest', oData);
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
* @param {?} oData
|
|
*/
|
|
saveNewAdminPassword(fCallback, oData) {
|
|
this.defaultRequest(fCallback, 'AdminPasswordUpdate', oData);
|
|
}
|
|
|
|
/**
|
|
* @param {?Function} fCallback
|
|
*/
|
|
adminPing(fCallback) {
|
|
this.defaultRequest(fCallback, 'AdminPing');
|
|
}
|
|
}
|
|
|
|
export default new RemoteAdminAjax();
|