
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2018 10:24 AM
I have a custom table, we'll call it table that includes many fields types, including a journal input called comments and another called internal_comments.
We have a requirement to lock this down tight, but, via the portal, we want people to see their own records.
I have a role for the table u_table_users that has full access to the table except for delete, which is set to admin role.
I managed to get the custom page/widget on the portal to show the details of the record, however, I need for the comments field to be writable for the user. I found that i can achieve this by the table:read and table:write ACL to condition Opened By is (dynamic) me. But, if they have platform access, they can find the record and update it there and I don't want this because they can change other values in the fields. Users do NOT see internal_comments, which I managed.
So, what I'm looking for is this:
On the Portal
Any user be able to read/write to comments and read every other field except internal_comments.
On the Platform
Any user can read all fields except internal_comments and be able to write to comments field only.
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2018 12:58 AM
Just looks like you need a read ACL for all fields with no role. That way anyone can see everything.
A write ACL for the table role to all fields. This gives roled user access to write to the fields and also bars users without the role writing to fields.
A write ACL for the comments field that is opened by dynamic is me. This deploys after the roled acl prohibition as it is more specific.
Note that read is not enough for the comments field as it's a journal record input field. Without write access they just will not see the box.
They will see the activity stream if you have one etc.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2018 12:00 PM
If things really need to be locked down, then you'll want to use ACLs. Every other form of security simply masks the input (which can be bypassed). ACLs don't care about how the record is being viewed, however. It will be consistent (as it should be if it's really secure) regardless of how the record is accessed. It sounds like you need to define more precisely which users can update 'internal_comments' and which users can update 'comments' regardless of the view. Once you do that, you can add the appropriate ACLs to secure the fields.
Once the ACLs are in place, the only other thing to do would be to customize a view or set up a UI policy to hide those readonly fields that shouldn't be visible in either place.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2018 12:39 PM
You know, I didn't think about creating a view for non u_table_users role.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2018 12:11 PM
Is the table extended from another?
If it is you will need table specific acls to override the parent
Also restrict what the author can change, it should not be the whole record. They are the creator but they don't have to have full control etc

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2018 12:40 PM
This is a custom table that does not extend any other table. And what you are describing is what I'm trying to achieve.