TenantsCustomizationService.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. "use strict";
  2. /**
  3. * Licensed Materials - Property of IBM
  4. * IBM Cognos Products: admin
  5. * Copyright IBM Corp. 2018
  6. * US Government Users Restricted Rights -Use, duplication or disclosure
  7. * restricted by GSA ADP Schedule Contract with IBM Corp.
  8. */
  9. define(['underscore', 'bi/admin/common/services/BaseCustomizationService', 'bi/admin/common/utils/AJAXUtils', 'bi/admin/nls/StringResource'], function (_, BaseCustomizationService, AJAXUtils, StringResource) {
  10. 'use strict'; //NOSONAR: meant to be strict
  11. var TenantsCustomizationService = BaseCustomizationService.extend({
  12. getCustomizations: function getCustomizations(id) {
  13. return this._getCustomizations(AJAXUtils.getPath("tenantCustomizations", id));
  14. },
  15. saveCustomizations: function saveCustomizations(id) {
  16. return Promise.try(function () {
  17. return this._saveCustomizations(AJAXUtils.getPath("tenantCustomizations", id));
  18. }.bind(this));
  19. },
  20. _saveCustomizations: function _saveCustomizations(url) {
  21. if (this._customizations.fileUpload_location === ".my_folders") {
  22. delete this._customizations.fileUpload_location;
  23. url = url + "&fields=fileUpload_location";
  24. return this._ajaxDelete(url, 'DELETE');
  25. }
  26. if (this._customizations.ui_teamFolders && _.isEmpty(this._customizations.ui_teamFolders)) {
  27. delete this._customizations.ui_teamFolders;
  28. url = url + "&fields=ui_teamFolders";
  29. return this._ajaxDelete(url, 'DELETE');
  30. }
  31. return this._ajaxPut(url, this._customizations);
  32. },
  33. _getCustomizationsWithDefaults: function _getCustomizationsWithDefaults() {
  34. var returnValue = {
  35. 'ui_theme': StringResource.get('default'),
  36. 'ui_homePage': {
  37. 'perspective': StringResource.get('default')
  38. },
  39. 'ui_excludedFeatures': {
  40. 'ids': []
  41. },
  42. 'ui_teamFolders': {},
  43. 'parameters': {},
  44. 'contentLocale': "",
  45. 'productLocale': "",
  46. 'timeZoneID': "",
  47. 'baseTextDirection': "",
  48. 'biDirectionalFeaturesEnabled': false,
  49. 'fileUpload_location': null
  50. };
  51. if (this._customizations) {
  52. Object.keys(returnValue).forEach(this._replaceDefaultsWCustomValues.bind(this, returnValue, this._customizations));
  53. }
  54. return returnValue;
  55. },
  56. getTenant: function getTenant(id) {
  57. return this._ajaxGet(AJAXUtils.getPath("getTenant", id) + "&fields=defaultName,disabled,permissions,owner.defaultName,hidden,capabilities,hasChildren,searchPath,modificationTime,creationTime,ancestors,defaultDescription,tenantID,tenantMembers,id");
  58. },
  59. getTenantIDForUser: function getTenantIDForUser(userID) {
  60. return this._ajaxGet(AJAXUtils.getPath("tenantIDForUser", userID) + "?fields=tenantID");
  61. },
  62. _getTenants: function _getTenants() {
  63. return this._ajaxGet(AJAXUtils.getPath("tenants") + "?fields=defaultName,disabled,modificationTime,permissions,tenantID,storeID"); //return this._ajaxGet('v1/search/cm?filter=type|tenant');
  64. },
  65. getTenantsList: function getTenantsList() {
  66. return this._getTenants().then(function (tenants) {
  67. return tenants.data;
  68. }.bind(this));
  69. },
  70. addTenant: function addTenant(tenantSpec) {
  71. return this._ajaxPost(AJAXUtils.getPath("tenants"), tenantSpec);
  72. },
  73. updateTenant: function updateTenant(id, tenantSpec) {
  74. return this._ajaxPut(AJAXUtils.getPath("updateTenant", id), tenantSpec);
  75. },
  76. addTenantMembers: function addTenantMembers(id, tenantMembers) {
  77. return this.updateTenant(id, tenantMembers);
  78. },
  79. removeTenantMembers: function removeTenantMembers(id, tenantMembers) {
  80. return this.updateTenant(id, tenantMembers);
  81. },
  82. disableTenant: function disableTenant(id, tenantSpec) {
  83. return this.updateTenant(id, {
  84. 'disabled': tenantSpec
  85. });
  86. },
  87. deleteTenant: function deleteTenant(id, shouldDeleteTenantUserProfile) {
  88. if (!shouldDeleteTenantUserProfile) {
  89. return this._ajaxDelete(AJAXUtils.getPath("deleteTenant", id));
  90. } else {
  91. return this._ajaxDelete(AJAXUtils.getPath("deleteTenantUserProfile", id));
  92. }
  93. },
  94. killTenantSessions: function killTenantSessions(id) {
  95. return this._ajaxDelete(AJAXUtils.getPath("killTenantSessions", id));
  96. },
  97. getTenantNotificationSettings: function getTenantNotificationSettings(id) {
  98. return this._fetchGet(AJAXUtils.getPath("tenantNotificationSettings", id));
  99. },
  100. setTenantNotificationSettings: function setTenantNotificationSettings(id, senderEmail) {
  101. return this._fetchPut(AJAXUtils.getPath("tenantNotificationSettings", id), {
  102. "defaultSender": senderEmail
  103. });
  104. },
  105. getSystemNotificationSettings: function getSystemNotificationSettings() {
  106. return this._fetchGet(AJAXUtils.getPath("systemNotificationSettings"));
  107. },
  108. getTenantPreferences: function getTenantPreferences(id) {
  109. return this._fetchGet(AJAXUtils.getPath("tenantPreferences", id));
  110. },
  111. setTenantPreferences: function setTenantPreferences(id, preferences) {
  112. return this._fetchPut(AJAXUtils.getPath("tenantPreferences", id), preferences);
  113. }
  114. });
  115. return TenantsCustomizationService;
  116. });