模板数据权限
Template Data Permissions
我一直在将活动注册者功能添加到我的 Apostrophe 网站中。我创建了一个新的 "leader" 组,如果用户是该组的一部分,活动页面应该显示 table 和当前注册人 counts/basic 信息:
{% for reg in data.piece.registrants %}
{% set count = count + reg.attendeeCount %}
<tr>
<td>{{reg._user.firstName}} {{reg._user.lastName}}</td>
<td>{{reg.attendeeCount}}</td>
</tr>
{% endfor %}
<tr class="total-registrant-row">
<td>Total</td>
<td></td>
<td></td>
<td>{{count}}</td>
我已将注册者数组添加到 apostrophe-events,它本身包含一个用户连接:
addFields: [
{
name: 'registrants',
label: 'Registrants',
type: 'array',
schema: [
{
name: '_user',
withType: 'apostrophe-user',
type: 'joinByOne',
idField: 'userId',
filters: {
// Fetch only basic information to show in table:
projection: {
id: 1,
username: 1,
firstName: 1,
lastName: 1,
email: 1
}
}
},
{
name: 'registrationDate',
label: 'Registration Date',
contextual: true,
type: 'string'
},
{
name: 'attendeeCount',
label: 'Total Attendees',
type: 'integer'
}
]
}
]
我注意到当我以管理员身份登录时,它工作正常,但如果我以领导组中的用户身份登录(不是管理员),计数会显示,但不会显示用户信息。我假设这是因为领导组没有获得任何用户的权限。我将如何设置它以便模板在这种情况下绕过权限,或者授予领导者查看任何注册事件用户信息的权限?
谢谢!
您可以使用联接的 filters
属性 来调用任何游标方法,包括 permission
,您可以将其设置为 false
以允许用户在不考虑当前用户权限的情况下获取:
filters: {
// Fetch only basic information to show in table:
projection: {
id: 1,
username: 1,
firstName: 1,
lastName: 1,
email: 1
},
// Ignore permissions for this join:
permission: false
}
```
我一直在将活动注册者功能添加到我的 Apostrophe 网站中。我创建了一个新的 "leader" 组,如果用户是该组的一部分,活动页面应该显示 table 和当前注册人 counts/basic 信息:
{% for reg in data.piece.registrants %}
{% set count = count + reg.attendeeCount %}
<tr>
<td>{{reg._user.firstName}} {{reg._user.lastName}}</td>
<td>{{reg.attendeeCount}}</td>
</tr>
{% endfor %}
<tr class="total-registrant-row">
<td>Total</td>
<td></td>
<td></td>
<td>{{count}}</td>
我已将注册者数组添加到 apostrophe-events,它本身包含一个用户连接:
addFields: [
{
name: 'registrants',
label: 'Registrants',
type: 'array',
schema: [
{
name: '_user',
withType: 'apostrophe-user',
type: 'joinByOne',
idField: 'userId',
filters: {
// Fetch only basic information to show in table:
projection: {
id: 1,
username: 1,
firstName: 1,
lastName: 1,
email: 1
}
}
},
{
name: 'registrationDate',
label: 'Registration Date',
contextual: true,
type: 'string'
},
{
name: 'attendeeCount',
label: 'Total Attendees',
type: 'integer'
}
]
}
]
我注意到当我以管理员身份登录时,它工作正常,但如果我以领导组中的用户身份登录(不是管理员),计数会显示,但不会显示用户信息。我假设这是因为领导组没有获得任何用户的权限。我将如何设置它以便模板在这种情况下绕过权限,或者授予领导者查看任何注册事件用户信息的权限?
谢谢!
您可以使用联接的 filters
属性 来调用任何游标方法,包括 permission
,您可以将其设置为 false
以允许用户在不考虑当前用户权限的情况下获取:
filters: {
// Fetch only basic information to show in table:
projection: {
id: 1,
username: 1,
firstName: 1,
lastName: 1,
email: 1
},
// Ignore permissions for this join:
permission: false
}
```