1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
8 |
|
9 | var _angular = require('angular');
|
10 |
|
11 | var _angular2 = _interopRequireDefault(_angular);
|
12 |
|
13 | var _lodash = require('lodash.union');
|
14 |
|
15 | var _lodash2 = _interopRequireDefault(_lodash);
|
16 |
|
17 | var _lodash3 = require('lodash.find');
|
18 |
|
19 | var _lodash4 = _interopRequireDefault(_lodash3);
|
20 |
|
21 | var _module = require('../module');
|
22 |
|
23 | var _module2 = _interopRequireDefault(_module);
|
24 |
|
25 | require('../api');
|
26 |
|
27 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
28 |
|
29 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
30 |
|
31 | var AvUserAuthorizationsFactory = function AvUserAuthorizationsFactory($q, $log, avUserPermissionsResource) {
|
32 | var AvUserAuthorizations = function () {
|
33 | function AvUserAuthorizations() {
|
34 | _classCallCheck(this, AvUserAuthorizations);
|
35 |
|
36 | |
37 |
|
38 |
|
39 |
|
40 |
|
41 | this.region = null;
|
42 |
|
43 | |
44 |
|
45 |
|
46 |
|
47 |
|
48 | this.permissionIds = [];
|
49 | }
|
50 |
|
51 | _createClass(AvUserAuthorizations, [{
|
52 | key: 'setRegion',
|
53 | value: function setRegion(region) {
|
54 | this.region = region;
|
55 | return this;
|
56 | }
|
57 | }, {
|
58 | key: 'setPermissionIds',
|
59 | value: function setPermissionIds(permissionIds) {
|
60 |
|
61 | if (!_angular2.default.isArray(permissionIds)) {
|
62 | throw new Error('permissionsIds must be an array of strings in setPermissionIds()');
|
63 | }
|
64 |
|
65 | this.permissionIds = permissionIds;
|
66 |
|
67 | return this;
|
68 | }
|
69 | }, {
|
70 | key: 'isAuthorized',
|
71 | value: function isAuthorized(permissionId) {
|
72 | return this.getPermission(permissionId).then(function (permission) {
|
73 | return permission.isAuthorized;
|
74 | });
|
75 | }
|
76 | }, {
|
77 | key: 'isAnyAuthorized',
|
78 | value: function isAnyAuthorized(permissionIds) {
|
79 | return this.getPermissions(permissionIds).then(function (permissions) {
|
80 | return permissions.some(function (permission) {
|
81 | return permission.isAuthorized;
|
82 | });
|
83 | });
|
84 | }
|
85 | }, {
|
86 | key: 'getPermission',
|
87 | value: function getPermission(permissionId) {
|
88 |
|
89 | if (!_angular2.default.isString(permissionId)) {
|
90 | throw new Error('permissionsId must be a string ID for getPermission()');
|
91 | }
|
92 |
|
93 | return this.getPermissions([permissionId]).then(function (permissions) {
|
94 | return (0, _lodash4.default)(permissions, ['id', permissionId]);
|
95 | });
|
96 | }
|
97 | }, {
|
98 | key: 'getPermissions',
|
99 | value: function getPermissions(permissionIds) {
|
100 | var _this = this;
|
101 |
|
102 | if (!_angular2.default.isArray(permissionIds)) {
|
103 | throw new Error('permissionsIds must be an array of string IDs for getPermissions()');
|
104 | }
|
105 |
|
106 |
|
107 | this.permissionIds = (0, _lodash2.default)(this.permissionIds, permissionIds);
|
108 |
|
109 | return avUserPermissionsResource.getPermissions(this.permissionIds, this.region).then(function (permissions) {
|
110 | return _this.map(permissionIds, permissions);
|
111 | });
|
112 | }
|
113 | }, {
|
114 | key: 'getOrganizations',
|
115 | value: function getOrganizations(permissionId) {
|
116 | return this.getPermission(permissionId).then(function (permission) {
|
117 | return permission.organizations;
|
118 | });
|
119 | }
|
120 | }, {
|
121 | key: 'getPayers',
|
122 | value: function getPayers(permissionId, organizationId) {
|
123 |
|
124 | return this.getPermission(permissionId).then(function (permission) {
|
125 | var organization = (0, _lodash4.default)(permission.organizations, ['id', organizationId]);
|
126 |
|
127 | if (organization && organization.resources) {
|
128 | return organization.resources;
|
129 | }
|
130 |
|
131 | return [];
|
132 | });
|
133 | }
|
134 | }, {
|
135 | key: 'map',
|
136 | value: function map(permissionIds, permissions) {
|
137 |
|
138 | var self = this;
|
139 |
|
140 | var result = permissionIds.map(function (permissionId) {
|
141 |
|
142 | var key = { id: permissionId };
|
143 | var permission = (0, _lodash4.default)(permissions, ['id', permissionId]);
|
144 | permission = permission ? self.convert(permission) : self.convert(key);
|
145 | return permission;
|
146 | });
|
147 |
|
148 | return result;
|
149 | }
|
150 | }, {
|
151 | key: 'convert',
|
152 | value: function convert(permission) {
|
153 |
|
154 | permission.isAuthorized = permission.organizations ? permission.organizations.length > 0 : false;
|
155 | permission.geographies = permission.geographies || [];
|
156 | permission.organizations = permission.organizations || [];
|
157 |
|
158 | return permission;
|
159 | }
|
160 | }]);
|
161 |
|
162 | return AvUserAuthorizations;
|
163 | }();
|
164 |
|
165 | return new AvUserAuthorizations();
|
166 | };
|
167 |
|
168 | _module2.default.factory('avUserAuthorizations', AvUserAuthorizationsFactory);
|
169 |
|
170 | exports.default = _module2.default; |
\ | No newline at end of file |