Remove authorization from specific routes (#642)
* fixes #569 * update listObjectsInS3ForUser * update client-side routes * update aws controller * update * redirect to /login when unlogged in
This commit is contained in:
parent
4c46c3ba65
commit
d5856ba923
7 changed files with 18 additions and 22 deletions
|
@ -478,7 +478,7 @@ class Nav extends React.PureComponent {
|
||||||
</li>
|
</li>
|
||||||
<li className="nav__dropdown-item">
|
<li className="nav__dropdown-item">
|
||||||
<Link
|
<Link
|
||||||
to={`/${this.props.user.username}/assets`}
|
to="/assets"
|
||||||
onFocus={this.handleFocus.bind(this, 'account')}
|
onFocus={this.handleFocus.bind(this, 'account')}
|
||||||
onBlur={this.handleBlur}
|
onBlur={this.handleBlur}
|
||||||
onClick={this.setDropdown.bind(this, 'none')}
|
onClick={this.setDropdown.bind(this, 'none')}
|
||||||
|
@ -488,7 +488,7 @@ class Nav extends React.PureComponent {
|
||||||
</li>
|
</li>
|
||||||
<li className="nav__dropdown-item">
|
<li className="nav__dropdown-item">
|
||||||
<Link
|
<Link
|
||||||
to={`/${this.props.user.username}/account`}
|
to="/account"
|
||||||
onFocus={this.handleFocus.bind(this, 'account')}
|
onFocus={this.handleFocus.bind(this, 'account')}
|
||||||
onBlur={this.handleBlur}
|
onBlur={this.handleBlur}
|
||||||
onClick={this.setDropdown.bind(this, 'none')}
|
onClick={this.setDropdown.bind(this, 'none')}
|
||||||
|
|
|
@ -11,9 +11,9 @@ function setAssets(assets) {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getAssets(username) {
|
export function getAssets() {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
axios.get(`${ROOT_URL}/S3/${username}/objects`, { withCredentials: true })
|
axios.get(`${ROOT_URL}/S3/objects`, { withCredentials: true })
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
dispatch(setAssets(response.data.assets));
|
dispatch(setAssets(response.data.assets));
|
||||||
})
|
})
|
||||||
|
|
|
@ -13,7 +13,7 @@ import * as AssetActions from '../actions/assets';
|
||||||
class AssetList extends React.Component {
|
class AssetList extends React.Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.props.getAssets(this.props.username);
|
this.props.getAssets();
|
||||||
}
|
}
|
||||||
|
|
||||||
getAssetsTitle() {
|
getAssetsTitle() {
|
||||||
|
|
|
@ -47,10 +47,10 @@ const routes = (store) => {
|
||||||
<Route path="/projects/:project_id" component={IDEView} />
|
<Route path="/projects/:project_id" component={IDEView} />
|
||||||
<Route path="/full/:project_id" component={FullView} />
|
<Route path="/full/:project_id" component={FullView} />
|
||||||
<Route path="/sketches" component={IDEView} />
|
<Route path="/sketches" component={IDEView} />
|
||||||
|
<Route path="/assets" component={IDEView} />
|
||||||
|
<Route path="/account" component={forceToHttps(AccountView)} />
|
||||||
<Route path="/:username/sketches/:project_id" component={IDEView} />
|
<Route path="/:username/sketches/:project_id" component={IDEView} />
|
||||||
<Route path="/:username/sketches" component={IDEView} />
|
<Route path="/:username/sketches" component={IDEView} />
|
||||||
<Route path="/:username/assets" component={IDEView} />
|
|
||||||
<Route path="/:username/account" component={forceToHttps(AccountView)} />
|
|
||||||
<Route path="/about" component={IDEView} />
|
<Route path="/about" component={IDEView} />
|
||||||
<Route path="/feedback" component={IDEView} />
|
<Route path="/feedback" component={IDEView} />
|
||||||
</Route>
|
</Route>
|
||||||
|
|
|
@ -109,7 +109,7 @@ export function copyObjectInS3(req, res) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function listObjectsInS3ForUser(req, res) {
|
export function listObjectsInS3ForUser(req, res) {
|
||||||
const { username } = req.params;
|
const { username } = req.user;
|
||||||
findUserByUsername(username, (user) => {
|
findUserByUsername(username, (user) => {
|
||||||
const userId = user.id;
|
const userId = user.id;
|
||||||
const params = {
|
const params = {
|
||||||
|
|
|
@ -7,6 +7,6 @@ const router = new Router();
|
||||||
router.post('/S3/sign', isAuthenticated, AWSController.signS3);
|
router.post('/S3/sign', isAuthenticated, AWSController.signS3);
|
||||||
router.post('/S3/copy', isAuthenticated, AWSController.copyObjectInS3);
|
router.post('/S3/copy', isAuthenticated, AWSController.copyObjectInS3);
|
||||||
router.delete('/S3/:object_key', isAuthenticated, AWSController.deleteObjectFromS3);
|
router.delete('/S3/:object_key', isAuthenticated, AWSController.deleteObjectFromS3);
|
||||||
router.get('/S3/:username/objects', AWSController.listObjectsInS3ForUser);
|
router.get('/S3/objects', AWSController.listObjectsInS3ForUser);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|
|
@ -57,7 +57,15 @@ router.get('/verify', (req, res) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/sketches', (req, res) => {
|
router.get('/sketches', (req, res) => {
|
||||||
res.send(renderIndex());
|
req.user ? res.send(renderIndex()) : res.redirect('/login');
|
||||||
|
});
|
||||||
|
|
||||||
|
router.get('/assets', (req, res) => {
|
||||||
|
req.user ? res.send(renderIndex()) : res.redirect('/login');
|
||||||
|
});
|
||||||
|
|
||||||
|
router.get('/account', (req, res) => {
|
||||||
|
req.user ? res.send(renderIndex()) : res.redirect('/login');
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/about', (req, res) => {
|
router.get('/about', (req, res) => {
|
||||||
|
@ -74,16 +82,4 @@ router.get('/:username/sketches', (req, res) => {
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:username/assets', (req, res) => {
|
|
||||||
userExists(req.params.username, exists => (
|
|
||||||
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
||||||
));
|
|
||||||
});
|
|
||||||
|
|
||||||
router.get('/:username/account', (req, res) => {
|
|
||||||
userExists(req.params.username, exists => (
|
|
||||||
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
||||||
));
|
|
||||||
});
|
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|
Loading…
Reference in a new issue