Linking Account with a Person entity

1
I have two apps. in one I have used inheritance so the person entity has a generalisation with Account. In the other, there is a one to one association between Person and Account. Initially both did not allow Account fields to be edited in pages (eg create). the Person fields could be edited but not the Account fields. Then for no direct reason that I could see, a change in the inheritance example (channging a microflow) did allow fields to be edited. Let’s call that success. But the association example remains a problem. The administrator user role has full write to the Person entity and the admin module roles in the Administration, System and local modules. Are there security rights on an association? Any other places I should look? Or is inheritance inherently the way to go?    
asked
4 answers
1

A few thought from my side

  1. NEVER inherit your person entity by Account (or user)
    Although it feels simple, works out of the box, makes live for you as dev easy. 
    it WILL bite you at a point. if it isn't during development it will be in production. trust me ;-)
  2. Like Radhika mentions, ensure that the association between the account and Person is set.
    1. At least the person itself should have read access over the association. Since its a 1-1 association, ensure that it is configured on both ends!
    2. Admin role depends on implementation. if only reading association → Read if also managing the association like selecting an account for a person → Read/write.
  3. Automate as much as possible
answered
0

Here is a screen dump

answered
0

Hi John,

One possible reason why account fields may not be editable is that the object is not created and associated to the person entity. Though I’m not sure if that is what you’re missing or if security is configured incorrectly. 

Regarding using inheritance, I’d probably advise against it as Account is already inheriting from User and then you would inherit Account from Person which becomes 2 level and could create overhead when updating this information in the database and there are some security reasons too which are already discussed in this forum post in the past. Looking more closely as to how the application should behave functionally and what sort of data it is going to be could also indicate whether you should use an association.

Hope this helps!

answered
0

I am still having problems with linking a module entity with the admin.account entity.
So I have associated on a 1- 1 basis Person with admin.Account.
Now I am trying to create a new Person object. I have created a non persisted Registration entity (containing attributes from bothPperson and Account) and in the microflow, create a Person object which is populated by the Registration object.
No problems with attributes that are present in Person BUT when I try to use Registration attributes that correspond to Account, I get an error of “Entity ‘Community.Person’ does not contain attribute ‘Administration.Account.FullName’.” (Where Community is the local module)
So it knows that Registration.Fullname is linked to Adminsitration.Account.FullName but that it is not linked to Person.
So in summary, very confused.

answered