Я разрабатываю приложение в метеор с мантрой. Это route.jsx модуля users
. Я хочу иметь возможность использовать requireLogin
и redirectUsers
в действиях и маршрутах других модулей. Или, вообще, как я могу справиться с проблемами перекрестной резки без нарушения архитектуры мантры?Метеор с мантрой. Проблемы с поперечной средой
import React from 'react';
import {mount} from 'react-mounter';
import Login from './containers/login';
import Register from './containers/register';
import App from '/client/modules/core/components/app.jsx';
export default function (injectDeps,{FlowRouter,Meteor,LocalState}) {
let userRoutes = FlowRouter.group({
prefix:'/user',
name:'user'
});
const AppCtx = injectDeps(App);
const redirectUsers =() => {
if(Meteor.userId()){
const path = LocalState.get('INTERRUPTED_REQUEST_PATH')
? LocalState.get('INTERRUPTED_REQUEST_PATH') : '/joke/';
FlowRouter.go(path);
return;
}
}
const requireLogin = (path) => {
if(!Meteor.userId()){
LocalState.set('INTERRUPTED_REQUEST_PATH',path);
FlowRouter.go('/user/login');
return;
}
}
userRoutes.route('/', {
triggersEnter: [(context,redirect) => {
if(!Meteor.userId()){
requireLogin('/user/login');
}
}],
action() {
}
});
userRoutes.route('/login',{
triggersEnter: [(context,redirect) => {
redirectUsers();
}],
action() {
mount(AppCtx, {
content:() => (<Login />)
});
}
});
}
Спасибо, я думаю, что использование перекрестной режущей логики в функции композитора и составление с ней везде, где это необходимо, - действительно хороший подход. –
Но как насчет уровня действия? Например, каждый пользователь может просматривать компонент, но только зарегистрированные пользователи могут делать X и Y –