OpenManageController.js 5.0 KB
Newer Older
1
open_manage_module.controller('OpenManageController',
2 3
                              ['$scope', 'toastr', 'AppUtil', 'OrganizationService', 'ConsumerService', 'PermissionService','EnvService',
                               OpenManageController]);
4

5
function OpenManageController($scope, toastr, AppUtil, OrganizationService, ConsumerService, PermissionService, EnvService) {
6 7 8 9

    var $orgWidget = $('#organization');

    $scope.consumer = {};
L
lepdou 已提交
10 11 12
    $scope.consumerRole = {
        type: 'NamespaceRole'
    };
13 14 15 16 17 18 19 20 21 22 23

    $scope.submitBtnDisabled = false;
    $scope.userSelectWidgetId = 'toAssignMasterRoleUser';

    $scope.getTokenByAppId = getTokenByAppId;
    $scope.createConsumer = createConsumer;
    $scope.assignRoleToConsumer = assignRoleToConsumer;

    function init() {
        initOrganization();
        initPermission();
A
anthonywanted 已提交
24
        initEnv();
25 26 27 28 29 30 31 32 33 34 35 36 37
    }

    function initOrganization() {
        OrganizationService.find_organizations().then(function (result) {
            var organizations = [];
            result.forEach(function (item) {
                var org = {};
                org.id = item.orgId;
                org.text = item.orgName + '(' + item.orgId + ')';
                org.name = item.orgName;
                organizations.push(org);
            });
            $orgWidget.select2({
38 39 40 41
                                   placeholder: '请选择部门',
                                   width: '100%',
                                   data: organizations
                               });
42 43 44 45 46 47 48 49
        }, function (result) {
            toastr.error(AppUtil.errorMsg(result), "load organizations error");
        });
    }

    function initPermission() {
        PermissionService.has_root_permission()
            .then(function (result) {
50
                  $scope.isRootUser = result.hasPermission;
A
anthonywanted 已提交
51 52 53 54 55
            });
    }

    function initEnv() {
        EnvService.find_all_envs()
56
            .then(function (result){
A
anthonywanted 已提交
57
                $scope.envs = new Array();
58 59
                for (var iLoop  = 0; iLoop < result.length; iLoop++) {
                    $scope.envs.push({ checked : false, env : result[iLoop] });
A
anthonywanted 已提交
60 61 62 63 64 65 66 67 68 69 70 71 72 73
                    $scope.envsChecked = new Array();
                }

                $scope.switchSelect = function (item) {
                    item.checked = !item.checked;
                    $scope.envsChecked = new Array();
                    for (var iLoop = 0; iLoop < $scope.envs.length; iLoop++) {
                        var env = $scope.envs[iLoop];
                        if (env.checked) {
                            $scope.envsChecked.push(env.env);
                        }
                    }
                };
            });
74 75 76 77
    }

    function getTokenByAppId() {
        if (!$scope.consumer.appId) {
78
            toastr.warning("请输入appId");
79 80 81 82 83 84 85 86 87 88
            return;
        }

        ConsumerService.getConsumerTokenByAppId($scope.consumer.appId)
            .then(function (consumerToken) {

                if (consumerToken.token) {
                    $scope.consumerToken = consumerToken;
                    $scope.consumerRole.token = consumerToken.token;
                } else {
89
                    $scope.consumerToken = {token: 'App(' + $scope.consumer.appId + ')未创建,请先创建'};
90
                }
A
anthonywanted 已提交
91
            });
92 93 94 95 96 97
    }

    function createConsumer() {
        $scope.submitBtnDisabled = true;

        if (!$scope.consumer.appId) {
98
            toastr.warning("请输入appId");
99 100 101 102 103
            return;
        }
        var selectedOrg = $orgWidget.select2('data')[0];

        if (!selectedOrg.id) {
104
            toastr.warning("请选择部门");
105 106 107 108 109 110 111 112 113
            return;
        }

        $scope.consumer.orgId = selectedOrg.id;
        $scope.consumer.orgName = selectedOrg.name;

        // owner
        var owner = $('.ownerSelector').select2('data')[0];
        if (!owner) {
114
            toastr.warning("请选择应用负责人");
115 116 117 118 119 120
            return;
        }
        $scope.consumer.ownerName = owner.id;

        ConsumerService.createConsumer($scope.consumer)
            .then(function (consumerToken) {
121
                toastr.success("创建成功");
122 123 124 125 126
                $scope.consumerToken = consumerToken;
                $scope.consumerRole.token = consumerToken.token;
                $scope.submitBtnDisabled = false;
                $scope.consumer = {};
            }, function (response) {
127
                AppUtil.showErrorMsg(response, "创建失败");
128 129 130 131 132 133 134
                $scope.submitBtnDisabled = false;
            })

    }

    function assignRoleToConsumer() {
        ConsumerService.assignRoleToConsumer($scope.consumerRole.token,
135 136 137 138
                                             $scope.consumerRole.type,
                                             $scope.consumerRole.appId,
                                             $scope.consumerRole.namespaceName,
                                             $scope.envsChecked)
139
            .then(function (consumerRoles) {
140
                toastr.success("赋权成功");
141
            }, function (response) {
142
                AppUtil.showErrorMsg(response, "赋权失败");
143 144
            })
    }
A
anthonywanted 已提交
145 146

    init();
147
}