loopback - авторизовать GET пользователей? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть проект с обратной связью, использующий postgres, и по умолчанию я не авторизован для пользователей GET (ошибка 401).У меня нет user.json и user.js в моих общих / моделях.
Как мне изменить acl модели User?
После некоторых исследований мне кажется, что я понял, что некоторые люди воссоздаютuser.json, а затем перенести его?Это способ переписать ACL?

1 Ответ

0 голосов
/ 26 апреля 2018

ACL пользователя (и большинство acls) работают на DENY * и добавляют исключения для того, что необходимо.Если вы не хотите расширять модель по умолчанию, вы можете использовать.

'use strict';

var loopback = require('loopback');
var boot = require('loopback-boot');

var app = module.exports = loopback();

app.start = function() {
  // start the web server
  return app.listen(function() {
    app.emit('started');
    var baseUrl = app.get('url').replace(/\/$/, '');
    console.log('Web server listening at: %s', baseUrl);

    // Allow GET Users
    const User = app.models.User;
    User.settings.acls.push(
      {
        'principalType': 'ROLE',
        'property': 'find',
        'principalId': '$everyone',
        'permission': 'ALLOW'
      }
    );


    if (app.get('loopback-component-explorer')) {
      var explorerPath = app.get('loopback-component-explorer').mountPath;
      console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
    }
  });
};

// Bootstrap the application, configure models, datasources and middleware.
// Sub-apps like REST API are mounted via boot scripts.
boot(app, __dirname, function(err) {
  if (err) throw err;

  // start the server if `$ node server.js`
  if (require.main === module)
    app.start();
});
...