
Am 05.10.2018 um 12:49 schrieb Ivan Perez:
The design approach you're after is called "Capabilities". It's not ordinarily described as a type system, and I'm not sure whether it's a good idea to use static types in the first place because there are situations where you want to grant or revoke them dynamically.
In part, isn't specifying this up-front what iOS and Android do with permissions, or docker with capabilities?
Even these grant and revoke permissions based on user actions. What you can describe statically is right relationships - IF the user has given permission such-and-so, THEN this-and-that activity is allowed. Maybe that's the way to go. If not: Any alternative should have spent at least some thought about how to deal with rights being granted and revoked.