mantle icon indicating copy to clipboard operation
mantle copied to clipboard

Add support for the Game Settings permissions system

Open guidojw opened this issue 3 years ago • 2 comments

I use the Permissions tab in Game Settings to allow group roles/specific users to play my game's staging environment. It would be nice if this can be handled with Mantle too.

API:

  • GET https://develop.roblox.com/v2/universes/:experienceId/permissions
    • JSON body:
      { "data": Array<
      	{ "userId": string, "userName": string, "action": "Play" | "Edit", "allowedPermissions": "" | "Play" | "Play,Edit" } | 
      	{ "groupId": string, "groupName": string, "action": "Play" | "Edit" | null, "allowedPermissions": "" | "Play" | "Play,Edit" } |
      	{ "rolesetId": string, "rolesetName": string, "groupId": string, "rank": string, "groupName": string, "action": "Play" | "Edit" | null, "allowedPermissions": "" | "Play" | "Play,Edit" }
      > }
      
  • POST https://develop.roblox.com/v2/universes/:experienceId/permissions
    • JSON body:
      Array<{ "subjectType": "User" | "Group" | "Roleset", "subjectId": string, "action": "Play" | "Edit" }>
      
  • DELETE https://develop.roblox.com/v2/universes/:experienceId/permissions
    • JSON body:
      Array<{ "subjectType": "User" | "Group" | "Roleset", "subjectId": string, "action": "Play" | "Edit" }>
      

guidojw avatar Jan 20 '22 04:01 guidojw

Interesting. I had not seen this before because it's behind Team Create and I had assumed that users of Mantle would not be interested in Team Create since you're editing with Git. However it looks like you can use these permissions to give both Play and Edit access. What permissions exactly does Edit give users? Just the ability to join Team Create?

I am open to adding support for this but to be honest I'm not sure what the right config API is for it. Maybe something like this?

target:
  experience:
    teamCreate:
      enabled: true
      permissions:
        - userId: 1
          level: edit
        - groupId: 1
          level: play
        - roleId: 1
          groupId: 1
          level: edit

Also note this will need to enable/disable team create:

  • Create: POST https://develop.roblox.com/v1/universes/:experienceId/teamcreate with { "isEnabled": boolean }
  • Update: POST https://develop.roblox.com/v1/universes/:experienceId/teamcreate with { "isEnabled": boolean }
  • Delete: Update to disable it
  • Import: GET https://develop.roblox.com/v1/universes/:experienceId/teamcreate returns { "isEnabled": boolean }

blake-mealey avatar Jan 21 '22 01:01 blake-mealey

What permissions exactly does Edit give users? Just the ability to join Team Create?

@blake-mealey - On personal places, it provides access to team create as well as permissions for things like shutting down servers. It gives incredibly limited access to game settings. On group games, the option is not avaliable AFAIK.

autonordev avatar Nov 10 '22 12:11 autonordev