strapi - 将用户限制为 delete/destroy 仅与他相关的数据
strapi - restrict user to delete/destroy only data related to him
我想写几行来防止用户删除他不拥有的数据。
如何自定义以下 "destroy" 部分?
destroy: async (ctx, next) => {
return strapi.services.contactnumber.remove(ctx.params);
}
提前致谢,复活节快乐。
我已经为我的应用程序做了同样的事情,请在下面找到我的示例代码:
findOne: async (ctx) => {
var rent = await strapi.services.rent.fetch(ctx.params);
var user = ctx.state.user;
rent = rent.toJSON ? rent.toJSON() : rent;
if (user.id === rent.tenant.user) {
return rent;
}
else {
return ctx.badRequest(null, 'Forbidden');
}
},
也许这不是最好的实现,但它运行良好:)
关键字 "await" 很重要,因为在验证响应之前需要等待完整响应(否则将返回 "undefined")。
我想你的代码应该是这样的:
destroy: async (ctx, next) => {
var contactnumber = await strapi.services.contactnumber.findOne(ctx.params);
contactnumber = (contactnumber.toJSON ? contactnumber.toJSON() : contactnumber);
if (ctx.state.user.id === contactnumber.user) {
return strapi.services.contactnumber.remove(ctx.params);
}
else {
return ctx.badRequest(null, 'Your error message');
}
}
谢谢,
我想写几行来防止用户删除他不拥有的数据。 如何自定义以下 "destroy" 部分?
destroy: async (ctx, next) => {
return strapi.services.contactnumber.remove(ctx.params);
}
提前致谢,复活节快乐。
我已经为我的应用程序做了同样的事情,请在下面找到我的示例代码:
findOne: async (ctx) => {
var rent = await strapi.services.rent.fetch(ctx.params);
var user = ctx.state.user;
rent = rent.toJSON ? rent.toJSON() : rent;
if (user.id === rent.tenant.user) {
return rent;
}
else {
return ctx.badRequest(null, 'Forbidden');
}
},
也许这不是最好的实现,但它运行良好:) 关键字 "await" 很重要,因为在验证响应之前需要等待完整响应(否则将返回 "undefined")。
我想你的代码应该是这样的:
destroy: async (ctx, next) => {
var contactnumber = await strapi.services.contactnumber.findOne(ctx.params);
contactnumber = (contactnumber.toJSON ? contactnumber.toJSON() : contactnumber);
if (ctx.state.user.id === contactnumber.user) {
return strapi.services.contactnumber.remove(ctx.params);
}
else {
return ctx.badRequest(null, 'Your error message');
}
}
谢谢,