Comments (11)
Thank you for the prompt response.
Could you please explain why you would need the builtin User
model if you've created a custom model which extends it? I've got a fair amount of experience in using Loopback v2 and many times using the built in User
model as the base for my custom user/account model.
Is something different in v3 which has this as the recommended approach? I don't have any instances where the builtin model was required in addition to the model I created. It's not entirely clear in this repo why you would need both and I can't find anything in the docs supporting the need to do so.
I realize the issue system isn't intended to be a support mechanism but in this case this ticket is actually secondary to a bug I'm was about to submit to the main loopback repo.
from loopback-example-access-control.
@greaterweb It is intentional. User
is a builtin model and user
is a user-defined model. We really should just rename it Customer
(or Account
like you suggested something to prevent confusion). It's been there for a long time -- if you would like to contribute a fix, I can help you get it landed.
Note that User
is private while user
is public in the model-config
.
from loopback-example-access-control.
cc @crandmck -- we really should get this fixed lol still going around
from loopback-example-access-control.
@greaterweb The builtin User
is used for various parts of the LB system -- ie. ACLs, Roles, AccessToken, etc. So it needs to be part of a default LB scaffold -- that said, it is restricting in many ways so we recommend extending it to enable full customization.
Is something different in v3 which has this as the recommended approach? I don't have any instances where the builtin model was required in addition to the model I created. It's not entirely clear in this repo why you would need both and I can't find anything in the docs supporting the need to do so.
I don't believe anything is different in LB with regards to the usage of the builtin User model -- if you remove it, you'll have to hook up your own to make up for the parts LoopBack is expecting OOB.
from loopback-example-access-control.
@superkhau you may wish to follow the discussions in strongloop/loopback#3215
I guess what we are really looking at is the larger topic on whether or not it is required to include the User
model reference in model-config.json
if I'm extending it. Prior to v3.3.0 it wasn't required to do so to get the "out of the box" benefits of the User
model, with the latest loopback release that appears to have changed.
from loopback-example-access-control.
Yes, I saw your comment with @raymondfeng (especially this one strongloop/loopback#3215 (comment)) which is correct. I wasn't sure if you could've removed User
in versions <3.3.0 -- did you try reproducing on a fresh 2.x project vs 3.x to prove it? Otherwise, it's a breaking change that should've never landed since it wasn't mentioned in the 3.x docs IMO. Anyways, lets confirm first.
from loopback-example-access-control.
we really should get this fixed lol still going around
The general concept of extending the User model for your own purposes is laid out pretty clearly in
http://loopback.io/doc/en/lb3/Managing-users.html. However, it doesn't say you have to leave the entry for User in model-config.json
. I always assumed that to extend a model, you would leave the base model "as is". LMK if I should clarify.
Also, if something did change wrt this between v2 & v3, then we definitely need to document it. I certainly was not aware of it! Please advise. Even if it's a bug that we fix, we should say in the RNs which v3 versions are affected.
from loopback-example-access-control.
The bug is being handled by @miroslav at strongloop/loopback#3215 (comment) already. No doc changes are required ATM.
What I meant was change the user
to Customer
or something to prevent confusion in the example instead of User
to user
remember? This hasn't changed for a long time now. ;)
from loopback-example-access-control.
What I meant was change the user to Customer or something to prevent confusion in the example instead of User to user remember? This hasn't changed for a long time now. ;)
Oh, right... It would be a good change, and should be relatively straightforward. Perhaps something for @siddhipai ?
from loopback-example-access-control.
@crandmck Good idea. :)
from loopback-example-access-control.
@siddhipai See #73, reassigning this to you. Also try to go through his example when you have time too.
from loopback-example-access-control.
Related Issues (20)
- User creation HOT 2
- The roles aren't getting into the Coded ACL. HOT 6
- info about executing "lb relation" is missing HOT 1
- ValidationError: The `user` instance is not valid. Details: `email` is invalid (value: "[email protected]") HOT 4
- Sample with mongo db connection not working as expected HOT 2
- Access Control Bug? HOT 3
- Define role for inbuilt models HOT 2
- automigrate to mongoDB HOT 2
- There is an error in the withdraw remote definition HOT 2
- How to emit this function : Role.registerResolver(role, resolver)?
- Weird relation between the model team and user HOT 3
- how do I apply ACL based permission rather then roles
- How to create a Model names 'device', that a user owns that deivce. HOT 1
- role-resolver.js HOT 2
- Is it possible to filter the projects owned by an owner without adding additional API? HOT 1
- ACL for third-party login HOT 2
- request /api/projects returns "Error: Authorization Required" when use mongodb datasource HOT 22
- Readme 'Tutorial' links broken HOT 2
- Cannot read property 'registerResolver' of undefined HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from loopback-example-access-control.