2017-04-03 1 views
0

루프백 사용자 모델에서 상속 된 MyUser 모델을 만들었습니다. 부팅 스크립트에서 MyUser 모델, 사용자 지정 역할에 사용자를 만들고 그 역할을 해당 역할에 매핑했습니다. 그러나 ACL은 MyUser.json 파일에 할당 한 후 작동하지 않습니다.루프백 ACL이 작동하지 않습니다.

Bootscript.js

'use strict'; 

module.exports = function(app) { 

var User = app.models.MyUser; 
var Role = app.models.Role; 
var RoleMapping = app.models.RoleMapping; 
User.findOrCreate({ name: "Administrator", email: "[email protected]", username: "admin", password: "12345" }, function(err, succ) { 
    if (err) { 
     console.log(err); 
    } else { 
     Role.create({ name: "superUser" }, function(err, role) { 
      if (err) { 
       console.log(err); 
      } else { 
       console.log("Role created successfuly"); 
       role.principals.create({ principalType: RoleMapping.USER, principalId: succ.id }, function(err, success) { 
        if (err) { 
         console.log(err); 
        } else { 
         console.log("role mapped successfuly"); 
        } 
       }); 
      } 
     }); 
    } 
}); 

}; 

MyUser.json

"acls": [ 
{ 
    "accessType": "*", 
    "principalType": "ROLE", 
    "principalId": "superUser", 
    "permission": "ALLOW" 
} 
] 

하지만 MyUser.find에 액세스 할 때 API를 탐색기의 방법이

{ 
"error": { 
"statusCode": 401, 
"name": "Error", 
"message": "Authorization Required", 
"code": "AUTHORIZATION_REQUIRED", 
"stack": "Error: Authorization Required\n at ... 
} 
} 
을 말한다 (모든 사용자를 얻을 수)

내가 뭘 잘못하고 있니?

답변

0

401 반환, 왜냐하면 findOrCreate가 생성 된 인스턴스 ID를 반환하지 않기 때문입니다.

시도는 succ.id를 콘솔에이 경우 경우 대신

0

사용자는 기본적으로 몇 ACL을 가지고 upsert 사용합니다. 먼저 삭제해야합니다. 그들은 여기에 저장

app.models.User.settings.acls = []; 

부팅

이 시도
관련 문제