atms-permission.js 1.94 KB
Newer Older
eddie.woo's avatar
eddie.woo committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
commonModule.directive('atmsPermission', ['$compile', '$document', '$parse', 'userService', 'loginContext', 'vatSessionService', '$state',
    function ($compile, $document, $parse, userService, loginContext, vatSessionService, $state) {

        return {
            restrict: "A",
            link: function (scope, element, attr) {

                var permissionCode = attr['permissionCode'];
                var controlType = attr['permissionControlType'];

                console.log('controlType', controlType);

                var orgID = vatSessionService && vatSessionService.project ? vatSessionService.project.organizationID : null;

                var setUI = function (isshow) {
                    if (isshow) {
                        return;
                    }

                    if (!isshow) {
                        element[0].disabled = true;
                        element.addClass('no-permission');
                    }

                    if (controlType && controlType.toLowerCase() === 'ngif') {
                        element.css('display', 'none');
                    }
                    else if (controlType && (controlType.toLowerCase() === 'ngshow' || controlType.toLowerCase() === 'nghide')) {
                        element.css('visibility', 'hidden');
                    } else if (controlType && controlType.toLowerCase() === 'prohibit') {

                        $state.go('noPermissionPage');
                    }
                };

                userService.getUserPermissionNew(loginContext.userName, function (data) {

                    var isshow = false;
                    if (orgID) {
                        isshow = window.PWC.isHaveOrganizationPermission(orgID, permissionCode, data);
                    } else {
                        isshow = window.PWC.isHavePermission(permissionCode, data);
                    }

                    setUI(isshow);
                });
            }
        };
    }]);