traffic_portal/app/src/modules/private/user/UserController.js (68 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
/**
* @param {*} $scope
* @param {import("angular").ILocationService} $location
* @param {import("../../../common/service/utils/angular.ui.bootstrap").IModalService} $uibModal
* @param {import("../../../common/service/utils/FormUtils")} formUtils
* @param {import("../../../common/service/utils/LocationUtils")} locationUtils
* @param {import("../../../common/service/utils/TenantUtils")} tenantUtils
* @param {import("../../../common/api/UserService")} userService
* @param {import("../../../common/api/AuthService")} authService
* @param {import("../../../common/api/RoleService")} roleService
* @param {import("../../../common/api/TenantService")} tenantService
* @param {import("../../../common/models/UserModel")} userModel
*/
var UserController = function($scope, $location, $uibModal, formUtils, locationUtils, tenantUtils, userService, authService, roleService, tenantService, userModel) {
var updateUser = function(user, options) {
userService.updateUser(user).
then(function() {
if (options.signout) {
authService.logout();
}
});
};
var getRoles = function() {
roleService.getRoles()
.then(function(result) {
$scope.roles = _.sortBy(result, 'name');
});
};
var getTenants = function() {
tenantService.getTenant(userModel.user.tenantId)
.then(function(tenant) {
tenantService.getTenants()
.then(function(tenants) {
$scope.tenants = tenantUtils.hierarchySort(tenantUtils.groupTenantsByParent(tenants), tenant.parentId, []);
tenantUtils.addLevels($scope.tenants);
});
});
};
$scope.userName = angular.copy(userModel.user.username);
$scope.user = userModel.user;
$scope.confirmSave = function(user, usernameField) {
if (usernameField === undefined) {
usernameField = user.username;
}
if (usernameField.$dirty) {
var params = {
title: 'Reauthentication Required',
message: 'Changing your username to ' + user.username + ' will require you to reauthenticate. Is that OK?'
};
var modalInstance = $uibModal.open({
templateUrl: 'common/modules/dialog/confirm/dialog.confirm.tpl.html',
controller: 'DialogConfirmController',
size: 'sm',
resolve: {
params: function () {
return params;
}
}
});
modalInstance.result.then(function() {
updateUser(user, { signout : true });
}, function () {
// do nothing
});
} else {
updateUser(user, { signout : false });
}
};
$scope.viewDeliveryServices = function() {
$location.path('/users/' + $scope.user.id + '/delivery-services');
};
$scope.navigateToPath = (path, unsavedChanges) => locationUtils.navigateToPath(path, unsavedChanges);
$scope.hasError = formUtils.hasError;
$scope.hasPropertyError = formUtils.hasPropertyError;
var init = function () {
getRoles();
getTenants();
};
init();
};
UserController.$inject = ['$scope', '$location', '$uibModal', 'formUtils', 'locationUtils', 'tenantUtils', 'userService', 'authService', 'roleService', 'tenantService', 'userModel'];
module.exports = UserController;