@quenty/permissionprovider 8.11.0 → 8.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [8.12.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/permissionprovider@8.11.0...@quenty/permissionprovider@8.12.0) (2023-04-24)
7
+
8
+
9
+ ### Features
10
+
11
+ * Add PromiseIsCreator and PromiseIsAdmin utility helper methods on PermissionService ([179ed15](https://github.com/Quenty/NevermoreEngine/commit/179ed153a3c6329417569cfff93310a0e862bc1d))
12
+
13
+
14
+
15
+
16
+
6
17
  # [8.11.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/permissionprovider@8.10.1...@quenty/permissionprovider@8.11.0) (2023-04-10)
7
18
 
8
19
  **Note:** Version bump only for package @quenty/permissionprovider
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/permissionprovider",
3
- "version": "8.11.0",
3
+ "version": "8.12.0",
4
4
  "description": "Permission provider for Roblox, including authenticating against group membership",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -37,5 +37,5 @@
37
37
  "publishConfig": {
38
38
  "access": "public"
39
39
  },
40
- "gitHead": "3306212248c310731931ad45d8b86dc7247f2a5d"
40
+ "gitHead": "a8a760988c8fd88c2581c5c496a8bad845de104c"
41
41
  }
@@ -23,7 +23,22 @@ PermissionServiceClient.ServiceName = "PermissionServiceClient"
23
23
  @param _serviceBag ServiceBag
24
24
  ]=]
25
25
  function PermissionServiceClient:Init(_serviceBag)
26
- self._provider = PermissionProviderClient.new(PermissionProviderConstants.DEFAULT_REMOTE_FUNCTION_NAME)
26
+ self._providerPromise = Promise.resolved(PermissionProviderClient.new(PermissionProviderConstants.DEFAULT_REMOTE_FUNCTION_NAME))
27
+ end
28
+
29
+ --[=[
30
+ Returns whether the player is an admin.
31
+
32
+ @param player Player | nil
33
+ @return Promise<boolean>
34
+ ]=]
35
+ function PermissionServiceClient:PromiseIsAdmin(player)
36
+ assert((typeof(player) == "Instance" and player:IsA("Player")) or player == nil, "Bad player")
37
+
38
+ return self:PromisePermissionProvider()
39
+ :Then(function(permissionProvider)
40
+ return permissionProvider:PromiseIsAdmin(player)
41
+ end)
27
42
  end
28
43
 
29
44
  --[=[
@@ -31,7 +46,7 @@ end
31
46
  @return Promise<PermissionProviderClient>
32
47
  ]=]
33
48
  function PermissionServiceClient:PromisePermissionProvider()
34
- return Promise.resolved(self._provider)
49
+ return self._providerPromise
35
50
  end
36
51
 
37
52
  return PermissionServiceClient
@@ -7,6 +7,8 @@
7
7
 
8
8
  local require = require(script.Parent.loader).load(script)
9
9
 
10
+ local Players = game:GetService("Players")
11
+
10
12
  local PermissionProviderConstants = require("PermissionProviderConstants")
11
13
  local Promise = require("Promise")
12
14
  local PromiseGetRemoteFunction = require("PromiseGetRemoteFunction")
@@ -25,9 +27,16 @@ end
25
27
 
26
28
  --[=[
27
29
  Returns whether the local player is an admin.
30
+
31
+ @param player Player | nil
28
32
  @return Promise<boolean>
29
33
  ]=]
30
- function PermissionProviderClient:PromiseIsAdmin()
34
+ function PermissionProviderClient:PromiseIsAdmin(player)
35
+ player = player or Players.LocalPlayer
36
+ assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
37
+
38
+ assert(player == Players.LocalPlayer, "We only support local player for now")
39
+
31
40
  if self._cachedAdminPromise then
32
41
  return self._cachedAdminPromise
33
42
  end
@@ -92,6 +92,34 @@ function PermissionService:PromisePermissionProvider()
92
92
  return self._promise
93
93
  end
94
94
 
95
+ --[=[
96
+ Returns whether the player is an admin.
97
+ @param player Player
98
+ @return Promise<boolean>
99
+ ]=]
100
+ function PermissionService:PromiseIsAdmin(player)
101
+ assert(typeof(player) == "Instance" and player:IsA("Player"), "bad player")
102
+
103
+ return self:PromisePermissionProvider()
104
+ :Then(function(permissionProvider)
105
+ return permissionProvider:PromiseIsAdmin(player)
106
+ end)
107
+ end
108
+
109
+ --[=[
110
+ Returns whether the player is a creator.
111
+ @param player Player
112
+ @return Promise<boolean>
113
+ ]=]
114
+ function PermissionService:PromiseIsCreator(player)
115
+ assert(typeof(player) == "Instance" and player:IsA("Player"), "bad player")
116
+
117
+ return self:PromisePermissionProvider()
118
+ :Then(function(permissionProvider)
119
+ return permissionProvider:PromiseIsCreator(player)
120
+ end)
121
+ end
122
+
95
123
  function PermissionService:Destroy()
96
124
  self._maid:DoCleaning()
97
125
  self._provider = nil