summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE-common/client/app/services/admins/admins.service.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE-common/client/app/services/admins/admins.service.js')
-rw-r--r--ecomp-portal-FE-common/client/app/services/admins/admins.service.js221
1 files changed, 221 insertions, 0 deletions
diff --git a/ecomp-portal-FE-common/client/app/services/admins/admins.service.js b/ecomp-portal-FE-common/client/app/services/admins/admins.service.js
new file mode 100644
index 00000000..3658052c
--- /dev/null
+++ b/ecomp-portal-FE-common/client/app/services/admins/admins.service.js
@@ -0,0 +1,221 @@
+/*-
+ * ================================================================================
+ * ECOMP Portal
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.
+ * ================================================================================
+ */
+/**
+ * Created by nnaffar on 11/22/2015.
+ */
+'use strict';
+
+(function () {
+ class AdminsService {
+ constructor($q, $log, $http, conf, uuid, utilsService) {
+ this.$q = $q;
+ this.$log = $log;
+ this.$http = $http;
+ this.conf = conf;
+ this.uuid = uuid;
+ this.utilsService = utilsService;
+ }
+
+ getAccountAdmins() {
+ let deferred = this.$q.defer();
+ //this.$log.info('AdminsService::get all applications admins list');
+ this.$http({
+ method: "GET",
+ cache: false,
+ url: this.conf.api.accountAdmins,
+ headers: {
+ 'X-ECOMP-RequestID':this.uuid.generate()
+ }
+ })
+ .then( res => {
+ // If response comes back as a redirected HTML page which IS NOT a success
+ if (this.utilsService.isValidJSON(res)=== false) {
+ this.$log.error('AdminsService::getAccountAdmins Failed');
+ deferred.reject("AdminsService::getAccountAdmins Failed");
+ } else {
+ // this.$log.info('AdminsService::getAccountAdmins Succeeded');
+ deferred.resolve(res.data);
+ }
+ })
+ .catch( status => {
+ this.$log.error('AdminsService::getAccountAdmins Failed', status);
+ deferred.reject(status);
+ });
+
+ return deferred.promise;
+ }
+
+ getAdminAppsRoles(orgUserId) {
+ let deferred = this.$q.defer();
+ //this.$log.info('AdminsService::getAdminAppsRoles.adminAppsRoles');
+
+ this.$http({
+ method: "GET",
+ url: this.conf.api.adminAppsRoles,
+ params: {user: orgUserId},
+ cache: false,
+ headers: {
+ 'X-ECOMP-RequestID':this.uuid.generate()
+ }
+ }).then( res => {
+ // If response comes back as a redirected HTML page which IS NOT a success
+ if (this.utilsService.isValidJSON(res)=== false) {
+ this.$log.error('AdminsService::getAdminAppsRoles.adminAppsRoles Failed');
+ deferred.reject("AdminsService::getAdminAppsRoles.adminAppsRoles Failed");
+ } else {
+ // this.$log.info('AdminsService::getAdminAppsRoles.adminAppsRoles Succeeded');
+ deferred.resolve(res.data);
+ }
+ })
+ .catch( status => {
+ this.$log.error('AdminsService::getAdminAppsRoles.adminAppsRoles Failed', status);
+ deferred.reject(status);
+ });
+
+ return deferred.promise;
+ }
+ /*Author: Rui*/
+ getRolesByApp(appId) {
+ let deferred = this.$q.defer();
+ this.$log.info('AdminsService::getRolesByApp');
+ let url = this.conf.api.adminAppsRoles + '/' + appId;
+ this.$http({
+ method: "GET",
+ url: url,
+ cache: false,
+ headers: {
+ 'X-ECOMP-RequestID':this.uuid.generate()
+ }
+ }).then( res => {
+ // If response comes back as a redirected HTML page which IS NOT a success
+ if (Object.keys(res.data).length == 0) {
+ deferred.reject("AdminsService::getAdminAppsRoles.getRolesByApp Failed");
+ } else {
+ this.$log.info('AdminsService::getAdminAppsRoles.getRolesByApp Succeeded');
+ deferred.resolve(res.data);
+ }
+ })
+ .catch( status => {
+ deferred.reject(status);
+ });
+
+ return deferred.promise;
+ }
+
+ updateAdminAppsRoles(newAdminAppRoles) {
+ let deferred = this.$q.defer();
+ // this.$log.info('AdminsService::updateAdminAppsRoles');
+ this.$http({
+ method: "PUT",
+ url: this.conf.api.adminAppsRoles,
+ data: newAdminAppRoles,
+ headers: {
+ 'X-ECOMP-RequestID':this.uuid.generate()
+ }
+ }).then( res => {
+ if (this.utilsService.isValidJSON(res)=== false) {
+ this.$log.error('AdminsService::updateAdminAppsRoles Failed');
+ deferred.reject("AdminsService::updateAdminAppsRoles Failed");
+ } else {
+ //this.$log.info('AdminsService::updateAdminAppsRoles success:');
+ deferred.resolve(res.data);
+ }
+
+ })
+ .catch( status => {
+ this.$log.error('AdminsService::updateAdminAppsRoles: rejection:' + status);
+ deferred.reject(status);
+ });
+
+ return deferred.promise;
+ }
+
+ /**
+ * Tests the specified password against complexity requirements.
+ * Returns an explanation message if the test fails; null if it passes.
+ */
+ isComplexPassword(str) {
+ let minLength = 8;
+ let message = 'Password is too simple. Minimum length is '+ minLength + ', '
+ + 'and it must use letters, digits and special characters.';
+ if (str == null)
+ return message;
+
+ let hasLetter = false;
+ let hasDigit = false;
+ let hasSpecial = false;
+ var code, i, len;
+ for (i = 0, len = str.length; i < len; i++) {
+ code = str.charCodeAt(i);
+ if (code > 47 && code < 58) // numeric (0-9)
+ hasDigit = true;
+ else if ((code > 64 && code < 91) || (code > 96 && code < 123)) // A-Z, a-z
+ hasLetter = true;
+ else
+ hasSpecial = true;
+ } // for
+
+ if (str.length < minLength || !hasLetter || !hasDigit || !hasSpecial)
+ return message;
+
+ // All is well.
+ return null;
+ }
+
+ addNewUser(newUser,checkDuplicate) {
+ // this.$log.info(newContactUs)
+ let deferred = this.$q.defer();
+ // this.$log.info('ContactUsService:: add Contact Us' + JSON.stringify(newContactUs));
+
+ var newUserObj={
+ firstName:newUser.firstName,
+ middleInitial:newUser.middleName,
+ lastName:newUser.lastName,
+ email:newUser.emailAddress,
+ loginId:newUser.loginId,
+ loginPwd:newUser.loginPwd,
+ };
+ this.$http({
+ url: this.conf.api.saveNewUser + "?isCheck=" + checkDuplicate,
+ method: 'POST',
+ cache: false,
+ headers: {
+ 'X-ECOMP-RequestID':this.uuid.generate()
+ },
+ data: newUserObj
+ }).then(res => {
+ // this.$log.info('ContactUsService:: add Contact Us res' ,res);
+ // If response comes back as a redirected HTML page which IS NOT a success
+ if (res==null || Object.keys(res.data).length == 0 || res.data.message == 'failure') {
+ deferred.reject("Add new User failed");
+ this.$log.error('adminService:: add New User failed');
+ } else {
+ deferred.resolve(res.data);
+ }
+ }).catch(errRes => {
+ deferred.reject(errRes);
+ });
+ return deferred.promise;
+ }
+
+ }
+ AdminsService.$inject = ['$q', '$log', '$http', 'conf','uuid4', 'utilsService'];
+ angular.module('ecompApp').service('adminsService', AdminsService)
+})();