У меня есть приложение node.js и express, в моей пользовательской модели есть логическое поле isAdmin. что я хочу сделать, так это скрыть определенные элементы в навигации в зависимости от того, является ли вошедший в систему пользователь администратором или нет. Я написал два помощника, auth.js проверяет, вошел ли пользователь в систему или нет, следующий код:
module.exports = {
ensureAuthenticated: function (req, res, next) {
if (req.isAuthenticated()) {
return next();
}
req.flash('error_msg', 'Not Authorized');
res.redirect('/login');
}
}
другой помощник - adminCheck.js, который проверяет, является ли пользователь администратором или нет:
module.exports = {
adminUser: function (req, res, next) {
if (req.user.isAdmin) {
return next();
}
req.flash('error_msg', 'You have tried to access a restricted space. As a result you have been logged out!');
res.redirect('/logout');
}
}
для моих маршрутов, связанных с администратором, я успешно использую этих помощников, например:
// admin index route
router.get('/', [ensureAuthenticated, adminUser], (req, res) => {
res.render('admin/index');
});
Но проблема в моем html, в навигации я могу скрыть определенные элементы в зависимости от того, вошел ли пользователь в систему или нет:
{{#if user}}
<div class = "col-md-2">
<ul class = "list-inline sm-pull-none sm-text-center text-right text-white mb-sm-20 mt-10">
<li class = "m-0 pl-10">
<a href = "/logout" class = "text-white">
<i class = "fa fa-user-o mr-5 text-white"></i> logout</a>
</li>
<li class = "m-0 pl-10">
<a href = "/admin" class = "text-white">
<i class = "fa fa-user-o mr-5 text-white"></i> Admin</a>
</li>
</ul>
</div>
{{else}}
<div class = "col-md-2">
<ul class = "list-inline sm-pull-none sm-text-center text-right text-white mb-sm-20 mt-10">
<li class = "m-0 pl-10">
<a href = "/login" class = "text-white">
<i class = "fa fa-user-o mr-5 text-white"></i> Login /</a>
</li>
<li class = "m-0 pl-0 pr-10">
<a href = "/register" class = "text-white">
<i class = "fa fa-edit mr-5 text-white"></i>Register</a>
</li>
</ul>
</div>
{{/if}}
как вы можете видеть в приведенном выше html, есть ссылка на администратора, я хочу скрыть это на основе вошедшего в систему пользователя, как я могу это сделать? какой бы специальный вспомогательный код для этого?
Заранее спасибо.





Хорошо ... так что мне просто нужно было изменить свое утверждение на
{{#if user.isAdmin}}