从 Stormpath-Express 中的帐户获取组名
Getting group name from account in Stormpath-Express
我正在为配置有多个组的公司制作 Stormpath-Express 应用程序。每个组只能看到页面上的某些元素(即管理员可以删除和批准帖子,用户只能创建和编辑它们)。是否可以使用 Jade 创建一个条件,通过获取用户的组成员身份来显示组件?
这里有一个粗略的例子来说明我的意思:
if user.admin === true
a.btn.submit Approve Post
else
p Please wait for management to approve
我注意到我可以使用 user.fullName
、user.email
等,但不能使用 user.directory
。
我也使用 getDirectory 方法在服务器端尝试过
client.getDirectory(href, function(err, dir) {
console.log(dir);
});
但是,这是来自 Node 文档,在应用于我的 Express 项目时会中断。非常感谢任何帮助,因为我在最后期限内!
你好 -- 我是 express-stormpath 库的作者,想来这里。
我实际上打算在不久的将来添加一些新方法来执行此操作 -- 但目前,您可以做的是将用户的组预加载到数组中,然后检查成员资格。这是一个例子:
app.get('/page', stormpath.loginRequired, function(req, res) {
req.user.groups = [];
req.user.getGroups(function(err, groups) {
if (err) return next(err);
groups.each(function(group, cb) {
req.user.groups.push(group);
cb();
}, function(err) {
if (err) return next(err);
return res.render('myview');
});
});
});
现在您已经定义了 req.user.groups
,然后您可以在您的 Jade 模板中使用它,如下所示:
- if (user.groups.indexOf('admin') > -1)
a.btn.submit Approve Post
- else
p Please wait for management to approve
非常感谢 rdegges 的回答,我不得不用 1.0.5 版 express-stormpath 进行修改,因为组 属性 用于存储 uri 以检索组...
app.get('/page', stormpath.loginRequired, function(req, res) {
req.user.groupsNames = [];
req.user.getGroups(function(err, groups) {
if (err) return next(err);
groups.each(function(group, cb) {
req.user.groupsNames.push(group.name);
cb();
}, function(err) {
if (err) return next(err);
return res.render('myview');
});
});
});
而且玉模板看起来像...
- if (user.groupNames.indexOf('admin') > -1)
a.btn.submit Approve Post
- else
p Please wait for management to approve
我正在为配置有多个组的公司制作 Stormpath-Express 应用程序。每个组只能看到页面上的某些元素(即管理员可以删除和批准帖子,用户只能创建和编辑它们)。是否可以使用 Jade 创建一个条件,通过获取用户的组成员身份来显示组件?
这里有一个粗略的例子来说明我的意思:
if user.admin === true
a.btn.submit Approve Post
else
p Please wait for management to approve
我注意到我可以使用 user.fullName
、user.email
等,但不能使用 user.directory
。
我也使用 getDirectory 方法在服务器端尝试过
client.getDirectory(href, function(err, dir) {
console.log(dir);
});
但是,这是来自 Node 文档,在应用于我的 Express 项目时会中断。非常感谢任何帮助,因为我在最后期限内!
你好 -- 我是 express-stormpath 库的作者,想来这里。
我实际上打算在不久的将来添加一些新方法来执行此操作 -- 但目前,您可以做的是将用户的组预加载到数组中,然后检查成员资格。这是一个例子:
app.get('/page', stormpath.loginRequired, function(req, res) {
req.user.groups = [];
req.user.getGroups(function(err, groups) {
if (err) return next(err);
groups.each(function(group, cb) {
req.user.groups.push(group);
cb();
}, function(err) {
if (err) return next(err);
return res.render('myview');
});
});
});
现在您已经定义了 req.user.groups
,然后您可以在您的 Jade 模板中使用它,如下所示:
- if (user.groups.indexOf('admin') > -1)
a.btn.submit Approve Post
- else
p Please wait for management to approve
非常感谢 rdegges 的回答,我不得不用 1.0.5 版 express-stormpath 进行修改,因为组 属性 用于存储 uri 以检索组...
app.get('/page', stormpath.loginRequired, function(req, res) {
req.user.groupsNames = [];
req.user.getGroups(function(err, groups) {
if (err) return next(err);
groups.each(function(group, cb) {
req.user.groupsNames.push(group.name);
cb();
}, function(err) {
if (err) return next(err);
return res.render('myview');
});
});
});
而且玉模板看起来像...
- if (user.groupNames.indexOf('admin') > -1)
a.btn.submit Approve Post
- else
p Please wait for management to approve