Site-Wide Privacy Block User: Protect Users

Hey there, hope you’re doing great!

I just can’t figure this one out. I’ve searched, watch videos - can’t nail it - would be grateful for your help!

Wanting to protect my users who don’t want to see other users. I have set up a workflow to add user to a “block list” - but I can’t nail the privacy settings site-wide that would hide the blocked users content from this user, but not everyone else.

Made a quick video about it - thanks!

Hi, haven’t finished watching the video, but you are on the right track of having a block list as a field within each user’s record, and then blocking the data coming through by using privacy settings.

Keep fiddling with your privacy setting function – from what I saw in the video, you may have it the wrong way around. “This user” is the data of a user in question (not the logged in user). “Current user” is the one who is logged in. I have not tested this, but I would look to write a function like… “This User is in Current User’s Block List”.

PS: what screen capture software are you using… next on my list is to figure that out so I can embed some instructional and demo videos on my site.

1 Like

UPDATE

BIG thank you to @mikeloc for spending nearly 45 min with me on a spontaneous video chat to confront this challenge - we did find a work-a-round, but what we found is that it shouldn’t even work like that, either!

Could this really be a bug?

First, there really seems to be no way to “Block” a user from seeing other users, using a single Data Type Privacy setting. You’d have to create a List of Blocked Users for each Data Type, then add a workflow so one a person is blocked in one space, all other lists are updated.

Also, there is no logic behind why our workaround should actually work?! I’m talking days trying to solve this one challenge - this one just doesn’t make sense.

Also, @emmanuel - maybe you know why this is the only way I can get this to work here?

using https://www.loom.com/ to screen grab :wink:

Thanks for your message!

Hey there, @ChefThomas… it was my pleasure to try to help.

One point of clarification from your second video… you shouldn’t have to create a separate list of users in each data type in order to hide that data type’s content from certain users. If you have a list of blocked users on the User data type, then you should be able to create a privacy rule on, say, the Question data type that says When Current User’s Block List contains This Question’s creator, and then uncheck the associated checkboxes. I have that same construct in one of my apps, and it works like a charm. The only difference is that I use the construct to define data that should be shown to users as opposed to hidden from them, and maybe that’s the issue here. I still don’t think the Everyone else rule should have been “overriding” the other rule the way it looked like it was, but I might be missing something basic here, and maybe I’ve got my mind all twisted at this point. That happens in Bubble-land sometimes, and it seems to happen to me more often than I’d care to admit. :wink:

1 Like

Thanks for catching that, @mikeloc . maybe I did not say it well in the video - but you’re absolutely right.

I’ve worked on other tasks in my backlog, come back to this and still don’t get it. Gone for walks, gave my wife some loving, come back to this, hours and hours… still don’t get it. Maybe I should open up a bottle of whiskey? :stuck_out_tongue_winking_eye:

Looking forward to finding a solution or understanding why the Privacy Rules aren’t acting accordingly! (probably like what Mike said- something stupid easy we’re blind too).

:v:

1 Like

Hi, spent a few minutes putting together a quick structure to test this because I was curious how it worked. I didn’t have more than 15 minutes to focus on this, but what I found was…

  1. This may be better accomplished via your search parameter. Privacy is intended to block access to data for privacy/security reasons. In your case, there is no security issue – the user just doesn’t want to see someone else’s post. So just throw that constraint into your RG search constraints for the posts. I did it via the below, where I’m blocking a Blog post if the blog post’s creator is in the current user’s Blocked list.

image

  1. There may be a way to do it via privacy settings, but when I went to do it, it did not give me the option I was looking for. If I want to block data for a Blog to come through, then I’d need to see a “This Blog’s Creator is in Current User’s Blocked”. But it does not give you a “is in” option.

image

I tried reversing the order of the expression to “Current User’s Blocked doesn’t contain This Blogs’s Creator”, but that didn’t do anything. There’s probably some reason why, and in general the Privacy rules have much less search functionality vs. what you’ll find in RG searches. But regardless it’s probably better to just accomplish your blocking via the search parameters.

@ed727 Thanks for your message.

You’re pretty much saying exactly what’s in my videos.

The reason why I don’t want to do it on the RG level is that it bloats the app and slows things down. Doing things server side is best practice.

Still - no solution yet for this. I’m looking forward to who/how/when it gets figured out. It’s preventing me from launching my app :unamused:

2 Likes

Ah got it. Note though that things in the “Do a search for” box are server side and very fast. Josh wrote about it in his performance Q&A a few years back as being the fastest way to filter data. It’s only the :filter stuff that is client side and can get slow if the dataset is large.

If you’re focused on executing this via the performance rules, maybe try Bubble support. They’re usually pretty helpful in explaining why something does/doesn’t work.

That’s good to know, Ed. Thank you, sir! :metal:
I appreciate it!

Still - if anyone knows how to overcome this Privacy Data Type challenge, I’m keen to hear why you think it’s not working logically.