1

I am very new to loopback. I am making my first app with it and I change my datasource to MySql. my person model look like this

person.json

{
  "name": "Person",
  "plural": "People",
  "base":"User",
  "properties": {
    "firstName": {
      "type": "string",
      "required": true
    },
    "lastName": {
      "type": "string",
      "required": true
    },
    "username": {
      "type": "string",
      "required": true
    },
    "email": {
      "type": "string",
      "required": true
    },
    "password": {
      "type": "string",
      "required": true
    }
  },
  "validations": [],
  "relations": {},
  "acls": [
    {
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "ALLOW",
      "accessType": "*"
    }
  ],
  "methods": []
}

and

datasource.json

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "mysql": {
    "host": "localhost",
    "port": 3306,
    "database": "demo",
    "username": "demouser",
    "password": "****",
    "name": "mysql",
    "connector": "mysql"
  }
}

and

model-config.json

{
  "_meta": {
    "sources": [
      "../common/models",
      "./models"
    ]
  },
  "AccessToken": {
    "dataSource": "db",
    "public": false
  },
  "ACL": {
    "dataSource": "db",
    "public": false
  },
  "RoleMapping": {
    "dataSource": "db",
    "public": false
  },
  "Role": {
    "dataSource": "db",
    "public": false
  },
  "Person": {
    "dataSource": "mysql",
    "public": true
  }
}

After this when I want to create any person I cant create any person as I am unauthorized. I inserted an entry in mysql and tried to login but no luck.But when I remove User as base of person then all goes fine. But I lose all auth features inherit from User. How can I extend User using mysql as datasource properly so that I can use Person as my Users? Thanks in Advance

Community
  • 1
  • 1
Nur Rony
  • 7,823
  • 7
  • 38
  • 45

1 Answers1

0

Can you try to add the following ACL?

"acls": [
    {
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "ALLOW",
      "accessType": "*",
      "property": "create"
    }
  ],

You can debug the application using:

DEBUG=loopback:security:* node .

Raymond Feng
  • 1,516
  • 9
  • 5