I’m encountering an issue with row owners in my app and need help understanding if my setup is correct or if something else needs to change. I’ve attached two screenshots showing the configuration.
Setup Details:
I’m using the Email and Role columns as row owners, assuming Glide’s row owner logic works like an OR function.
In my Users table, I (Simon) am set with the email simonxxxgmail.com and the role Admin.
In the Jobs table, all rows are set with either the email (simonxxx@gmail.com) or the role Admin as row owners.
Any user should be able to add new job entries, and I want users with the Admin role to see all rows while other users only see the rows they added themselves.
The Issue:
I expect to see all rows in the Jobs table because my role is Admin (applied as a row owner), but the last row (uploaded by Chris) is greyed out and inaccessible to me.
This behavior seems to contradict the expected OR logic for row owners (either the Email OR the Role should grant access).
Question:
Can someone confirm if my understanding of the OR logic for row owners is correct?
If it is, why is this setup not working as expected?
What changes, if any, should I make to resolve this issue?
I’ve attached two screenshots for reference. Any insights would be greatly appreciated!
Note that putting row ownership on the Role column in your Users table isn’t really doing anything in your case. If you as an Admin want to be able to see all users, you should have a separate column with row owners applied, that has the word “Admin” in every row.
So linking that to the Role column in the User table should apply the access restrictions across all tables?
Also, if a new user logs in to the App, I guess I would have to set up some logic to enter a Role definition in the Role column of the User table, correct?
What if I want to change another User’s Role when I use the App? If the User table has row owners then isn’t there a risk I cannot access/modify the role column for another user?
Yep, at least for any table where you have row owners applied and are using the role as the owner value.
Yes, if you want them to have a role.
As long as it’s setup correctly, there is no risk of that. But regardless, you cannot modify another users role via the UI. You need to use the API. Below is a short video that I made some time ago that shows how to do it using the Make integration:
Brilliant video… thanks so much for sharing. The actions work a treat…
However, I am going to have to watch it a coupe of times to understand what’s going on. It introduces some concepts I have not used, chief among them is using the Make Integration. Looks to represent a nice use case to jump in an learn how to use it… do I have to set up an account with Make to use the integration? Assume yes, like most integrations (GPT and DocMaker, etc…) or is it billed through Glide (would be great!).
Cool, and sorry if it’s obvious in the video, but can Make edit rows in a User table even if Row owners is set? Can it bypass that in order to modify the ‘Role’ column (so long as it has the RowID taken from the helper table)?
Yes, correct. The Make integration uses the Glide API under the hood, and row owners have no affect on what you can do or see via the API. When you use the API, you are effectively acting as a system “super user”.
@Simon_Hill I probably should mention that it is now possible to do this without Make or the Glide API, by leveraging the new webhook triggered workflows. What you would do is use either a Call API or Trigger Webhook action in your user initiated workflow to call a webhook triggered workflow, passing the appropriate parameters, and then make your updates within that.
Well I thought I was almost there but my webhook action doesn’t seem to work… can you figure out why? Anything obvious that you can spot please?
Just to add a screenshot showing that my Webhook Workflow is a ‘set column’ action. I have not defined any row in it… I assume it picks up the info from the JSON.
Firstly, I would rename the JSON data to something simple like data. Same thing with your keys. It’s always better to avoid white space in JSON keys. Makes it easier and less error prone when working with them. So I’d recommend something like:
{
"data": {
"role": "test",
"rowID": "XXXXXX"
}
}
Then in your workflow, you’ll need the following:
– Query JSON to extract the role, eg: $data.role
– Query JSON to extract the RowID, eg: $data.rowID
– Query to the Users table, filtering by the RowID
– Single Value->First->Whole Row from the Query
– And then finally, you can do Set Column Values via the Single Value
Can you do a small recording of how I modify the Workflow and add the JSON? I am getting confused about whether to add it to the webhook or the workflow that is triggered by the action…