Journal edit: disallow editing journals we don't own.
parent
c5fc6f23f5
commit
525ec58081
|
@ -28,6 +28,7 @@ import { historyPersistor } from '../persist-state-history';
|
|||
interface PropsType {
|
||||
syncInfo: SyncInfo;
|
||||
syncJournal: SyncInfoJournal;
|
||||
isOwner: boolean;
|
||||
}
|
||||
|
||||
interface PropsTypeInner extends PropsType {
|
||||
|
@ -52,7 +53,7 @@ class Journal extends React.PureComponent<PropsTypeInner> {
|
|||
}
|
||||
|
||||
render() {
|
||||
const { theme, syncJournal } = this.props;
|
||||
const { theme, isOwner, syncJournal } = this.props;
|
||||
let currentTab = this.state.tab;
|
||||
let journalOnly = false;
|
||||
|
||||
|
@ -85,13 +86,15 @@ class Journal extends React.PureComponent<PropsTypeInner> {
|
|||
return (
|
||||
<React.Fragment>
|
||||
<AppBarOverride title={collectionInfo.displayName}>
|
||||
<IconButton
|
||||
component={Link}
|
||||
title="Edit"
|
||||
{...{to: routeResolver.getRoute('journals._id.edit', { journalUid: journal.uid })}}
|
||||
>
|
||||
<IconEdit />
|
||||
</IconButton>
|
||||
{ isOwner &&
|
||||
<IconButton
|
||||
component={Link}
|
||||
title="Edit"
|
||||
{...{to: routeResolver.getRoute('journals._id.edit', { journalUid: journal.uid })}}
|
||||
>
|
||||
<IconEdit />
|
||||
</IconButton>
|
||||
}
|
||||
</AppBarOverride>
|
||||
<Tabs
|
||||
fullWidth={true}
|
||||
|
|
|
@ -60,6 +60,8 @@ class Journals extends React.PureComponent {
|
|||
return (<div>Journal not found!</div>);
|
||||
}
|
||||
|
||||
const isOwner = syncJournal.journal.owner === this.props.etesync.credentials.email;
|
||||
|
||||
const collectionInfo = syncJournal.collection;
|
||||
return (
|
||||
<Switch>
|
||||
|
@ -81,6 +83,7 @@ class Journals extends React.PureComponent {
|
|||
<Journal
|
||||
syncInfo={this.props.syncInfo}
|
||||
syncJournal={syncJournal}
|
||||
isOwner={isOwner}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
|
|
Loading…
Reference in New Issue