asab_webui_shell 27.2.7 → 27.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/containers/Application.js +8 -1
- package/dist/index.js +8 -1
- package/dist/modules/auth/header.js +16 -27
- package/dist/modules/auth/index.js +2 -18
- package/dist/modules/invite/index.js +24 -0
- package/package.json +1 -1
- /package/dist/modules/{auth/screens → invite}/InvitationScreen.js +0 -0
package/README.md
CHANGED
|
@@ -402,7 +402,14 @@ class Application extends _react.Component {
|
|
|
402
402
|
for (var interceptor of this.WebSocketInterceptors.keys()) {
|
|
403
403
|
// Avoid pushing undefined interceptor values
|
|
404
404
|
if (interceptor) {
|
|
405
|
-
|
|
405
|
+
/*
|
|
406
|
+
Interceptor should be a function that returns the current subprotocol value
|
|
407
|
+
Otherwise use the value directly (for backward compatibility)
|
|
408
|
+
*/
|
|
409
|
+
var interceptorValue = typeof interceptor === 'function' ? interceptor() : interceptor;
|
|
410
|
+
if (interceptorValue) {
|
|
411
|
+
subprotocols.push(interceptorValue);
|
|
412
|
+
}
|
|
406
413
|
}
|
|
407
414
|
}
|
|
408
415
|
|
package/dist/index.js
CHANGED
|
@@ -34,6 +34,12 @@ Object.defineProperty(exports, "I18nModule", {
|
|
|
34
34
|
return _i18n.default;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
+
Object.defineProperty(exports, "InviteModule", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function get() {
|
|
40
|
+
return _invite.default;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
37
43
|
Object.defineProperty(exports, "TenantModule", {
|
|
38
44
|
enumerable: true,
|
|
39
45
|
get: function get() {
|
|
@@ -53,4 +59,5 @@ var _i18n = _interopRequireDefault(require("./modules/i18n"));
|
|
|
53
59
|
var _tenant = _interopRequireDefault(require("./modules/tenant"));
|
|
54
60
|
var _auth = _interopRequireDefault(require("./modules/auth"));
|
|
55
61
|
var _about = _interopRequireDefault(require("./modules/about"));
|
|
56
|
-
var _index2 = _interopRequireDefault(require("./modules/attentionrequired/index.js"));
|
|
62
|
+
var _index2 = _interopRequireDefault(require("./modules/attentionrequired/index.js"));
|
|
63
|
+
var _invite = _interopRequireDefault(require("./modules/invite"));
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.AuthHeaderDropdown = AuthHeaderDropdown;
|
|
8
|
-
exports.AuthHeaderInvitation = AuthHeaderInvitation;
|
|
9
8
|
var _react = _interopRequireDefault(require("react"));
|
|
10
9
|
var _reactRouter = require("react-router");
|
|
11
10
|
var _reactI18next = require("react-i18next");
|
|
@@ -33,35 +32,15 @@ require("./header.scss");
|
|
|
33
32
|
|
|
34
33
|
*/
|
|
35
34
|
|
|
36
|
-
function AuthHeaderInvitation(props) {
|
|
37
|
-
var tenant = (0, _asab_webui_components.useAppSelector)(state => {
|
|
38
|
-
var _state$tenant;
|
|
39
|
-
return (_state$tenant = state.tenant) === null || _state$tenant === void 0 ? void 0 : _state$tenant.current;
|
|
40
|
-
});
|
|
41
|
-
var navigate = (0, _reactRouter.useNavigate)();
|
|
42
|
-
var {
|
|
43
|
-
t
|
|
44
|
-
} = (0, _reactI18next.useTranslation)();
|
|
45
|
-
if (!tenant || !(0, _seacatAuth.isAuthorized)(['seacat:tenant:assign'], props.app)) {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
;
|
|
49
|
-
return /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
|
|
50
|
-
outline: true,
|
|
51
|
-
onClick: e => {
|
|
52
|
-
e.preventDefault(), navigate('/auth/invite');
|
|
53
|
-
},
|
|
54
|
-
title: t('AuthHeader|Invite other users'),
|
|
55
|
-
className: "invite-nav-button",
|
|
56
|
-
color: "primary"
|
|
57
|
-
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
58
|
-
className: "bi bi-person-plus me-2"
|
|
59
|
-
}), t('AuthHeader|Invite other users'));
|
|
60
|
-
}
|
|
61
35
|
function AuthHeaderDropdown(props) {
|
|
36
|
+
var _props$app;
|
|
62
37
|
var {
|
|
63
38
|
t
|
|
64
39
|
} = (0, _reactI18next.useTranslation)();
|
|
40
|
+
var tenant = (0, _asab_webui_components.useAppSelector)(state => {
|
|
41
|
+
var _state$tenant;
|
|
42
|
+
return (_state$tenant = state.tenant) === null || _state$tenant === void 0 ? void 0 : _state$tenant.current;
|
|
43
|
+
});
|
|
65
44
|
var userinfo = (0, _asab_webui_components.useAppSelector)(state => {
|
|
66
45
|
var _state$auth;
|
|
67
46
|
return (_state$auth = state.auth) === null || _state$auth === void 0 ? void 0 : _state$auth.userinfo;
|
|
@@ -70,6 +49,9 @@ function AuthHeaderDropdown(props) {
|
|
|
70
49
|
var logout = () => {
|
|
71
50
|
props.AuthModule.logout();
|
|
72
51
|
};
|
|
52
|
+
|
|
53
|
+
// Validation on displaying the invite option
|
|
54
|
+
var displayInvite = ((_props$app = props.app) === null || _props$app === void 0 || (_props$app = _props$app.Modules) === null || _props$app === void 0 ? void 0 : _props$app.some(obj => (obj === null || obj === void 0 ? void 0 : obj.Name) === "InviteModule")) && tenant && (0, _seacatAuth.isAuthorized)(['seacat:tenant:assign'], props.app);
|
|
73
55
|
return /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledDropdown, {
|
|
74
56
|
direction: "down"
|
|
75
57
|
}, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownToggle, {
|
|
@@ -88,7 +70,14 @@ function AuthHeaderDropdown(props) {
|
|
|
88
70
|
className: "shadow"
|
|
89
71
|
}, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
90
72
|
header: true
|
|
91
|
-
}, t('AuthHeader|My account')), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
73
|
+
}, t('AuthHeader|My account')), displayInvite && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
74
|
+
divider: true
|
|
75
|
+
}), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
76
|
+
tag: _reactRouter.Link,
|
|
77
|
+
to: "/auth/invite"
|
|
78
|
+
}, t('AuthHeader|Invite other users')), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
79
|
+
divider: true
|
|
80
|
+
})), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
92
81
|
tag: _reactRouter.Link,
|
|
93
82
|
to: "/auth/access-control"
|
|
94
83
|
}, t('AuthHeader|Access control')), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
|
|
@@ -17,7 +17,6 @@ var _locationReplace = require("../../components/locationReplace");
|
|
|
17
17
|
var _SessionExpirationAlert = require("./components/SessionExpirationAlert");
|
|
18
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } // TODO: Use SessionExpirationAlert only after proper fix of the component
|
|
19
19
|
var AccessControlScreen = /*#__PURE__*/(0, _react.lazy)(() => Promise.resolve().then(() => _interopRequireWildcard(require("./screens/AccessControlScreen"))));
|
|
20
|
-
var InvitationScreen = /*#__PURE__*/(0, _react.lazy)(() => Promise.resolve().then(() => _interopRequireWildcard(require("./screens/InvitationScreen"))));
|
|
21
20
|
class AuthModule extends _asab_webui_components.Module {
|
|
22
21
|
constructor(app, name) {
|
|
23
22
|
super(app, "AuthModule");
|
|
@@ -41,27 +40,11 @@ class AuthModule extends _asab_webui_components.Module {
|
|
|
41
40
|
component: AccessControlScreen,
|
|
42
41
|
resource: "*"
|
|
43
42
|
});
|
|
44
|
-
|
|
45
|
-
// Invitation screen
|
|
46
|
-
app.Router.addRoute({
|
|
47
|
-
path: '/auth/invite',
|
|
48
|
-
end: true,
|
|
49
|
-
name: 'Invite',
|
|
50
|
-
component: InvitationScreen,
|
|
51
|
-
resource: "seacat:tenant:assign"
|
|
52
|
-
});
|
|
53
43
|
}
|
|
54
44
|
initialize() {
|
|
55
45
|
var _this = this;
|
|
56
46
|
return (0, _asyncToGenerator2.default)(function* () {
|
|
57
47
|
var headerService = _this.App.locateService("HeaderService");
|
|
58
|
-
headerService.addComponent({
|
|
59
|
-
component: _header.AuthHeaderInvitation,
|
|
60
|
-
componentProps: {
|
|
61
|
-
AuthModule: _this
|
|
62
|
-
},
|
|
63
|
-
order: 200
|
|
64
|
-
});
|
|
65
48
|
headerService.addComponent({
|
|
66
49
|
component: _header.AuthHeaderDropdown,
|
|
67
50
|
componentProps: {
|
|
@@ -195,7 +178,8 @@ class AuthModule extends _asab_webui_components.Module {
|
|
|
195
178
|
return interceptor;
|
|
196
179
|
}
|
|
197
180
|
webSocketAuthInterceptor() {
|
|
198
|
-
|
|
181
|
+
// Return a function to ensure that the token is always current and not static
|
|
182
|
+
return () => "access_token_".concat(this.OAuthTokens['access_token']);
|
|
199
183
|
}
|
|
200
184
|
simulateUserinfo(mock_userinfo) {
|
|
201
185
|
var _this2 = this;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _asab_webui_components = require("asab_webui_components");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
+
var InvitationScreen = /*#__PURE__*/(0, _react.lazy)(() => Promise.resolve().then(() => _interopRequireWildcard(require("./InvitationScreen"))));
|
|
11
|
+
class InviteModule extends _asab_webui_components.Module {
|
|
12
|
+
constructor(app, name) {
|
|
13
|
+
super(app, 'InviteModule');
|
|
14
|
+
// Invitation screen
|
|
15
|
+
app.Router.addRoute({
|
|
16
|
+
path: '/auth/invite',
|
|
17
|
+
end: true,
|
|
18
|
+
name: 'Invite',
|
|
19
|
+
component: InvitationScreen,
|
|
20
|
+
resource: 'seacat:tenant:assign'
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = InviteModule;
|
package/package.json
CHANGED
|
File without changes
|