mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-03-11 02:12:21 -05:00
Added ability to define permission identifier
refs #9866 - by default it used `options.id`, which tells the permission layer the target id - but some controllers want to use a different identifier - e.g. settings -> settings.key - e.g. password changes -> password[0].user_id
This commit is contained in:
parent
a153400164
commit
4dcf256371
1 changed files with 8 additions and 2 deletions
|
@ -9,8 +9,14 @@ const nonePublicAuth = (apiConfig, frame) => {
|
|||
|
||||
const singular = apiConfig.docName.replace(/s$/, '');
|
||||
|
||||
let unsafeAttrObject = apiConfig.unsafeAttrs && _.has(frame, `data.[${apiConfig.docName}][0]`) ? _.pick(frame.data[apiConfig.docName][0], apiConfig.unsafeAttrs) : {},
|
||||
permsPromise = permissions.canThis(frame.options.context)[apiConfig.method][singular](frame.options.id, unsafeAttrObject);
|
||||
let permissionIdentifier = frame.options.id;
|
||||
|
||||
if (apiConfig.permissionIdentifier) {
|
||||
permissionIdentifier = apiConfig.permissionIdentifier(frame);
|
||||
}
|
||||
|
||||
const unsafeAttrObject = apiConfig.unsafeAttrs && _.has(frame, `data.[${apiConfig.docName}][0]`) ? _.pick(frame.data[apiConfig.docName][0], apiConfig.unsafeAttrs) : {};
|
||||
const permsPromise = permissions.canThis(frame.options.context)[apiConfig.method][singular](permissionIdentifier, unsafeAttrObject);
|
||||
|
||||
return permsPromise.then((result) => {
|
||||
/*
|
||||
|
|
Loading…
Add table
Reference in a new issue