Add-on Trust Levels / Circles of Trust

Facula

Well-known member
Licensed customer
Willing to pay.

I have a rather unique need and am asking for interest from developers for this task.

I am imagining that the level of complexity required for this is probably high, but you tell me. Honestly, I don't even know if this can be done.

Basics:
Allow for Custom User Fields to be viewed based on individual user-based permission sets tied to what I am calling Trust Levels, or Circles of Trust (however that gets technically implemented)

Trust Levels, by default could be tied to User Groups.

Alternatively (i.e. optional by user preference) individual field viewability of a Field by others could be set by user preference, granular down to individual users.

These fields would be used to share increasingly detailed information about anything. In this specific case, personal information.

For simplicity, I was just planning on utilizing the existing Custom User Fields, but adding the ability for the user to assign a trust level to that field, which would then allow or disallow another from viewing that field.

It seems to me that this is almost "reverse permissions" so I'm not sure how that could be implemented. But I don't think this could be accomplished with standard permissions.

So let's say I wanted to have a general field topic of "Apples you like" (random choice here). User X could see information I enter into a set of Custom User Fields based on the level of trust I have with them for each field. If these are my entires for the "Apples" Fields
Apples Field Level 1 : color
Apples Field Level 2 : size
Apples Field Level 3 : where it grows
Apples Field Level 4 : specific type
etc

...And User X is on my Trust Level 3, they can see 1/2/3 but not 4

Another way to do this (more complex) would be to make Custom User Fields able to allow one Topic with multiple answer fields within it, and then assign a default Trust Level to each answer field (which can be user-modified)

A default scheme could be usergroup based

Level 0 - not really a level because I don't intend for any user information (except for Username) is visible to anyone who does not have a registered user account. But this could be the default.
Level 1 - visible to Registered users
Level 2 - visible to users in User group A
Level 3 - visible to users in User group B
Level 4 - visible to users in User group C
Level 5 - visible to users in User group D
etc
Final Level (deepest Circle) - visible to your only those you manually select

For each field level, you can choose how much detail you wish to reveal.

This could be taken to another level with Locations and the Member Map system. This is where this concept shines on a critical pathway that is very specific to my platform. But this would likely require modification to one of the existing Member Map addons (and that is another request that I would want developed as well)

Users could granularly apply locations that are more and more precise with each level. Such as:

Level 1 - country
Level 2 - area (midwest, northeast, etc, allow multiple for people who are in crossover territories)
Level 3 - State / province (similar to Level 2, with crossover areas allowed)
Level 4 - county or geographic section of state/province/territory
Level 5 - city
Level 6 - address

Some of this is copy/paste so I apologize for any repetetiveness.

Please ask questions!

If you prefer DM, go for it. I may share clarifications here that eminate from those messages.
 
Interesting idea and I can imagine quite a couple of scenarios where this could be useful. The location one you mentioned being a pretty good example. Depending from one core aspect that you did not mention it could possibly be easier or more horribly. ;)

We are talking about custom user fields, so (as I understand it) basically parts of the profile. Per se probably not too difficult to add a bunch of user groups with different trust levels for different access levels. But: Where does the trust come from? It could be i.e.

a) forumwide groups, i.e. based on account age, number of postings, or other criteria combined. Relatively easy I'd say.
b) individual, each user sets his individual group of people for different trust levels. This would be more interesting, but also way more complex. I'd rather talk about trust circles, that each user has. Which would, if implemented as user groups, lead to an endless amount of user groups - basically number of forum users times number of trust levels. Does not sound like the best idea. :p

The difference is: The entity that sets the trust is either globally or it is individually - the latter would probably need a whole new system on top of or aside of user groups. Complex and probably not easy, but doable. I'm not a developer, so don't ask me. ;)

PS: You could make it even more complex when adding ingredients that follow the principle that PGP used for the concept of "web of trust".
 
Last edited:
Just to avoid confusion, my Username change just got approved

This might be what you're looking for


It doesn't currently allow users to manage access to their own fields, but this could be developed as a separate add-on if you're interested

Is that for Thread Fields though, not User fields?

We are talking about custom user fields, so (as I understand it) basically parts of the profile.
Correct
Where does the trust come from?
each user sets his individual group of people for different trust levels. This would be more interesting, but also way more complex.
This ^ is the key principle
Which would, if implemented as user groups, lead to an endless amount of user groups - basically number of forum users times number of trust levels. Does not sound like the best idea.
That's my concern. The Member Maps example is really the worst-case scenario. Upon opening the map, that would make some kind of database call that checks not only checks every other user's location and determines whose location is viewable, it also would have to determine what circle each user is in relative to the requestor and then map the location in that associated field. The more users, the more complex that operation becomes.

However, depending on how this is implemented, other DB calls could be more limited. As I think about this, it could be created in a way such that it's only one set of checks that is only implemented upon an active operation, like selecting a button to reveal such info. What I mean is, instead of having a complex permissions check take place every time User A visits another User B's profile page, it could be a completely separate module (for lack of a better term). Think of a button on each users' profile page "view info" and when User A selects that button, that's when the DB call is made, which checks what circle User A (the requestor) is in relative to User B (the requestee)
 
Sorry, outdated description here.
Both - threads and user fields.
That's along the basic lines, but would just need an additional level of user control. Take a look at my post just above yours (last paragraph). Does that sound like this request needs a completely different addon?
 
Another way of describing the structure of this:

- Each user has trust levels/circles (established via ACP config)

- User can select usergroups for each trust level. This would be the default method and would use the default groups set by ACP config.

- Override: Users can modify who is at their various trust levels manually, perhaps by typing in their username into list box of some sort. Users can promote or demote users on their lists to other levels.

- This could also be an option, but I don't know that I would use it.
a) forumwide groups, i.e. based on account age, number of postings, or other criteria combined. Relatively easy I'd say.
Perhaps this could require user confirmation, i.e. an alert "User B is eligible for promotion to your Level 4 based on the criteria you selected, do you approve?" Similarly, a demotion mechanism. Additionally, a request mechanism (User B requests access to User A's Level 5)

Another possible function, but this could get hairy...
- Follow another person's level of trust for others (with confirmation). So if you implicitly trust User C, and User C has User D in their level 4, User D would be eligible for your Level 4
 
That's along the basic lines, but would just need an additional level of user control. Take a look at my post just above yours (last paragraph). Does that sound like this request needs a completely different addon?
Yes, you'll need a custom add-on for that

Integration with Member map depends on how the data is stored, so you'll probably need another custom add-on
 
Back
Top Bottom