webapp/app/js/controllers/access.js (97 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. */ 'use strict'; KylinApp.controller('AccessCtrl', function ($scope, AccessService, MessageService, AuthenticationService, SweetAlert) { $scope.accessTooltip = "<div style='text-align: left'>" + "<label>What does access mean to project?</label>" + "<ul><li>QUERY: Access to query cube</li>" + "<li>OPERATION: Access to rebuild, resume and cancel jobs. Also include access of CUBE QUERY.</li>" + "<li>MANAGEMENT: Access to edit/delete cube. Also include access of CUBE OPERATION.</li>" + "<li>ADMIN: Full access to cube and jobs, including access management.</li></ul></div>"; $scope.authorities = null; AuthenticationService.authorities({}, function (authorities) { $scope.authorities = authorities.stringList; }); $scope.resetNewAcess = function () { $scope.newAccess = null; } $scope.renewAccess = function (entity) { $scope.newAccess = { uuid: entity.uuid, sid: null, principal: true, permission: 'READ' }; } $scope.grant = function (type, entity, grantRequst) { var uuid = grantRequst.uuid; delete grantRequst.uuid; AccessService.grant({type: type, uuid: uuid}, grantRequst, function (accessEntities) { entity.accessEntities = accessEntities; $scope.resetNewAcess(); // MessageService.sendMsg('Access granted!', 'success', {}); SweetAlert.swal('Success!', 'Access granted!', 'success'); }, function (e) { grantRequst.uuid = uuid; if (e.status == 404) { // MessageService.sendMsg('User not found!', 'error', {}); SweetAlert.swal('Oops...', 'User not found!!', 'error'); } else { if (e.data && e.data.exception) { var message = e.data.exception; var msg = !!(message) ? message : 'Failed to take action.'; SweetAlert.swal('Oops...', msg, 'error'); } else { SweetAlert.swal('Oops...', "Failed to take action.", 'error'); } } }); } $scope.update = function (type, entity, access, permission) { var updateRequst = { accessEntryId: access.id, permission: permission }; AccessService.update({type: type, uuid: entity.uuid}, updateRequst, function (accessEntities) { entity.accessEntities = accessEntities; // MessageService.sendMsg('Access granted!', 'success', {}); SweetAlert.swal('', 'Access granted!', 'success'); }, function (e) { if (e.data && e.data.exception) { var message = e.data.exception; var msg = !!(message) ? message : 'Failed to take action.'; SweetAlert.swal('Oops...', msg, 'error'); } else { SweetAlert.swal('Oops...', "Failed to take action.", 'error'); } }); } $scope.revoke = function (type, access, entity) { SweetAlert.swal({ title: '', text: 'Are you sure to revoke the access?', type: '', showCancelButton: true, confirmButtonColor: '#DD6B55', confirmButtonText: "Yes", closeOnConfirm: true }, function (isConfirm) { if(isConfirm){ var revokeRequst = { type: type, uuid: entity.uuid, accessEntryId: access.id, sid: access.sid.principal }; AccessService.revoke(revokeRequst, function (accessEntities) { entity.accessEntities = accessEntities.accessEntryResponseList; SweetAlert.swal('Success!', 'The access has been revoked.', 'success'); }, function (e) { if (e.data && e.data.exception) { var message = e.data.exception; var msg = !!(message) ? message : 'Failed to take action.'; SweetAlert.swal('Oops...', msg, 'error'); } else { SweetAlert.swal('Oops...', "Failed to take action.", 'error'); } }); } }); } });