var PhpGenUserManagementApi = { _invokeApiFunction:function (functionShortName, data) { var result = new $.Deferred(); $.get( 'user_management_api.php', $.extend({}, { 'hname':functionShortName }, data)) .success( function (data) { if (data.status == 'error') result.reject(data.result); else { if (data.result) result.resolve(data.result); else result.resolve(); } }) .error( function (xhr, status, errorMessage) { result.reject(status + ': ' + errorMessage); }); return result.promise(); }, addUser:function (id, name, password) { return this._invokeApiFunction('au', { 'id':id, 'username':name, 'password':password }); }, removeUser:function (id) { return this._invokeApiFunction('ru', { 'user_id':id }); }, changeUserName:function (id, username) { return this._invokeApiFunction('eu', { 'user_id':id, 'username':username }); }, changeUserPassword:function (id, password) { return this._invokeApiFunction('cup', { 'user_id':id, 'password':password }); }, getUserGrants:function (userId) { return this._invokeApiFunction('gug', { 'user_id':userId }); }, addUserGrant:function (userId, pageName, grantName) { return this._invokeApiFunction('aug', { 'user_id':userId, 'page_name':pageName, 'grant':grantName }); }, removeUserGrant:function (userId, pageName, grantName) { return this._invokeApiFunction('rug', { 'user_id':userId, 'page_name':pageName, 'grant':grantName }); }, selfChangePassword: function (currentPassword, newPassword) { return this._invokeApiFunction('self_change_password', { 'current_password':currentPassword, 'new_password':newPassword }); } };