3

多くのグループで構成された会社の Stormpath-Express アプリケーションを作成しています。各グループは、ページ上の特定の要素のみを表示できます (つまり、管理者は投稿を削除および承認でき、ユーザーは投稿を作成および編集することしかできません)。Jade を使用して、ユーザーのグループ メンバーシップを取得してコンポーネントを表示する条件を作成することはできますか?

私が何を意味するかを示す大まかな例を次に示します。

if user.admin === true
    a.btn.submit Approve Post
else 
    p Please wait for management to approve

、 などは使用できるがuser.fullName、は使用できないことに気付きました。user.emailuser.directory

getDirectory メソッドを使用してサーバー側でこれも試しました

client.getDirectory(href, function(err, dir) {
    console.log(dir);
});

ただし、これはノードのドキュメントからのものであり、Express プロジェクトに適用すると壊れます。私は締め切りに来ているので、これに関するどんな助けも大歓迎です!

4

2 に答える 2

2

rdegges の回答のおかげで、バージョン 1.0.5 の express-stormpath で変更する必要がありました。これは、groups プロパティを使用して 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
于 2015-07-17T12:00:45.800 に答える