@quenty/cmdrservice 5.3.0 → 5.4.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
+ # [5.4.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/cmdrservice@5.3.0...@quenty/cmdrservice@5.4.0) (2022-07-31)
7
+
8
+
9
+ ### Features
10
+
11
+ * Allow server-side execution of cmdr commands without an executor and allow only client-side commands ([e0d5189](https://github.com/Quenty/NevermoreEngine/commit/e0d5189a65ef813138e1f0065c7e933db47cb0a2))
12
+
13
+
14
+
15
+
16
+
6
17
  # [5.3.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/cmdrservice@5.2.0...@quenty/cmdrservice@5.3.0) (2022-07-02)
7
18
 
8
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/cmdrservice",
3
- "version": "5.3.0",
3
+ "version": "5.4.0",
4
4
  "description": "Bridge between cmdr and Nevermore services using servicebag",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -26,19 +26,17 @@
26
26
  ],
27
27
  "dependencies": {
28
28
  "@quenty/loader": "^5.0.0",
29
- "@quenty/maid": "^2.3.0",
30
- "@quenty/permissionprovider": "^6.2.0",
31
- "@quenty/promise": "^5.0.0",
32
- "@quenty/remoting": "^5.1.0",
33
- "@quenty/servicebag": "^5.0.0",
29
+ "@quenty/maid": "^2.4.0",
30
+ "@quenty/permissionprovider": "^6.3.0",
31
+ "@quenty/promise": "^5.1.0",
32
+ "@quenty/remoting": "^5.2.0",
33
+ "@quenty/servicebag": "^5.1.0",
34
34
  "@quenty/string": "^2.3.0",
35
- "@quenty/templateprovider": "^5.0.0"
36
- },
37
- "peerDependencies": {
35
+ "@quenty/templateprovider": "^5.1.0",
38
36
  "@quentystudios/cmdr": "^1.8.4-quenty.1"
39
37
  },
40
38
  "publishConfig": {
41
39
  "access": "public"
42
40
  },
43
- "gitHead": "de33c83e7f897e2b0887c77aeb1fc7963756f234"
41
+ "gitHead": "e31b3a35aa475bb5699a24898a8639e107165b36"
44
42
  }
@@ -28,7 +28,48 @@ function CmdrServiceClient:Init(serviceBag)
28
28
  self._serviceBag = assert(serviceBag, "No serviceBag")
29
29
 
30
30
  self._maid = Maid.new()
31
- self._permissionService = self._serviceBag:GetService(PermissionServiceClient)
31
+ self._permissionServiceClient = self._serviceBag:GetService(PermissionServiceClient)
32
+
33
+ self:PromiseCmdr():Then(function(cmdr)
34
+ cmdr.Registry:RegisterHook("BeforeRun", function(context)
35
+ -- allow!
36
+ if context.Executor == nil then
37
+ return nil
38
+ end
39
+
40
+ local providerPromise = self._permissionServiceClient:PromisePermissionProvider()
41
+ if providerPromise:IsPending() then
42
+ return "Still loading permissions"
43
+ end
44
+
45
+ local ok, provider = providerPromise:Yield()
46
+ if not ok then
47
+ if type(provider) == "string" then
48
+ return provider
49
+ else
50
+ return "Failed to load permission provider"
51
+ end
52
+ end
53
+
54
+ local isAdmin
55
+ ok, isAdmin = provider:PromiseIsAdmin(context.Executor):Yield()
56
+ if not ok then
57
+ if type(provider) == "string" then
58
+ return provider
59
+ else
60
+ return "Failed to load permission provider"
61
+ end
62
+ end
63
+
64
+ if not isAdmin then
65
+ return "You don't have permission to run this command"
66
+ else
67
+ -- allow
68
+ return nil
69
+ end
70
+ end)
71
+
72
+ end)
32
73
  end
33
74
 
34
75
  --[=[
@@ -39,7 +80,7 @@ function CmdrServiceClient:Start()
39
80
 
40
81
  self._maid:GivePromise(PromiseUtils.all({
41
82
  self:PromiseCmdr(),
42
- self._maid:GivePromise(self._permissionService:PromisePermissionProvider())
83
+ self._maid:GivePromise(self._permissionServiceClient:PromisePermissionProvider())
43
84
  :Then(function(provider)
44
85
  return provider:PromiseIsAdmin()
45
86
  end)
@@ -37,6 +37,11 @@ function CmdrService:Init(serviceBag)
37
37
  self._executeData = {}
38
38
 
39
39
  self._cmdr.Registry:RegisterHook("BeforeRun", function(context)
40
+ -- allow!
41
+ if context.Executor == nil then
42
+ return nil
43
+ end
44
+
40
45
  local providerPromise = self._permissionService:PromisePermissionProvider()
41
46
  if providerPromise:IsPending() then
42
47
  return "Still loading permissions"