Я новичок в бэкэнд-разработке с Sails, я хотел бы знать, как я могу запретить пользователям перечислять ресурсы, которые им не принадлежат, вот мои модели:
models / User.js:
var bcrypt = require('bcryptjs')
module.exports = {
attributes: {
// ╔═╗╦═╗╦╔╦╗╦╔╦╗╦╦ ╦╔═╗╔═╗
// ╠═╝╠╦╝║║║║║ ║ ║╚╗╔╝║╣ ╚═╗
// ╩ ╩╚═╩╩ ╩╩ ╩ ╩ ╚╝ ╚═╝╚═╝
password: {type: 'string', required: true},
email: {type: 'string', required: true, unique: true},
firstName: {type: 'string', allowNull: true},
lastName: {type: 'string', allowNull: true},
phoneNumber: {type: 'string', allowNull: true},
// ╔═╗╔╦╗╔╗ ╔═╗╔╦╗╔═╗
// ║╣ ║║║╠╩╗║╣ ║║╚═╗
// ╚═╝╩ ╩╚═╝╚═╝═╩╝╚═╝
// ╔═╗╔═╗╔═╗╔═╗╔═╗╦╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
// ╠═╣╚═╗╚═╗║ ║║ ║╠═╣ ║ ║║ ║║║║╚═╗
// ╩ ╩╚═╝╚═╝╚═╝╚═╝╩╩ ╩ ╩ ╩╚═╝╝╚╝╚═╝
bankAccounts: {collection: 'bankAccount', via: 'user'},
},
customToJSON: function() {
return _.omit(this, ['password', 'updatedAt'])
},
beforeCreate: function(values, cb) {
bcrypt.hash(values.password, 10, (err, hash) => {
if (err) return cb(err)
values.password = hash
cb()
})
},
}
models / BankAccount.js:
module.exports = {
attributes: {
// ╔═╗╦═╗╦╔╦╗╦╔╦╗╦╦ ╦╔═╗╔═╗
// ╠═╝╠╦╝║║║║║ ║ ║╚╗╔╝║╣ ╚═╗
// ╩ ╩╚═╩╩ ╩╩ ╩ ╩ ╚╝ ╚═╝╚═╝
user: {model: 'user'},
name: {type: 'string', required: true},
iban: {type: 'string', required: true, unique: true, maxLength: 34},
bic: {type: 'string', required: true, maxLength: 11},
// ╔═╗╔╦╗╔╗ ╔═╗╔╦╗╔═╗
// ║╣ ║║║╠╩╗║╣ ║║╚═╗
// ╚═╝╩ ╩╚═╝╚═╝═╩╝╚═╝
// ╔═╗╔═╗╔═╗╔═╗╔═╗╦╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
// ╠═╣╚═╗╚═╗║ ║║ ║╠═╣ ║ ║║ ║║║║╚═╗
// ╩ ╩╚═╝╚═╝╚═╝╚═╝╩╩ ╩ ╩ ╩╚═╝╝╚╝╚═╝
},
}
Я хотел бы запретить пользователю видеть все учетные записи, когда он делает GET /user/
, и запретить ему перечислять другиебанковские счета, чем его, когда он делает GET /bank_account/
или для доступа к GET /bank_account/:id
, если id
не является одним из его счетов.
Для возобновления его можно рассматривать как политику isOwner
, ноне мог найти один!
Надеюсь, вы поможете мне, и я достаточно ясен, чтобы вы поняли, не стесняйтесь, скажите мне, могу ли я дать больше подробностей или объяснить больше мою проблему.