Skip to content

Commit f36ae79

Browse files
fix(core): fix permissions issues (#1533)
* Fix wrong connector permissions display conditions on screens * Storing token in local storage to share it between browser tabs * Handle auth issue for auth with bearer
1 parent 0519dbc commit f36ae79

File tree

8 files changed

+23
-15
lines changed

8 files changed

+23
-15
lines changed

client/src/components/Root/Root.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ class Root extends Component {
4343
let config = new Map();
4444
config.cancelToken = this.cancel.token;
4545

46-
if (sessionStorage.getItem('jwtToken')) {
46+
if (localStorage.getItem('jwtToken')) {
4747
config.headers = {};
48-
config.headers['Authorization'] = 'Bearer ' + sessionStorage.getItem('jwtToken');
48+
config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('jwtToken');
4949
}
5050

5151
return config;

client/src/containers/Connect/ConnectDetail/ConnectConfigs/ConnectConfigs.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ class ConnectConfigs extends Form {
189189
disabled={
190190
plugin.name === 'name' ||
191191
plugin.name === 'connector.class' ||
192-
!(roles.CONNECT && roles.CONNECT.includes('UPDATE'))
192+
!(roles.CONNECTOR && roles.CONNECTOR.includes('UPDATE'))
193193
}
194194
placeholder={plugin.defaultValue > 0 ? plugin.defaultValue : ''}
195195
onChange={({ currentTarget: input }) => {
@@ -332,7 +332,7 @@ class ConnectConfigs extends Form {
332332
<tbody>{display}</tbody>
333333
</table>
334334
</div>
335-
{roles.CONNECT && roles.CONNECT.include('UPDATE') && (
335+
{roles.CONNECTOR && roles.CONNECTOR.includes('UPDATE') && (
336336
<div style={{ left: 0, width: '100%' }} className="khq-submit">
337337
<button
338338
type={'submit'}

client/src/containers/Connect/ConnectDetail/ConnectTasks/ConnectTasks.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -246,14 +246,15 @@ class ConnectTasks extends Root {
246246
this.setState({ tableData: data });
247247
}}
248248
actions={
249-
roles.CONNECT && roles.CONNECT.includes('UPDATE_STATE') && [constants.TABLE_RESTART]
249+
roles.CONNECTOR &&
250+
roles.CONNECTOR.includes('UPDATE_STATE') && [constants.TABLE_RESTART]
250251
}
251252
onRestart={row => {
252253
this.handleAction(this.definitionState.RESTART_TASK, row.id);
253254
}}
254255
/>
255256
</div>
256-
{roles.CONNECT && roles.CONNECT.includes('UPDATE_STATE') && (
257+
{roles.CONNECTOR && roles.CONNECTOR.includes('UPDATE_STATE') && (
257258
<aside>
258259
{definition.paused ? (
259260
<li className="aside-button">

client/src/containers/Connect/ConnectList/ConnectList.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ class ConnectList extends Root {
137137
const roles = this.state.roles || {};
138138
let actions = [];
139139

140-
if (roles.CONNECT && roles.CONNECT.includes('READ')) {
140+
if (roles.CONNECTOR && roles.CONNECTOR.includes('READ')) {
141141
actions.push(constants.TABLE_DETAILS);
142142
}
143-
if (roles.CONNECT && roles.CONNECT.includes('DELETE')) {
143+
if (roles.CONNECTOR && roles.CONNECTOR.includes('DELETE')) {
144144
actions.push(constants.TABLE_DELETE);
145145
}
146146

@@ -356,7 +356,7 @@ class ConnectList extends Root {
356356
}}
357357
noContent={'No connectors available'}
358358
/>
359-
{roles.CONNECT && roles.CONNECT.includes('CREATE') && (
359+
{roles.CONNECTOR && roles.CONNECTOR.includes('CREATE') && (
360360
<aside>
361361
<Link to={`/ui/${clusterId}/connect/${connectId}/create`} className="btn btn-primary">
362362
Create a definition

client/src/containers/Header/Header.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class Header extends Root {
3939
sessionStorage.setItem('login', currentUserData.logged);
4040
sessionStorage.setItem('user', 'default');
4141
sessionStorage.setItem('roles', organizeRoles(currentUserData.roles));
42-
sessionStorage.removeItem('jwtToken');
42+
localStorage.removeItem('jwtToken');
4343
this.setState({ login: currentUserData.logged }, () => {
4444
this.props.history.replace({
4545
pathname: '/ui/login',

client/src/containers/Login/Login.jsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,17 @@ class Login extends Form {
3939
};
4040

4141
login(uriLogin(), body).then(res => {
42+
// Handle login failed for bearer auth
43+
if (res.status === 500) {
44+
toast.error('Wrong Username or Password!');
45+
return;
46+
}
47+
4248
if (res.body) {
4349
res.json().then(r => {
4450
// Support JWT authentication through access_token
4551
if (r.access_token) {
46-
sessionStorage.setItem('jwtToken', r.access_token);
52+
localStorage.setItem('jwtToken', r.access_token);
4753
this.getData();
4854
}
4955
});
@@ -52,6 +58,7 @@ class Login extends Form {
5258
}
5359
});
5460
} catch (err) {
61+
// Handle login failed for cookie auth
5562
toast.error('Wrong Username or Password!');
5663
}
5764
}

client/src/containers/Tail/Tail.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ class Tail extends Root {
8989
const { search, selectedTopics, maxRecords } = this.state;
9090
this.eventSource = new EventSourcePolyfill(
9191
uriLiveTail(clusterId, search, selectedTopics, JSON.stringify(maxRecords)),
92-
sessionStorage.getItem('jwtToken')
92+
localStorage.getItem('jwtToken')
9393
? {
9494
headers: {
95-
Authorization: 'Bearer ' + sessionStorage.getItem('jwtToken')
95+
Authorization: 'Bearer ' + localStorage.getItem('jwtToken')
9696
}
9797
}
9898
: {}

client/src/containers/Topic/Topic/TopicData/TopicData.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,10 @@ class TopicData extends Root {
183183
filters,
184184
changePage ? nextPage : undefined
185185
),
186-
sessionStorage.getItem('jwtToken')
186+
localStorage.getItem('jwtToken')
187187
? {
188188
headers: {
189-
Authorization: 'Bearer ' + sessionStorage.getItem('jwtToken')
189+
Authorization: 'Bearer ' + localStorage.getItem('jwtToken')
190190
}
191191
}
192192
: {}

0 commit comments

Comments
 (0)