-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hard Permission System #1103
Comments
What would be nice if the client can block things happening to them, rather than a world blocking them for everyone Those users would move somewhere else, or further schism the community into more specialized worlds I have made mods to prevent knock back, and in game systems already exist to prevent knock back tools and anchoring from working. It would be preferable to allow users to choose what happens to them, rather than the host choosing for them in such cases. But case in point, the host should be able to decide what can be done to the world in a more granular way as you mentioned, but I think it should still allow users to decide to filter the content that only concerns themselves without host intervention |
The goal of this system would be to provide ability for both. More control on what happens to you and your avatar and more control to the host on what happens in their world. This will allow host to allow that kind of behavior, but individual users still preventing it if they want to. However we also want to allow the host to block certain things completely if they wish to do so - that might be necessary for certain types of sessions (e.g. game worlds or chill social sessions). |
Will the world also be able to "enforce" something to be enabled? For example, a game world that requires knockback wouldn't work for users that disabled knockback affecting them. |
would be good to notify users as such, and that certain features may not work and make sure they know that it can very easily break stuff in said world |
That was what Frooxius was getting at, @JackTheFoxOtter. As I mentioned- I would want there to be several layers here, e.g. world-level permissions, session-level permissions, individual permissions, etc. E.g. say you want only contacts to be able to interact with your dynamic bones, or a specific user(s), etc. Or say you've made a game world that needs to have knockback enabled. Separately, distinction from things that are 'part of the world' compared to things users spawn in to the world, e.g. the world could have knockback functionality, but users in the session couldn't bring knockback items. |
I think one of my personal takeaways from the discussion in #337 was that it might be good to look to web browsers or systems such as iOS/Android for inspiration on handling granular permissions. For example, at the world level, a world may want to say "This world needs xyz permissions", which would require users accepting (either through global settings or on a per "app" basis), before joining/creating sessions. It may also be necessary for there to be some sense of "loaded or spawned by the world" and separating that from content spawned by users. One elegant solution here may be through recursive permissions on slots, where existing workspace managers could have sandboxing restrictions set on their slots, and all user roots under them would be subject to those restrictions. Content spawned within, therefore, could be made to not be able to even see further out than their own user workspace. This brings some challenges as colliders or raycasting potentially allowing content to break free from that sandbox, but could still be a very worthwhile avenue for exploration. But there's also several different perspectives to think about here too:
Another item for consideration is that permissions and discussion around it may have overlap with content performance and content age ratings, and it may be a good idea to draw a clear line about where those subjects overlap |
Something that comes to mind is that, for example if you had a session where knockback was required to participate in the game, spectators would not need to allow knockback on themselves. (Also if you had some sort of unequal team game, where knockback is allowed one way but not the other (think 1 v 3 Mario party games) or a no knockback mode on a game. Would there still be a warning before entering the game world or just before joining a game with those things enabled. Would it be more difficult to enable or disable pre join warnings via flux or components automatically? |
Better to ask ahead of time if the user "might" be exposed to a feature by being present in a session than to disrupt experience mid-session to make a request just-in-time, my two cents. |
My hope/vision for the feature would be that we'd have a mechanism to warn users if a world/session's settings do not match the preferences they've established- and from there they could choose whether to join anyway, or cancel.
|
from what i'm reading in this issue, the hard perm system is simalar to something like linux and it's kernel rings where the low level parts are rings 1 and 0 and everything else is userspace/ring3? |
Is your feature request related to a problem? Please describe.
Resonite's existing permission system allows for some amount of control over the user experience, but has some pretty significant limitations.
Describe the solution you'd like
A hard permission system which among other things would need:
This functionality would ideally come with UI so users, and world hosts can set, and establish preferences/defaults for the sorts of experiences they wish to have grouped into various categories, e.g. preventing force from being applied, being anchored, etc.
These permissions would need a few layers of control, e.g. a world creator with a world that has built-in anchors would need to be separated, and distinguished from objects that are added into the world during a session. Users that are entering hosted sessions that do not match their desired comfort level would ideally be warned prior to joining the session that the world contains types of content they have opted out from.
Preferences should be able to be set under certain criteria as well, e.g. having more permissive permissions for contacts, compared to non-contacts. Whenever we further rework the contacts UI, this could also integrate deeper, e.g. assigning permissions to a group of users, or on a per-user basis rather than just broad 'roles' that are controlled solely by the hosted world.
Describe alternatives you've considered
Currently there is no alternative- users that want to ensure a controlled and restricted experience need to tune the existing permission system to meet their needs as best they are able on every single session/world they wish to host.
Additional Context
There are several issues, e.g. #28, #337, #815, #1100, and possibly others which all broadly would be resolved, or significantly improved by the addition of this feature.
This feature would also help ensure additional user control in choosing the types of experiences they are comfortable with across all of the sessions they host/visit.
The text was updated successfully, but these errors were encountered: