Я все еще копаю глубоко в петлюУ меня есть следующие модели: admin
=> расширяет встроенную модель User
, student
=> расширяет встроенную модель User
и другие модели coz.
Краткое описание:
Я не хочу, чтобы аутентифицированный экземпляр student
мог получить доступ к конечной точке Student GET /students
.Я не хочу, чтобы Student
мог иметь доступ к информации обо всех Student
.Итак, я предложил администратора, который должен иметь возможность доступа к конечной точке GET / студентов через реализацию роли.Я хочу, чтобы администратор имел доступ ко всем конечным точкам
Постоянный:
В script.js
module.exports = function(app) {
const User = app.models.admin;
const Role = app.models.Role;
const RoleMapping = app.models.RoleMapping;
Role.find({ name: 'admin' }, function(err, results) {
if (err) {
throw err;
}
if (results.length < 1) {
// now Role creation...
User.create([{name:'Felix Olonde',username:"felix",email: 'felix@gmail.com', password: 'felix123',phone_number:3127287656,dob:1988-03-04,state: 'LA'
}
], function(err, users) {
if (err) throw err;
console.log('Created user:', users);
//create the admin role
Role.create({
name: 'admin'
}, function(err, role) {
if (err) throw err;
console.log('Created role:', role);
role.principals.create({
principalType: RoleMapping.USER,
principalId: users[0].id
}, function(err, principal) {
if (err) throw err;
console.log('Created principal:', principal);
});
});
});
}
});
}
student.json
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",//student to access their own information
"permission": "ALLOW"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW",
"property": "find"
}
],
admin.json
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
],
Проблема
После входа в систему администратора, который успешно создан в базе данных (я использую Mongo, размещенный в mLab), когда я пытаюсь получить всех студентов с помощью проводникая продолжаю получать 401 .. "Требуется авторизация"
Цель
Я только хочу, чтобы администратор действительно мог полностью контролировать конечные точки API.Т.е. админ должен иметь возможность получить всех учеников и т. Д.