ACLS не распознается

Я следую стилю примера приложения, определяя файл json в каталоге моделей вместе с файлом .js для загрузки файла json.

Моя проблема в том, что определения acls в моем файле json, который запрещает роль everyone, не распознаются. Я могу успешно GET api/clients как непривилегированный пользователь со статусом 200. Ожидаю получить статус 401, доступ запрещен.

В качестве теста я добавляю те же определения acls в json пользовательской модели по умолчанию и получаю статус 401, доступ запрещен, как и ожидалось.

Вот некоторые из client.json (как в клиенте, не путать с внешним интерфейсом)

{
  "name": "client",
  "public": true,
  "dataSource": "db",
  "plural": "clients",
  "options": {
    "strict": true,
    "acls": [
      {
        "accessType": "*",
        "permission": "DENY",
        "principalType": "ROLE",
        "principalId": "$everyone"
      }
    ],
    "scopes": {
      "active": {"where": {"active": true}, "order": "company_name"}
    }
  },
  "properties": {
    "id": {
      "type": "string",
      "generated": true,
      "id": true
    },
    "active": {
      "type": "Boolean",
      "default": true
    },
    "company_name": {
      "type": "string",
      "required": true,
      "length": 64
    }
}

клиент.js

var app = require('./../app');
var db = app.dataSources.db;

// Load config
var config = require('./client.json');

// Create model from config
var Client = db.createModel('client', config);

// Add to REST API
app.model(Client);

module.exports = Client;

Должны ли acls работать с моей моделью клиента или здесь нужно что-то еще настроить?


person Coder1    schedule 28.05.2014    source источник


Ответы (1)


Я понял проблему.

config.properties и config.options должны передаваться в createModel как отдельные аргументы.

var Client = db.createModel('client', config.properties, config.options);

Если вы передадите всю конфигурацию в качестве свойств, ошибок не будет.

Также обратите внимание, что config.plural также работает, если он определен внутри объекта config.options.

person Coder1    schedule 28.05.2014