Tworzę interfejs API, który ma różne poziomy dostępu, "klient" może tylko czytać. Ale "admin" musi mieć prawo do zapisu. Różne role sprawdzane są każdorazowo jako zasada w pliku Sails.js i określają prawa w wymaganiach.Uwierzytelnianie Sails.js dla działań modelowych
Po prostu muszę dać "klientowi" brak dostępu do tworzenia, aktualizacji i usuwania akcji, dlatego stworzyłem kontroler, który ma te akcje CRUD i sprawdza, czy użytkownik ma odpowiednią rolę. Wszystkie działania, które mają ograniczony dostęp, są przekierowywane przez program routes.js do tego kontrolera.
Teraz mój problem polega na tym, że podczas usuwania wpisu typu: Category.destroy (req.param ('id')); Daje mi niezdefiniowane i nie ma żadnej metody. W przeciwieństwie do wymienionych przez docs udało mi się rozwiązać ten problem tworząc w ten sposób:
var deleted = Category.destroy(req.param('id'), function(err, status) {
if (status == 1){
res.json({message: 'Category is deleted'});
} else {
res.json({message: 'Oops, something went wrong'});
}
});
Ale tam musi być jakiś inny sposób, aby zastosować uwierzytelnianie do tych podstawowych działań. Ponieważ teraz muszę napisać wszystkie akcje.
Czy jest coś nie tak z kodem dla funkcji usuwania, którą napisałem? Czy możliwe jest zastosowanie zasad i przekierowanie do domyślnych działań modelu, tak jakby w ogóle nie było uwierzytelniania?
Dziękuję za odpowiedź. Myślę, że przekierowanie w żaglach było częścią nieprawidłowo działających działań. Teraz z nowym przepisem działa tak, jak powinien. Ale dziękuję za poświęcony czas! – Loed