//@include lib_Class.js /** * @class sol.common.ix.RfUtils * @extends sol.Base * Helper functions to execute registered functions with JSON parameter * * @author MW, ELO Digital Office GmbH * @version 1.03.000 * * @eloix * @requires sol.common.JsonUtils * @requires sol.common.UserUtils */ sol.define("sol.common.ix.RfUtils", { singleton: true, /** @property {sol.Logger} * The logger for the module */ initialize: function () { var me = this; me.logger = sol.create("sol.Logger", { scope: me.$className }); }, /** * Stringify the JavaScript object and handle Java objects. * @param {Object} obj The object to stringify. * @param {Object} config Configuration * @return {String} */ stringify: function (obj, config) { return sol.common.JsonUtils.stringifyAll(obj || {}, config); }, /** * Parse the given object properties and check the mandatory parameters * @param {de.elo.ix.client.IXServerEventsContext} ec Execution context * @param {String} funcName Function name. * @param {String} jsonStr Parameters as JSON string * @return {Object} */ parseAndCheckParams: function (ec, funcName, jsonStr) { var me = this, paramObj, logStr, i; try { paramObj = JSON.parse(jsonStr); } catch (ex) { ec.throwException(IXExceptionC.INVALID_PARAM, "Can't parse JSON parameter string: " + jsonStr); } logStr = me.logger.format(["{0}: params={1}", funcName, jsonStr]); me.logger.debug(logStr); for (i = 3; i < arguments.length; i++) { if (paramObj[arguments[i]] === undefined) { ec.throwException(IXExceptionC.INVALID_PARAM, "<h3>Mandatory parameter is undefined: " + arguments[i] + "</h3><br>" + logStr); } } return paramObj; }, /** * Check if the user has administrative rights * @param {de.elo.ix.client.UserInfo|String} user UserInfo, user name or ID * @param {Object} config Configuration * @param {String} config.adminTicket Ticket of the admin connection */ checkMainAdminRights: function (user, config) { if (config && config.adminTicket) { if (config.adminTicket == ixConnectAdmin.loginResult.clientInfo.ticket) { return; } } if (!sol.common.UserUtils.isMainAdmin(user)) { throw "Access denied. User must have main administrator rights."; } } });