@quenty/permissionprovider 14.19.3 → 14.19.4-canary.11a5dcf.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 +16 -0
- package/package.json +13 -13
- package/src/Client/PermissionServiceClient.lua +4 -4
- package/src/Client/Providers/PermissionProviderClient.lua +1 -1
- package/src/Server/PermissionProviderUtils.lua +5 -5
- package/src/Server/PermissionService.lua +29 -19
- package/src/Server/Providers/BasePermissionProvider.lua +7 -10
- package/src/Server/Providers/CreatorPermissionProvider.lua +12 -9
- package/src/Server/Providers/GroupPermissionProvider.lua +8 -5
- package/src/Shared/PermissionLevelUtils.lua +2 -1
- package/src/Shared/PermissionProviderConstants.lua +1 -0
- package/test/scripts/Client/ClientMain.client.lua +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
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
|
+
## [14.19.4-canary.11a5dcf.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/permissionprovider@14.19.3...@quenty/permissionprovider@14.19.4-canary.11a5dcf.0) (2025-05-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Additional type checking updates ([05ba29a](https://github.com/Quenty/NevermoreEngine/commit/05ba29a03efc9f3feed74b34f1d9dfb237496214))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* Add even more types ([b31717d](https://github.com/Quenty/NevermoreEngine/commit/b31717d8c9f7620c457f5018a2affa760a65334a))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [14.19.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/permissionprovider@14.19.2...@quenty/permissionprovider@14.19.3) (2025-04-10)
|
|
7
23
|
|
|
8
24
|
**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": "14.19.
|
|
3
|
+
"version": "14.19.4-canary.11a5dcf.0",
|
|
4
4
|
"description": "Permission provider for Roblox, including authenticating against group membership",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -25,20 +25,20 @@
|
|
|
25
25
|
"Quenty"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@quenty/baseobject": "
|
|
29
|
-
"@quenty/brio": "
|
|
30
|
-
"@quenty/grouputils": "
|
|
31
|
-
"@quenty/loader": "
|
|
32
|
-
"@quenty/maid": "
|
|
33
|
-
"@quenty/playerutils": "
|
|
34
|
-
"@quenty/promise": "
|
|
35
|
-
"@quenty/remoting": "
|
|
36
|
-
"@quenty/rx": "
|
|
37
|
-
"@quenty/servicebag": "
|
|
38
|
-
"@quenty/table": "
|
|
28
|
+
"@quenty/baseobject": "10.8.4-canary.11a5dcf.0",
|
|
29
|
+
"@quenty/brio": "14.17.4-canary.11a5dcf.0",
|
|
30
|
+
"@quenty/grouputils": "10.10.5-canary.11a5dcf.0",
|
|
31
|
+
"@quenty/loader": "10.8.4-canary.11a5dcf.0",
|
|
32
|
+
"@quenty/maid": "3.4.4-canary.11a5dcf.0",
|
|
33
|
+
"@quenty/playerutils": "8.17.4-canary.11a5dcf.0",
|
|
34
|
+
"@quenty/promise": "10.10.5-canary.11a5dcf.0",
|
|
35
|
+
"@quenty/remoting": "12.18.4-canary.11a5dcf.0",
|
|
36
|
+
"@quenty/rx": "13.17.4-canary.11a5dcf.0",
|
|
37
|
+
"@quenty/servicebag": "11.11.5-canary.11a5dcf.0",
|
|
38
|
+
"@quenty/table": "3.7.5-canary.11a5dcf.0"
|
|
39
39
|
},
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "11a5dcf7d4c7a0bfbf3337e97d30e8346ea09d3f"
|
|
44
44
|
}
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
|
|
12
12
|
local require = require(script.Parent.loader).load(script)
|
|
13
13
|
|
|
14
|
-
local
|
|
14
|
+
local Maid = require("Maid")
|
|
15
15
|
local PermissionProviderClient = require("PermissionProviderClient")
|
|
16
|
+
local PermissionProviderConstants = require("PermissionProviderConstants")
|
|
16
17
|
local Promise = require("Promise")
|
|
17
|
-
local
|
|
18
|
-
local _ServiceBag = require("ServiceBag")
|
|
18
|
+
local ServiceBag = require("ServiceBag")
|
|
19
19
|
|
|
20
20
|
local PermissionServiceClient = {}
|
|
21
21
|
PermissionServiceClient.ServiceName = "PermissionServiceClient"
|
|
@@ -24,7 +24,7 @@ PermissionServiceClient.ServiceName = "PermissionServiceClient"
|
|
|
24
24
|
Initializes the permission service on the client. Should be done via [ServiceBag].
|
|
25
25
|
@param serviceBag ServiceBag
|
|
26
26
|
]=]
|
|
27
|
-
function PermissionServiceClient:Init(serviceBag:
|
|
27
|
+
function PermissionServiceClient:Init(serviceBag: ServiceBag.ServiceBag)
|
|
28
28
|
assert(not self._serviceBag, "Already initialized")
|
|
29
29
|
self._serviceBag = assert(serviceBag, "no serviceBag")
|
|
30
30
|
self._maid = Maid.new()
|
|
@@ -75,15 +75,15 @@ end
|
|
|
75
75
|
function PermissionProviderUtils.createConfigFromGame(): PermissionProviderConfig
|
|
76
76
|
if game.CreatorType == Enum.CreatorType.Group then
|
|
77
77
|
return PermissionProviderUtils.createGroupRankConfig({
|
|
78
|
-
groupId = game.CreatorId
|
|
79
|
-
minAdminRequiredRank = 250
|
|
80
|
-
minCreatorRequiredRank = 254
|
|
78
|
+
groupId = game.CreatorId,
|
|
79
|
+
minAdminRequiredRank = 250,
|
|
80
|
+
minCreatorRequiredRank = 254,
|
|
81
81
|
})
|
|
82
82
|
else
|
|
83
83
|
return PermissionProviderUtils.createSingleUserConfig({
|
|
84
|
-
userId = game.CreatorId
|
|
84
|
+
userId = game.CreatorId,
|
|
85
85
|
})
|
|
86
86
|
end
|
|
87
87
|
end
|
|
88
88
|
|
|
89
|
-
return PermissionProviderUtils
|
|
89
|
+
return PermissionProviderUtils
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Provides permissions for the game. See [BasePermissionProvider].
|
|
3
4
|
|
|
@@ -24,21 +25,21 @@
|
|
|
24
25
|
|
|
25
26
|
local require = require(script.Parent.loader).load(script)
|
|
26
27
|
|
|
28
|
+
local BasePermissionProvider = require("BasePermissionProvider")
|
|
29
|
+
local Brio = require("Brio")
|
|
27
30
|
local CreatorPermissionProvider = require("CreatorPermissionProvider")
|
|
28
31
|
local GroupPermissionProvider = require("GroupPermissionProvider")
|
|
29
32
|
local Maid = require("Maid")
|
|
33
|
+
local Observable = require("Observable")
|
|
30
34
|
local PermissionLevel = require("PermissionLevel")
|
|
35
|
+
local PermissionLevelUtils = require("PermissionLevelUtils")
|
|
31
36
|
local PermissionProviderConstants = require("PermissionProviderConstants")
|
|
32
37
|
local PermissionProviderUtils = require("PermissionProviderUtils")
|
|
33
38
|
local Promise = require("Promise")
|
|
34
39
|
local Rx = require("Rx")
|
|
35
40
|
local RxBrioUtils = require("RxBrioUtils")
|
|
36
41
|
local RxPlayerUtils = require("RxPlayerUtils")
|
|
37
|
-
local
|
|
38
|
-
local _ServiceBag = require("ServiceBag")
|
|
39
|
-
local _Observable = require("Observable")
|
|
40
|
-
local _Brio = require("Brio")
|
|
41
|
-
local _BasePermissionProvider = require("BasePermissionProvider")
|
|
42
|
+
local ServiceBag = require("ServiceBag")
|
|
42
43
|
|
|
43
44
|
local PermissionService = {}
|
|
44
45
|
PermissionService.ServiceName = "PermissionService"
|
|
@@ -56,7 +57,7 @@ export type PermissionService = typeof(setmetatable(
|
|
|
56
57
|
Initializes the service. Should be done via [ServiceBag].
|
|
57
58
|
@param _serviceBag ServiceBag
|
|
58
59
|
]=]
|
|
59
|
-
function PermissionService
|
|
60
|
+
function PermissionService.Init(self: PermissionService, _serviceBag: ServiceBag.ServiceBag)
|
|
60
61
|
assert(not self._promise, "Already initialized")
|
|
61
62
|
assert(not self._provider, "Already have provider")
|
|
62
63
|
|
|
@@ -71,7 +72,10 @@ end
|
|
|
71
72
|
|
|
72
73
|
@param config { type: string }
|
|
73
74
|
]=]
|
|
74
|
-
function PermissionService
|
|
75
|
+
function PermissionService.SetProviderFromConfig(
|
|
76
|
+
self: PermissionService,
|
|
77
|
+
config: PermissionProviderUtils.PermissionProviderConfig
|
|
78
|
+
)
|
|
75
79
|
assert(self._promise, "Not initialized")
|
|
76
80
|
assert(not self._provider, "Already have provider set")
|
|
77
81
|
|
|
@@ -87,7 +91,7 @@ end
|
|
|
87
91
|
--[=[
|
|
88
92
|
Starts the permission service. Should be done via [ServiceBag].
|
|
89
93
|
]=]
|
|
90
|
-
function PermissionService
|
|
94
|
+
function PermissionService.Start(self: PermissionService)
|
|
91
95
|
if not self._provider then
|
|
92
96
|
self:SetProviderFromConfig(PermissionProviderUtils.createConfigFromGame())
|
|
93
97
|
end
|
|
@@ -101,7 +105,9 @@ end
|
|
|
101
105
|
Returns the permission provider
|
|
102
106
|
@return Promise<BasePermissionProvider>
|
|
103
107
|
]=]
|
|
104
|
-
function PermissionService
|
|
108
|
+
function PermissionService.PromisePermissionProvider(
|
|
109
|
+
self: PermissionService
|
|
110
|
+
): Promise.Promise<BasePermissionProvider.BasePermissionProvider>
|
|
105
111
|
assert(self._promise, "Not initialized")
|
|
106
112
|
|
|
107
113
|
return self._promise
|
|
@@ -112,7 +118,7 @@ end
|
|
|
112
118
|
@param player Player
|
|
113
119
|
@return Promise<boolean>
|
|
114
120
|
]=]
|
|
115
|
-
function PermissionService
|
|
121
|
+
function PermissionService.PromiseIsAdmin(self: PermissionService, player: Player): Promise.Promise<boolean>
|
|
116
122
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "bad player")
|
|
117
123
|
|
|
118
124
|
return self:PromiseIsPermissionLevel(player, PermissionLevel.ADMIN)
|
|
@@ -123,7 +129,7 @@ end
|
|
|
123
129
|
@param player Player
|
|
124
130
|
@return Promise<boolean>
|
|
125
131
|
]=]
|
|
126
|
-
function PermissionService
|
|
132
|
+
function PermissionService.PromiseIsCreator(self: PermissionService, player: Player): Promise.Promise<boolean>
|
|
127
133
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "bad player")
|
|
128
134
|
|
|
129
135
|
return self:PromiseIsPermissionLevel(player, PermissionLevel.CREATOR)
|
|
@@ -135,7 +141,8 @@ end
|
|
|
135
141
|
@param permissionLevel PermissionLevel
|
|
136
142
|
@return Promise<boolean>
|
|
137
143
|
]=]
|
|
138
|
-
function PermissionService
|
|
144
|
+
function PermissionService.PromiseIsPermissionLevel(
|
|
145
|
+
self: PermissionService,
|
|
139
146
|
player: Player,
|
|
140
147
|
permissionLevel: PermissionLevel.PermissionLevel
|
|
141
148
|
): Promise.Promise<boolean>
|
|
@@ -153,25 +160,28 @@ end
|
|
|
153
160
|
@param permissionLevel PermissionLevel
|
|
154
161
|
@return Observable<Brio<Player>>
|
|
155
162
|
]=]
|
|
156
|
-
function PermissionService
|
|
163
|
+
function PermissionService.ObservePermissionedPlayersBrio(
|
|
164
|
+
self: PermissionService,
|
|
165
|
+
permissionLevel: PermissionLevel.PermissionLevel
|
|
166
|
+
): Observable.Observable<Brio.Brio<Player>>
|
|
157
167
|
assert(PermissionLevelUtils.isPermissionLevel(permissionLevel), "Bad permissionLevel")
|
|
158
168
|
|
|
159
169
|
return RxPlayerUtils.observePlayersBrio():Pipe({
|
|
160
170
|
RxBrioUtils.flatMapBrio(function(player)
|
|
161
171
|
return Rx.fromPromise(self:PromiseIsPermissionLevel(player, permissionLevel)):Pipe({
|
|
162
|
-
Rx.switchMap(function(hasPermission)
|
|
172
|
+
Rx.switchMap(function(hasPermission): any
|
|
163
173
|
if hasPermission then
|
|
164
174
|
return Rx.of(player)
|
|
165
175
|
else
|
|
166
176
|
return Rx.EMPTY
|
|
167
177
|
end
|
|
168
|
-
end),
|
|
169
|
-
})
|
|
170
|
-
end),
|
|
171
|
-
})
|
|
178
|
+
end) :: any,
|
|
179
|
+
}) :: any
|
|
180
|
+
end) :: any,
|
|
181
|
+
}) :: any
|
|
172
182
|
end
|
|
173
183
|
|
|
174
|
-
function PermissionService
|
|
184
|
+
function PermissionService.Destroy(self: PermissionService)
|
|
175
185
|
self._maid:DoCleaning()
|
|
176
186
|
self._provider = nil
|
|
177
187
|
end
|
|
@@ -11,9 +11,9 @@ local BaseObject = require("BaseObject")
|
|
|
11
11
|
local GetRemoteFunction = require("GetRemoteFunction")
|
|
12
12
|
local PermissionLevel = require("PermissionLevel")
|
|
13
13
|
local PermissionLevelUtils = require("PermissionLevelUtils")
|
|
14
|
+
local PermissionProviderUtils = require("PermissionProviderUtils")
|
|
15
|
+
local Promise = require("Promise")
|
|
14
16
|
local Table = require("Table")
|
|
15
|
-
local _Promise = require("Promise")
|
|
16
|
-
local _PermissionProviderUtils = require("PermissionProviderUtils")
|
|
17
17
|
|
|
18
18
|
local BasePermissionProvider = setmetatable({}, BaseObject)
|
|
19
19
|
BasePermissionProvider.ClassName = "BasePermissionProvider"
|
|
@@ -34,7 +34,7 @@ export type BasePermissionProvider = typeof(setmetatable(
|
|
|
34
34
|
@param config { remoteFunctionName: string }
|
|
35
35
|
@return BasePermissionProvider
|
|
36
36
|
]=]
|
|
37
|
-
function BasePermissionProvider.new(config:
|
|
37
|
+
function BasePermissionProvider.new(config: PermissionProviderUtils.PermissionProviderConfig): BasePermissionProvider
|
|
38
38
|
local self: BasePermissionProvider = setmetatable(BaseObject.new() :: any, BasePermissionProvider)
|
|
39
39
|
|
|
40
40
|
self._config = Table.readonly(assert(config, "Bad config") :: any)
|
|
@@ -66,7 +66,7 @@ function BasePermissionProvider.PromiseIsPermissionLevel(
|
|
|
66
66
|
_self: BasePermissionProvider,
|
|
67
67
|
player: Player,
|
|
68
68
|
permissionLevel: PermissionLevel.PermissionLevel
|
|
69
|
-
):
|
|
69
|
+
): Promise.Promise<boolean>
|
|
70
70
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
71
71
|
assert(PermissionLevelUtils.isPermissionLevel(permissionLevel), "Bad permissionLevel")
|
|
72
72
|
|
|
@@ -106,10 +106,7 @@ end
|
|
|
106
106
|
@param player Player
|
|
107
107
|
@return Promise<boolean>
|
|
108
108
|
]=]
|
|
109
|
-
function BasePermissionProvider.PromiseIsCreator(
|
|
110
|
-
self: BasePermissionProvider,
|
|
111
|
-
player: Player
|
|
112
|
-
): _Promise.Promise<boolean>
|
|
109
|
+
function BasePermissionProvider.PromiseIsCreator(self: BasePermissionProvider, player: Player): Promise.Promise<boolean>
|
|
113
110
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
114
111
|
|
|
115
112
|
return self:PromiseIsPermissionLevel(player, PermissionLevel.CREATOR)
|
|
@@ -120,7 +117,7 @@ end
|
|
|
120
117
|
@param player Player
|
|
121
118
|
@return Promise<boolean>
|
|
122
119
|
]=]
|
|
123
|
-
function BasePermissionProvider.PromiseIsAdmin(self: BasePermissionProvider, player: Player):
|
|
120
|
+
function BasePermissionProvider.PromiseIsAdmin(self: BasePermissionProvider, player: Player): Promise.Promise<boolean>
|
|
124
121
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
125
122
|
|
|
126
123
|
return self:PromiseIsPermissionLevel(player, PermissionLevel.ADMIN)
|
|
@@ -169,4 +166,4 @@ function BasePermissionProvider._onServerInvoke(self: BasePermissionProvider, pl
|
|
|
169
166
|
return result and true or false
|
|
170
167
|
end
|
|
171
168
|
|
|
172
|
-
return BasePermissionProvider
|
|
169
|
+
return BasePermissionProvider
|
|
@@ -11,11 +11,11 @@ local require = require(script.Parent.loader).load(script)
|
|
|
11
11
|
local RunService = game:GetService("RunService")
|
|
12
12
|
|
|
13
13
|
local BasePermissionProvider = require("BasePermissionProvider")
|
|
14
|
-
local PermissionProviderConstants = require("PermissionProviderConstants")
|
|
15
|
-
local Promise = require("Promise")
|
|
16
14
|
local PermissionLevel = require("PermissionLevel")
|
|
17
15
|
local PermissionLevelUtils = require("PermissionLevelUtils")
|
|
18
|
-
local
|
|
16
|
+
local PermissionProviderConstants = require("PermissionProviderConstants")
|
|
17
|
+
local PermissionProviderUtils = require("PermissionProviderUtils")
|
|
18
|
+
local Promise = require("Promise")
|
|
19
19
|
|
|
20
20
|
local CreatorPermissionProvider = setmetatable({}, BasePermissionProvider)
|
|
21
21
|
CreatorPermissionProvider.ClassName = "CreatorPermissionProvider"
|
|
@@ -23,7 +23,7 @@ CreatorPermissionProvider.__index = CreatorPermissionProvider
|
|
|
23
23
|
|
|
24
24
|
export type CreatorPermissionProvider = typeof(setmetatable(
|
|
25
25
|
{} :: {
|
|
26
|
-
_config:
|
|
26
|
+
_config: PermissionProviderUtils.SingleUserConfig,
|
|
27
27
|
_userId: number,
|
|
28
28
|
},
|
|
29
29
|
{} :: typeof({ __index = CreatorPermissionProvider })
|
|
@@ -33,7 +33,7 @@ export type CreatorPermissionProvider = typeof(setmetatable(
|
|
|
33
33
|
@param config table
|
|
34
34
|
@return CreatorPermissionProvider
|
|
35
35
|
]=]
|
|
36
|
-
function CreatorPermissionProvider.new(config:
|
|
36
|
+
function CreatorPermissionProvider.new(config: PermissionProviderUtils.SingleUserConfig): CreatorPermissionProvider
|
|
37
37
|
local self: CreatorPermissionProvider =
|
|
38
38
|
setmetatable(BasePermissionProvider.new(config) :: any, CreatorPermissionProvider)
|
|
39
39
|
|
|
@@ -50,16 +50,19 @@ end
|
|
|
50
50
|
@param permissionLevel PermissionLevel
|
|
51
51
|
@return Promise<boolean>
|
|
52
52
|
]=]
|
|
53
|
-
function CreatorPermissionProvider.PromiseIsPermissionLevel(
|
|
53
|
+
function CreatorPermissionProvider.PromiseIsPermissionLevel(
|
|
54
|
+
self: CreatorPermissionProvider,
|
|
55
|
+
player: Player,
|
|
56
|
+
permissionLevel: PermissionLevel.PermissionLevel
|
|
57
|
+
): Promise.Promise<boolean>
|
|
54
58
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
55
59
|
assert(PermissionLevelUtils.isPermissionLevel(permissionLevel), "Bad permissionLevel")
|
|
56
60
|
|
|
57
|
-
if permissionLevel == PermissionLevel.ADMIN
|
|
58
|
-
or permissionLevel == PermissionLevel.CREATOR then
|
|
61
|
+
if permissionLevel == PermissionLevel.ADMIN or permissionLevel == PermissionLevel.CREATOR then
|
|
59
62
|
return Promise.resolved(player.UserId == self._userId or RunService:IsStudio())
|
|
60
63
|
else
|
|
61
64
|
error("Unknown permissionLevel")
|
|
62
65
|
end
|
|
63
66
|
end
|
|
64
67
|
|
|
65
|
-
return CreatorPermissionProvider
|
|
68
|
+
return CreatorPermissionProvider
|
|
@@ -15,8 +15,8 @@ local GroupUtils = require("GroupUtils")
|
|
|
15
15
|
local PermissionLevel = require("PermissionLevel")
|
|
16
16
|
local PermissionLevelUtils = require("PermissionLevelUtils")
|
|
17
17
|
local PermissionProviderConstants = require("PermissionProviderConstants")
|
|
18
|
+
local PermissionProviderUtils = require("PermissionProviderUtils")
|
|
18
19
|
local Promise = require("Promise")
|
|
19
|
-
local _PermissionProviderUtils = require("PermissionProviderUtils")
|
|
20
20
|
|
|
21
21
|
local GroupPermissionProvider = setmetatable({}, BasePermissionProvider)
|
|
22
22
|
GroupPermissionProvider.__index = GroupPermissionProvider
|
|
@@ -24,7 +24,7 @@ GroupPermissionProvider.ClassName = "GroupPermissionProvider"
|
|
|
24
24
|
|
|
25
25
|
export type GroupPermissionProvider = typeof(setmetatable(
|
|
26
26
|
{} :: {
|
|
27
|
-
_config:
|
|
27
|
+
_config: PermissionProviderUtils.GroupRankConfig,
|
|
28
28
|
_groupId: number,
|
|
29
29
|
_minAdminRequiredRank: number,
|
|
30
30
|
_minCreatorRequiredRank: number,
|
|
@@ -39,7 +39,7 @@ export type GroupPermissionProvider = typeof(setmetatable(
|
|
|
39
39
|
@param config table
|
|
40
40
|
@return GroupPermissionProvider
|
|
41
41
|
]=]
|
|
42
|
-
function GroupPermissionProvider.new(config:
|
|
42
|
+
function GroupPermissionProvider.new(config: PermissionProviderUtils.GroupRankConfig): GroupPermissionProvider
|
|
43
43
|
local self = setmetatable(BasePermissionProvider.new(config) :: any, GroupPermissionProvider)
|
|
44
44
|
|
|
45
45
|
assert(self._config.type == PermissionProviderConstants.GROUP_RANK_CONFIG_TYPE, "Bad configType")
|
|
@@ -158,7 +158,10 @@ function GroupPermissionProvider._handlePlayer(self: GroupPermissionProvider, pl
|
|
|
158
158
|
end)
|
|
159
159
|
end
|
|
160
160
|
|
|
161
|
-
function GroupPermissionProvider._promiseRankInGroup(
|
|
161
|
+
function GroupPermissionProvider._promiseRankInGroup(
|
|
162
|
+
self: GroupPermissionProvider,
|
|
163
|
+
player: Player
|
|
164
|
+
): Promise.Promise<number>
|
|
162
165
|
assert(typeof(player) == "Instance", "Bad player")
|
|
163
166
|
|
|
164
167
|
if self._promiseRankPromisesCache[player.UserId] then
|
|
@@ -169,4 +172,4 @@ function GroupPermissionProvider._promiseRankInGroup(self: GroupPermissionProvid
|
|
|
169
172
|
return self._promiseRankPromisesCache[player.UserId]
|
|
170
173
|
end
|
|
171
174
|
|
|
172
|
-
return GroupPermissionProvider
|
|
175
|
+
return GroupPermissionProvider
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
@class PermissionLevelUtils
|
|
3
4
|
]=]
|
|
@@ -20,4 +21,4 @@ function PermissionLevelUtils.isPermissionLevel(permissionLevel: any): boolean
|
|
|
20
21
|
return ALLOWED[permissionLevel] == true
|
|
21
22
|
end
|
|
22
23
|
|
|
23
|
-
return PermissionLevelUtils
|
|
24
|
+
return PermissionLevelUtils
|
|
@@ -9,7 +9,9 @@ serviceBag:GetService(require("PermissionServiceClient"))
|
|
|
9
9
|
serviceBag:Init()
|
|
10
10
|
serviceBag:Start()
|
|
11
11
|
|
|
12
|
-
serviceBag
|
|
12
|
+
serviceBag
|
|
13
|
+
:GetService(require("PermissionServiceClient"))
|
|
14
|
+
:PromisePermissionProvider()
|
|
13
15
|
:Then(function(permissionProvider)
|
|
14
16
|
return permissionProvider:PromiseIsAdmin()
|
|
15
17
|
end)
|
|
@@ -17,4 +19,4 @@ serviceBag:GetService(require("PermissionServiceClient")):PromisePermissionProvi
|
|
|
17
19
|
print("isAdmin", isAdmin)
|
|
18
20
|
end)
|
|
19
21
|
|
|
20
|
-
print("Loaded")
|
|
22
|
+
print("Loaded")
|