@iobroker/js-controller-cli 7.2.3 → 8.0.0-alpha.1-20260921-e5941ca8a

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.
Files changed (225) hide show
  1. package/build/cjs/index.js +3 -3
  2. package/build/cjs/lib/_Types.d.ts +8 -1
  3. package/build/cjs/lib/cli/cliCert.d.ts +7 -4
  4. package/build/cjs/lib/cli/cliCert.js +10 -6
  5. package/build/cjs/lib/cli/cliCert.js.map +2 -2
  6. package/build/cjs/lib/cli/cliCommand.d.ts +63 -15
  7. package/build/cjs/lib/cli/cliCommand.js +8 -1
  8. package/build/cjs/lib/cli/cliCommand.js.map +2 -2
  9. package/build/cjs/lib/cli/cliCompact.d.ts +5 -2
  10. package/build/cjs/lib/cli/cliCompact.js +9 -2
  11. package/build/cjs/lib/cli/cliCompact.js.map +2 -2
  12. package/build/cjs/lib/cli/cliDebug.d.ts +5 -2
  13. package/build/cjs/lib/cli/cliDebug.js +8 -1
  14. package/build/cjs/lib/cli/cliDebug.js.map +2 -2
  15. package/build/cjs/lib/cli/cliHost.d.ts +13 -10
  16. package/build/cjs/lib/cli/cliHost.js +13 -5
  17. package/build/cjs/lib/cli/cliHost.js.map +2 -2
  18. package/build/cjs/lib/cli/cliLogs.d.ts +9 -3
  19. package/build/cjs/lib/cli/cliLogs.js +12 -1
  20. package/build/cjs/lib/cli/cliLogs.js.map +2 -2
  21. package/build/cjs/lib/cli/cliMessage.d.ts +2 -1
  22. package/build/cjs/lib/cli/cliMessage.js +5 -0
  23. package/build/cjs/lib/cli/cliMessage.js.map +2 -2
  24. package/build/cjs/lib/cli/cliObjects.d.ts +21 -18
  25. package/build/cjs/lib/cli/cliObjects.js +51 -33
  26. package/build/cjs/lib/cli/cliObjects.js.map +2 -2
  27. package/build/cjs/lib/cli/cliPlugin.d.ts +3 -3
  28. package/build/cjs/lib/cli/cliPlugin.js +6 -0
  29. package/build/cjs/lib/cli/cliPlugin.js.map +2 -2
  30. package/build/cjs/lib/cli/cliProcess.d.ts +17 -7
  31. package/build/cjs/lib/cli/cliProcess.js +77 -24
  32. package/build/cjs/lib/cli/cliProcess.js.map +3 -3
  33. package/build/cjs/lib/cli/cliStates.d.ts +7 -4
  34. package/build/cjs/lib/cli/cliStates.js +14 -6
  35. package/build/cjs/lib/cli/cliStates.js.map +2 -2
  36. package/build/cjs/lib/cli/cliTools.js +11 -0
  37. package/build/cjs/lib/cli/cliTools.js.map +1 -1
  38. package/build/cjs/lib/cli/messages.js +47 -46
  39. package/build/cjs/lib/cli/messages.js.map +1 -1
  40. package/build/cjs/lib/progressBar.d.ts +59 -0
  41. package/build/cjs/lib/progressBar.js +115 -0
  42. package/build/cjs/lib/progressBar.js.map +7 -0
  43. package/build/cjs/lib/setup/customError.d.ts +4 -0
  44. package/build/cjs/lib/setup/customError.js +7 -0
  45. package/build/cjs/lib/setup/customError.js.map +2 -2
  46. package/build/cjs/lib/setup/dbConnection.js +69 -64
  47. package/build/cjs/lib/setup/dbConnection.js.map +3 -3
  48. package/build/cjs/lib/setup/formatters.d.ts +4 -4
  49. package/build/cjs/lib/setup/formatters.js +5 -0
  50. package/build/cjs/lib/setup/formatters.js.map +2 -2
  51. package/build/cjs/lib/setup/multihostClient.js +6 -2
  52. package/build/cjs/lib/setup/multihostClient.js.map +1 -1
  53. package/build/cjs/lib/setup/pluginInfos.d.ts +5 -0
  54. package/build/cjs/lib/setup/pluginInfos.js +2 -0
  55. package/build/cjs/lib/setup/pluginInfos.js.map +2 -2
  56. package/build/cjs/lib/setup/setupBackup.d.ts +53 -0
  57. package/build/cjs/lib/setup/setupBackup.js +125 -14
  58. package/build/cjs/lib/setup/setupBackup.js.map +3 -3
  59. package/build/cjs/lib/setup/setupInstall.d.ts +51 -15
  60. package/build/cjs/lib/setup/setupInstall.js +212 -28
  61. package/build/cjs/lib/setup/setupInstall.js.map +2 -2
  62. package/build/cjs/lib/setup/setupLicense.d.ts +13 -0
  63. package/build/cjs/lib/setup/setupLicense.js +33 -2
  64. package/build/cjs/lib/setup/setupLicense.js.map +2 -2
  65. package/build/cjs/lib/setup/setupList.d.ts +55 -1
  66. package/build/cjs/lib/setup/setupList.js +78 -24
  67. package/build/cjs/lib/setup/setupList.js.map +3 -3
  68. package/build/cjs/lib/setup/setupMultihost.d.ts +7 -0
  69. package/build/cjs/lib/setup/setupMultihost.js +78 -11
  70. package/build/cjs/lib/setup/setupMultihost.js.map +3 -3
  71. package/build/cjs/lib/setup/setupPacketManager.d.ts +10 -0
  72. package/build/cjs/lib/setup/setupPacketManager.js +16 -6
  73. package/build/cjs/lib/setup/setupPacketManager.js.map +2 -2
  74. package/build/cjs/lib/setup/setupRepo.d.ts +19 -0
  75. package/build/cjs/lib/setup/setupRepo.js +141 -13
  76. package/build/cjs/lib/setup/setupRepo.js.map +2 -2
  77. package/build/cjs/lib/setup/setupSetup.d.ts +34 -0
  78. package/build/cjs/lib/setup/setupSetup.js +209 -35
  79. package/build/cjs/lib/setup/setupSetup.js.map +3 -3
  80. package/build/cjs/lib/setup/setupUpgrade.d.ts +13 -2
  81. package/build/cjs/lib/setup/setupUpgrade.js +72 -12
  82. package/build/cjs/lib/setup/setupUpgrade.js.map +2 -2
  83. package/build/cjs/lib/setup/setupUpload.d.ts +77 -1
  84. package/build/cjs/lib/setup/setupUpload.js +152 -9
  85. package/build/cjs/lib/setup/setupUpload.js.map +2 -2
  86. package/build/cjs/lib/setup/setupUsers.d.ts +44 -14
  87. package/build/cjs/lib/setup/setupUsers.js +330 -17
  88. package/build/cjs/lib/setup/setupUsers.js.map +2 -2
  89. package/build/cjs/lib/setup/setupVendor.d.ts +14 -1
  90. package/build/cjs/lib/setup/setupVendor.js +40 -8
  91. package/build/cjs/lib/setup/setupVendor.js.map +2 -2
  92. package/build/cjs/lib/setup/setupVisDebug.d.ts +16 -2
  93. package/build/cjs/lib/setup/setupVisDebug.js +41 -17
  94. package/build/cjs/lib/setup/setupVisDebug.js.map +3 -3
  95. package/build/cjs/lib/setup/utils.d.ts +1 -1
  96. package/build/cjs/lib/setup/utils.js +13 -9
  97. package/build/cjs/lib/setup/utils.js.map +3 -3
  98. package/build/cjs/lib/setup.d.ts +1 -1
  99. package/build/cjs/lib/setup.js +858 -1758
  100. package/build/cjs/lib/setup.js.map +3 -3
  101. package/build/esm/lib/_Types.d.ts +8 -1
  102. package/build/esm/lib/_Types.d.ts.map +1 -1
  103. package/build/esm/lib/cli/cliCert.d.ts +7 -4
  104. package/build/esm/lib/cli/cliCert.d.ts.map +1 -1
  105. package/build/esm/lib/cli/cliCert.js +6 -6
  106. package/build/esm/lib/cli/cliCert.js.map +1 -1
  107. package/build/esm/lib/cli/cliCommand.d.ts +63 -15
  108. package/build/esm/lib/cli/cliCommand.d.ts.map +1 -1
  109. package/build/esm/lib/cli/cliCommand.js +4 -1
  110. package/build/esm/lib/cli/cliCommand.js.map +1 -1
  111. package/build/esm/lib/cli/cliCompact.d.ts +5 -2
  112. package/build/esm/lib/cli/cliCompact.d.ts.map +1 -1
  113. package/build/esm/lib/cli/cliCompact.js +5 -2
  114. package/build/esm/lib/cli/cliCompact.js.map +1 -1
  115. package/build/esm/lib/cli/cliDebug.d.ts +5 -2
  116. package/build/esm/lib/cli/cliDebug.d.ts.map +1 -1
  117. package/build/esm/lib/cli/cliDebug.js +4 -1
  118. package/build/esm/lib/cli/cliDebug.js.map +1 -1
  119. package/build/esm/lib/cli/cliHost.d.ts +13 -10
  120. package/build/esm/lib/cli/cliHost.d.ts.map +1 -1
  121. package/build/esm/lib/cli/cliHost.js +8 -5
  122. package/build/esm/lib/cli/cliHost.js.map +1 -1
  123. package/build/esm/lib/cli/cliLogs.d.ts +9 -3
  124. package/build/esm/lib/cli/cliLogs.d.ts.map +1 -1
  125. package/build/esm/lib/cli/cliLogs.js +8 -1
  126. package/build/esm/lib/cli/cliLogs.js.map +1 -1
  127. package/build/esm/lib/cli/cliMessage.d.ts +2 -1
  128. package/build/esm/lib/cli/cliMessage.d.ts.map +1 -1
  129. package/build/esm/lib/cli/cliMessage.js +1 -0
  130. package/build/esm/lib/cli/cliMessage.js.map +1 -1
  131. package/build/esm/lib/cli/cliObjects.d.ts +21 -18
  132. package/build/esm/lib/cli/cliObjects.d.ts.map +1 -1
  133. package/build/esm/lib/cli/cliObjects.js +44 -38
  134. package/build/esm/lib/cli/cliObjects.js.map +1 -1
  135. package/build/esm/lib/cli/cliPlugin.d.ts +3 -3
  136. package/build/esm/lib/cli/cliPlugin.d.ts.map +1 -1
  137. package/build/esm/lib/cli/cliPlugin.js +1 -1
  138. package/build/esm/lib/cli/cliPlugin.js.map +1 -1
  139. package/build/esm/lib/cli/cliProcess.d.ts +17 -7
  140. package/build/esm/lib/cli/cliProcess.d.ts.map +1 -1
  141. package/build/esm/lib/cli/cliProcess.js +73 -12
  142. package/build/esm/lib/cli/cliProcess.js.map +1 -1
  143. package/build/esm/lib/cli/cliStates.d.ts +7 -4
  144. package/build/esm/lib/cli/cliStates.d.ts.map +1 -1
  145. package/build/esm/lib/cli/cliStates.js +6 -2
  146. package/build/esm/lib/cli/cliStates.js.map +1 -1
  147. package/build/esm/lib/progressBar.d.ts +59 -0
  148. package/build/esm/lib/progressBar.d.ts.map +1 -0
  149. package/build/esm/lib/progressBar.js +104 -0
  150. package/build/esm/lib/progressBar.js.map +1 -0
  151. package/build/esm/lib/setup/customError.d.ts +4 -0
  152. package/build/esm/lib/setup/customError.d.ts.map +1 -1
  153. package/build/esm/lib/setup/customError.js +3 -0
  154. package/build/esm/lib/setup/customError.js.map +1 -1
  155. package/build/esm/lib/setup/dbConnection.d.ts.map +1 -1
  156. package/build/esm/lib/setup/dbConnection.js +10 -13
  157. package/build/esm/lib/setup/dbConnection.js.map +1 -1
  158. package/build/esm/lib/setup/formatters.d.ts +4 -4
  159. package/build/esm/lib/setup/formatters.js +4 -4
  160. package/build/esm/lib/setup/pluginInfos.d.ts +5 -0
  161. package/build/esm/lib/setup/pluginInfos.d.ts.map +1 -1
  162. package/build/esm/lib/setup/pluginInfos.js +5 -0
  163. package/build/esm/lib/setup/pluginInfos.js.map +1 -1
  164. package/build/esm/lib/setup/setupBackup.d.ts +53 -0
  165. package/build/esm/lib/setup/setupBackup.d.ts.map +1 -1
  166. package/build/esm/lib/setup/setupBackup.js +132 -13
  167. package/build/esm/lib/setup/setupBackup.js.map +1 -1
  168. package/build/esm/lib/setup/setupInstall.d.ts +51 -15
  169. package/build/esm/lib/setup/setupInstall.d.ts.map +1 -1
  170. package/build/esm/lib/setup/setupInstall.js +228 -23
  171. package/build/esm/lib/setup/setupInstall.js.map +1 -1
  172. package/build/esm/lib/setup/setupLicense.d.ts +13 -0
  173. package/build/esm/lib/setup/setupLicense.d.ts.map +1 -1
  174. package/build/esm/lib/setup/setupLicense.js +31 -1
  175. package/build/esm/lib/setup/setupLicense.js.map +1 -1
  176. package/build/esm/lib/setup/setupList.d.ts +55 -1
  177. package/build/esm/lib/setup/setupList.d.ts.map +1 -1
  178. package/build/esm/lib/setup/setupList.js +61 -8
  179. package/build/esm/lib/setup/setupList.js.map +1 -1
  180. package/build/esm/lib/setup/setupMultihost.d.ts +7 -0
  181. package/build/esm/lib/setup/setupMultihost.d.ts.map +1 -1
  182. package/build/esm/lib/setup/setupMultihost.js +85 -6
  183. package/build/esm/lib/setup/setupMultihost.js.map +1 -1
  184. package/build/esm/lib/setup/setupPacketManager.d.ts +10 -0
  185. package/build/esm/lib/setup/setupPacketManager.d.ts.map +1 -1
  186. package/build/esm/lib/setup/setupPacketManager.js +9 -0
  187. package/build/esm/lib/setup/setupPacketManager.js.map +1 -1
  188. package/build/esm/lib/setup/setupRepo.d.ts +19 -0
  189. package/build/esm/lib/setup/setupRepo.d.ts.map +1 -1
  190. package/build/esm/lib/setup/setupRepo.js +164 -14
  191. package/build/esm/lib/setup/setupRepo.js.map +1 -1
  192. package/build/esm/lib/setup/setupSetup.d.ts +34 -0
  193. package/build/esm/lib/setup/setupSetup.d.ts.map +1 -1
  194. package/build/esm/lib/setup/setupSetup.js +218 -21
  195. package/build/esm/lib/setup/setupSetup.js.map +1 -1
  196. package/build/esm/lib/setup/setupUpgrade.d.ts +13 -2
  197. package/build/esm/lib/setup/setupUpgrade.d.ts.map +1 -1
  198. package/build/esm/lib/setup/setupUpgrade.js +70 -6
  199. package/build/esm/lib/setup/setupUpgrade.js.map +1 -1
  200. package/build/esm/lib/setup/setupUpload.d.ts +77 -1
  201. package/build/esm/lib/setup/setupUpload.d.ts.map +1 -1
  202. package/build/esm/lib/setup/setupUpload.js +164 -7
  203. package/build/esm/lib/setup/setupUpload.js.map +1 -1
  204. package/build/esm/lib/setup/setupUsers.d.ts +44 -14
  205. package/build/esm/lib/setup/setupUsers.d.ts.map +1 -1
  206. package/build/esm/lib/setup/setupUsers.js +346 -14
  207. package/build/esm/lib/setup/setupUsers.js.map +1 -1
  208. package/build/esm/lib/setup/setupVendor.d.ts +14 -1
  209. package/build/esm/lib/setup/setupVendor.d.ts.map +1 -1
  210. package/build/esm/lib/setup/setupVendor.js +33 -2
  211. package/build/esm/lib/setup/setupVendor.js.map +1 -1
  212. package/build/esm/lib/setup/setupVisDebug.d.ts +16 -2
  213. package/build/esm/lib/setup/setupVisDebug.d.ts.map +1 -1
  214. package/build/esm/lib/setup/setupVisDebug.js +39 -14
  215. package/build/esm/lib/setup/setupVisDebug.js.map +1 -1
  216. package/build/esm/lib/setup/utils.d.ts +1 -1
  217. package/build/esm/lib/setup/utils.d.ts.map +1 -1
  218. package/build/esm/lib/setup/utils.js +2 -4
  219. package/build/esm/lib/setup/utils.js.map +1 -1
  220. package/build/esm/lib/setup.d.ts +1 -1
  221. package/build/esm/lib/setup.d.ts.map +1 -1
  222. package/build/esm/lib/setup.js +959 -1910
  223. package/build/esm/lib/setup.js.map +1 -1
  224. package/build/tsconfig.build.tsbuildinfo +1 -1
  225. package/package.json +14 -14
@@ -1,19 +1,29 @@
1
1
  import type { ProcessExitCallback } from '../_Types.js';
2
2
  import type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';
3
+ import type { ProcessCommandOptions } from '../../lib/cli/cliCommand.js';
4
+ /** Options for the users command */
3
5
  export interface CLIUsersOptions {
6
+ /** Callback to exit the process with an exit code */
4
7
  processExit: ProcessExitCallback;
8
+ /** The objects database client */
5
9
  objects: ObjectsRedisClient;
6
10
  }
11
+ /**
12
+ * CLI command to manage ioBroker users and groups
13
+ */
7
14
  export declare class Users {
8
15
  private readonly objects;
9
16
  private readonly processExit;
17
+ /**
18
+ * @param options The objects database client and the process-exit callback
19
+ */
10
20
  constructor(options: CLIUsersOptions);
11
21
  /**
12
22
  * Adds new user to system
13
23
  *
14
24
  * @param username name of the user which will be added
15
25
  * @param pw password
16
- * @param callback
26
+ * @param callback Called once the user has been added
17
27
  */
18
28
  addUser(username: string, pw: string, callback: ioBroker.ErrorCallback): void;
19
29
  /**
@@ -27,7 +37,7 @@ export declare class Users {
27
37
  *
28
38
  * @param username name of the user to set password for
29
39
  * @param pw password
30
- * @param callback
40
+ * @param callback Called once the password has been set
31
41
  */
32
42
  setPassword(username: string, pw: string, callback: ioBroker.ErrorCallback): void;
33
43
  /**
@@ -35,14 +45,14 @@ export declare class Users {
35
45
  *
36
46
  * @param username name of the user to check password
37
47
  * @param pw password
38
- * @param callback
48
+ * @param callback Called with whether the password is correct
39
49
  */
40
50
  checkPassword(username: string, pw: string, callback: (err?: Error | null, isOk?: boolean) => void): void;
41
51
  /**
42
52
  * Deletes user from system
43
53
  *
44
54
  * @param username name of the user to delete
45
- * @param callback
55
+ * @param callback Called once the user has been deleted
46
56
  */
47
57
  delUser(username: string, callback: ioBroker.ErrorCallback): void;
48
58
  /**
@@ -50,7 +60,7 @@ export declare class Users {
50
60
  *
51
61
  * @param username user which will be added to the group
52
62
  * @param groupName name of the group where the user will be added to
53
- * @param callback
63
+ * @param callback Called once the user has been added to the group
54
64
  */
55
65
  addUserToGroup(username: string, groupName: string, callback: ioBroker.ErrorCallback): void;
56
66
  /**
@@ -59,7 +69,7 @@ export declare class Users {
59
69
  * @param username user which sohuld be created
60
70
  * @param groupName default group for the new user
61
71
  * @param password user password
62
- * @param callback
72
+ * @param callback Called once the user has been created
63
73
  */
64
74
  addUserPrompt(username: string, groupName: string, password: string, callback: ioBroker.ErrorCallback): void;
65
75
  /**
@@ -67,7 +77,7 @@ export declare class Users {
67
77
  *
68
78
  * @param username name of the user to set password for
69
79
  * @param password password of user
70
- * @param callback
80
+ * @param callback Called once the password has been set
71
81
  */
72
82
  setUserPassword(username: string, password: string, callback: ioBroker.ErrorCallback): Promise<void>;
73
83
  /**
@@ -75,7 +85,7 @@ export declare class Users {
75
85
  *
76
86
  * @param username name of the user which will be activated
77
87
  * @param enable true if it should be enabled else false
78
- * @param callback
88
+ * @param callback Called once the user has been enabled or disabled
79
89
  */
80
90
  enableUser(username: string, enable: boolean, callback: ioBroker.ErrorCallback): void;
81
91
  /**
@@ -83,21 +93,21 @@ export declare class Users {
83
93
  *
84
94
  * @param username name of the user to check password for
85
95
  * @param password password to check
86
- * @param callback
96
+ * @param callback Called with whether the password is valid
87
97
  */
88
98
  checkUserPassword(username: string, password: string, callback: ioBroker.ErrorCallback): void;
89
99
  /**
90
100
  * Get user object
91
101
  *
92
102
  * @param username name of the user to get object of
93
- * @param callback
103
+ * @param callback Called with the user object
94
104
  */
95
105
  getUser(username: string, callback: (err?: Error | null, enabled?: boolean) => void): void;
96
106
  /**
97
107
  * Get group object
98
108
  *
99
109
  * @param group groupname
100
- * @param callback
110
+ * @param callback Called with the group object
101
111
  */
102
112
  getGroup(group: string, callback: (err?: Error | null, enabled?: boolean, members?: string[]) => void): void;
103
113
  /**
@@ -105,7 +115,7 @@ export declare class Users {
105
115
  *
106
116
  * @param group groupname
107
117
  * @param enable if enable or disable
108
- * @param callback
118
+ * @param callback Called once the group has been enabled or disabled
109
119
  */
110
120
  enableGroup(group: string, enable: boolean, callback: ioBroker.ErrorCallback): void;
111
121
  /**
@@ -118,7 +128,7 @@ export declare class Users {
118
128
  * Remove group
119
129
  *
120
130
  * @param group groupname
121
- * @param callback
131
+ * @param callback Called once the group has been removed
122
132
  */
123
133
  delGroup(group: string, callback: ioBroker.ErrorCallback): void;
124
134
  /**
@@ -126,8 +136,28 @@ export declare class Users {
126
136
  *
127
137
  * @param username name of the user which will be removed from group
128
138
  * @param groupName name of the group user will be removed from
129
- * @param callback
139
+ * @param callback Called once the user has been removed from the group
130
140
  */
131
141
  removeUserFromGroup(username: string, groupName: string, callback: ioBroker.ErrorCallback): void;
132
142
  }
143
+ /**
144
+ * @param options Command execution options
145
+ */
146
+ export declare function processCommandUser(options: ProcessCommandOptions): void;
147
+ /**
148
+ * @param options Command execution options
149
+ */
150
+ export declare function processCommandGroup(options: ProcessCommandOptions): void;
151
+ /**
152
+ * @param options Command execution options
153
+ */
154
+ export declare function processCommandAddUser(options: ProcessCommandOptions): void;
155
+ /**
156
+ * @param options Command execution options
157
+ */
158
+ export declare function processCommandPassword(options: ProcessCommandOptions): void;
159
+ /**
160
+ * @param options Command execution options
161
+ */
162
+ export declare function processCommandUserDel(options: ProcessCommandOptions): void;
133
163
  //# sourceMappingURL=setupUsers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupUsers.d.ts","sourceRoot":"","sources":["../../../../src/lib/setup/setupUsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setupUsers.d.ts","sourceRoot":"","sources":["../../../../src/lib/setup/setupUsers.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,15 @@
1
1
  import { password, tools, EXIT_CODES } from '@iobroker/js-controller-common';
2
2
  import prompt from 'prompt';
3
+ import { dbConnect } from '../../lib/setup/dbConnection.js';
4
+ /**
5
+ * CLI command to manage ioBroker users and groups
6
+ */
3
7
  export class Users {
4
8
  objects;
5
9
  processExit;
10
+ /**
11
+ * @param options The objects database client and the process-exit callback
12
+ */
6
13
  constructor(options) {
7
14
  if (!options.objects) {
8
15
  throw new Error('Invalid arguments: objects is missing');
@@ -18,7 +25,7 @@ export class Users {
18
25
  *
19
26
  * @param username name of the user which will be added
20
27
  * @param pw password
21
- * @param callback
28
+ * @param callback Called once the user has been added
22
29
  */
23
30
  addUser(username, pw, callback) {
24
31
  // user id's should be case insensitive
@@ -68,7 +75,7 @@ export class Users {
68
75
  *
69
76
  * @param username name of the user to set password for
70
77
  * @param pw password
71
- * @param callback
78
+ * @param callback Called once the password has been set
72
79
  */
73
80
  setPassword(username, pw, callback) {
74
81
  const _user = username.replace(/\s/g, '_').toLowerCase();
@@ -94,7 +101,7 @@ export class Users {
94
101
  *
95
102
  * @param username name of the user to check password
96
103
  * @param pw password
97
- * @param callback
104
+ * @param callback Called with whether the password is correct
98
105
  */
99
106
  checkPassword(username, pw, callback) {
100
107
  const _user = username.replace(/\s/g, '_').toLowerCase();
@@ -111,7 +118,7 @@ export class Users {
111
118
  * Deletes user from system
112
119
  *
113
120
  * @param username name of the user to delete
114
- * @param callback
121
+ * @param callback Called once the user has been deleted
115
122
  */
116
123
  delUser(username, callback) {
117
124
  if (!username) {
@@ -168,7 +175,7 @@ export class Users {
168
175
  *
169
176
  * @param username user which will be added to the group
170
177
  * @param groupName name of the group where the user will be added to
171
- * @param callback
178
+ * @param callback Called once the user has been added to the group
172
179
  */
173
180
  addUserToGroup(username, groupName, callback) {
174
181
  let _user = username.replace(/\s/g, '_').toLowerCase();
@@ -208,7 +215,7 @@ export class Users {
208
215
  * @param username user which sohuld be created
209
216
  * @param groupName default group for the new user
210
217
  * @param password user password
211
- * @param callback
218
+ * @param callback Called once the user has been created
212
219
  */
213
220
  addUserPrompt(username, groupName, password, callback) {
214
221
  if (!username) {
@@ -285,7 +292,7 @@ export class Users {
285
292
  *
286
293
  * @param username name of the user to set password for
287
294
  * @param password password of user
288
- * @param callback
295
+ * @param callback Called once the password has been set
289
296
  */
290
297
  async setUserPassword(username, password, callback) {
291
298
  if (!username) {
@@ -347,7 +354,7 @@ export class Users {
347
354
  *
348
355
  * @param username name of the user which will be activated
349
356
  * @param enable true if it should be enabled else false
350
- * @param callback
357
+ * @param callback Called once the user has been enabled or disabled
351
358
  */
352
359
  enableUser(username, enable, callback) {
353
360
  if (!username) {
@@ -379,7 +386,7 @@ export class Users {
379
386
  *
380
387
  * @param username name of the user to check password for
381
388
  * @param password password to check
382
- * @param callback
389
+ * @param callback Called with whether the password is valid
383
390
  */
384
391
  checkUserPassword(username, password, callback) {
385
392
  if (!username && !password) {
@@ -447,7 +454,7 @@ export class Users {
447
454
  * Get user object
448
455
  *
449
456
  * @param username name of the user to get object of
450
- * @param callback
457
+ * @param callback Called with the user object
451
458
  */
452
459
  getUser(username, callback) {
453
460
  this.objects.getObject(`system.user.${username}`, (err, obj) => {
@@ -464,7 +471,7 @@ export class Users {
464
471
  * Get group object
465
472
  *
466
473
  * @param group groupname
467
- * @param callback
474
+ * @param callback Called with the group object
468
475
  */
469
476
  getGroup(group, callback) {
470
477
  this.objects.getObject(`system.group.${group}`, (err, obj) => {
@@ -482,7 +489,7 @@ export class Users {
482
489
  *
483
490
  * @param group groupname
484
491
  * @param enable if enable or disable
485
- * @param callback
492
+ * @param callback Called once the group has been enabled or disabled
486
493
  */
487
494
  enableGroup(group, enable, callback) {
488
495
  if (!group) {
@@ -523,11 +530,47 @@ export class Users {
523
530
  else {
524
531
  // TODO: shoudln't it have some default acl? TS is worrying
525
532
  await this.objects.setObject(`system.group.${_group}`, {
533
+ _id: `system.group.${_group}`,
526
534
  type: 'group',
527
535
  common: {
528
536
  name: group,
529
537
  enabled: true,
530
538
  members: [],
539
+ acl: {
540
+ file: {
541
+ read: false,
542
+ list: false,
543
+ write: false,
544
+ create: false,
545
+ delete: false,
546
+ },
547
+ object: {
548
+ read: false,
549
+ list: false,
550
+ write: false,
551
+ create: false,
552
+ delete: false,
553
+ },
554
+ users: {
555
+ read: false,
556
+ list: false,
557
+ write: false,
558
+ create: false,
559
+ delete: false,
560
+ },
561
+ state: {
562
+ read: false,
563
+ list: false,
564
+ write: false,
565
+ create: false,
566
+ delete: false,
567
+ },
568
+ other: {
569
+ execute: false,
570
+ sendto: false,
571
+ http: false,
572
+ },
573
+ },
531
574
  },
532
575
  from: `system.host.${tools.getHostName()}.cli`,
533
576
  ts: Date.now(),
@@ -539,7 +582,7 @@ export class Users {
539
582
  * Remove group
540
583
  *
541
584
  * @param group groupname
542
- * @param callback
585
+ * @param callback Called once the group has been removed
543
586
  */
544
587
  delGroup(group, callback) {
545
588
  const _group = group.replace(/\s/g, '_');
@@ -560,7 +603,7 @@ export class Users {
560
603
  *
561
604
  * @param username name of the user which will be removed from group
562
605
  * @param groupName name of the group user will be removed from
563
- * @param callback
606
+ * @param callback Called once the user has been removed from the group
564
607
  */
565
608
  removeUserFromGroup(username, groupName, callback) {
566
609
  const _group = groupName.replace(/\s/g, '_');
@@ -581,4 +624,293 @@ export class Users {
581
624
  });
582
625
  }
583
626
  }
627
+ /**
628
+ * @param options Command execution options
629
+ */
630
+ export function processCommandUser(options) {
631
+ const { args, params, callback } = options;
632
+ const command = args[0] || '';
633
+ let user = args[1] || '';
634
+ if (user?.startsWith('system.user.')) {
635
+ user = user.substring('system.user.'.length);
636
+ }
637
+ dbConnect(params, ({ objects }) => {
638
+ const users = new Users({
639
+ objects,
640
+ processExit: callback,
641
+ });
642
+ const password = params.password;
643
+ const group = params.ingroup || 'system.group.administrator';
644
+ if (command === 'add') {
645
+ users.addUserPrompt(user, group, password, (err) => {
646
+ if (err) {
647
+ console.error(err);
648
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
649
+ }
650
+ console.log(`User "${user}" created (Group: ${group.replace('system.group.', '')})`);
651
+ return void callback();
652
+ });
653
+ }
654
+ else if (command === 'del' || command === 'delete') {
655
+ users.delUser(user, (err) => {
656
+ if (err) {
657
+ console.error(err);
658
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
659
+ }
660
+ console.log(`User "${user}" deleted`);
661
+ return void callback();
662
+ });
663
+ }
664
+ else if (command === 'check') {
665
+ users.checkUserPassword(user, password, err => {
666
+ if (err) {
667
+ console.error(err.message);
668
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
669
+ }
670
+ console.log(`Password for user "${user}" matches.`);
671
+ return void callback();
672
+ });
673
+ }
674
+ else if (command === 'set' || command === 'passwd') {
675
+ users
676
+ .setUserPassword(user, password, err => {
677
+ if (err) {
678
+ console.error(err.message);
679
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
680
+ }
681
+ console.log(`Password for "${user}" was successfully set.`);
682
+ return void callback();
683
+ })
684
+ .catch(e => console.error(`Cannot set password: ${e.message}`));
685
+ }
686
+ else if (command === 'enable' || command === 'e') {
687
+ users.enableUser(user, true, err => {
688
+ if (err) {
689
+ console.error(err.message);
690
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
691
+ }
692
+ console.log(`User "${user}" was successfully enabled.`);
693
+ return void callback();
694
+ });
695
+ }
696
+ else if (command === 'disable' || command === 'd') {
697
+ users.enableUser(user, false, err => {
698
+ if (err) {
699
+ console.error(err.message);
700
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
701
+ }
702
+ console.log(`User "${user}" was successfully disabled.`);
703
+ return void callback();
704
+ });
705
+ }
706
+ else if (command === 'get') {
707
+ users.getUser(user, (err, isEnabled) => {
708
+ if (err) {
709
+ console.error(err.message);
710
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
711
+ }
712
+ console.log(`User "${user}" is ${isEnabled ? 'enabled' : 'disabled'}`);
713
+ return void callback();
714
+ });
715
+ }
716
+ else {
717
+ console.warn(`Unknown command "${command}". Available commands are: add, del, passwd, enable, disable, check, get`);
718
+ return void callback(EXIT_CODES.INVALID_ARGUMENTS);
719
+ }
720
+ });
721
+ }
722
+ /**
723
+ * @param options Command execution options
724
+ */
725
+ export function processCommandGroup(options) {
726
+ const { args, params, callback } = options;
727
+ const command = args[0] || '';
728
+ let group = args[1] || '';
729
+ let user = args[2] || '';
730
+ if (group?.startsWith('system.group.')) {
731
+ group = group.substring('system.group.'.length);
732
+ }
733
+ if (user?.startsWith('system.user.')) {
734
+ user = user.substring('system.user.'.length);
735
+ }
736
+ if (!command) {
737
+ console.warn(`Unknown command "${command}". Available commands are: add, del, passwd, enable, disable, list, get`);
738
+ return void callback(EXIT_CODES.INVALID_ARGUMENTS);
739
+ }
740
+ if (!group) {
741
+ console.warn(`Please define group name: group ${command} groupName`);
742
+ return callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
743
+ }
744
+ dbConnect(params, async ({ objects }) => {
745
+ const users = new Users({
746
+ objects,
747
+ processExit: callback,
748
+ });
749
+ if (command === 'useradd' || command === 'adduser') {
750
+ if (!user) {
751
+ console.warn('Please define user name: "group useradd groupName userName"');
752
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
753
+ }
754
+ users.addUserToGroup(user, group, (err) => {
755
+ if (err) {
756
+ console.error(err);
757
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
758
+ }
759
+ console.log(`User "${user}" was added to group "${group}"`);
760
+ return void callback();
761
+ });
762
+ }
763
+ else if (command === 'userdel' || command === 'deluser') {
764
+ if (!user) {
765
+ console.warn('Please define user name: "group userdel groupName userName"');
766
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
767
+ }
768
+ users.removeUserFromGroup(user, group, (err) => {
769
+ if (err) {
770
+ console.error(err);
771
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
772
+ }
773
+ console.log(`User "${user}" was deleted from group "${group}"`);
774
+ return void callback();
775
+ });
776
+ }
777
+ else if (command === 'add') {
778
+ try {
779
+ await users.addGroup(group);
780
+ console.log(`Group "${group}" was created`);
781
+ return void callback();
782
+ }
783
+ catch {
784
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
785
+ }
786
+ }
787
+ else if (command === 'del' || command === 'delete') {
788
+ users.delGroup(group, (err) => {
789
+ if (err) {
790
+ console.error(err);
791
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
792
+ }
793
+ console.log(`Group "${group}" was deleted`);
794
+ return void callback();
795
+ });
796
+ }
797
+ else if (command === 'list' || command === 'l') {
798
+ users.getGroup(group, (err, isEnabled, members) => {
799
+ if (err) {
800
+ console.error(err);
801
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
802
+ }
803
+ console.log(`Group "${group}" is ${isEnabled ? 'enabled' : 'disabled'} and has following members:`);
804
+ if (members) {
805
+ for (const member of members) {
806
+ console.log(member.substring('system.user.'.length));
807
+ }
808
+ }
809
+ return void callback();
810
+ });
811
+ }
812
+ else if (command === 'enable' || command === 'e') {
813
+ users.enableGroup(group, true, (err) => {
814
+ if (err) {
815
+ console.error(err);
816
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
817
+ }
818
+ console.log(`Group "${group}" was successfully enabled.`);
819
+ return void callback();
820
+ });
821
+ }
822
+ else if (command === 'disable' || command === 'd') {
823
+ users.enableGroup(group, false, (err) => {
824
+ if (err) {
825
+ console.error(err);
826
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
827
+ }
828
+ console.log(`Group "${group}" was successfully disabled.`);
829
+ return void callback();
830
+ });
831
+ }
832
+ else if (command === 'get') {
833
+ users.getGroup(group, (err, isEnabled) => {
834
+ if (err) {
835
+ console.error(err);
836
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
837
+ }
838
+ console.log(`Group "${group}" is ${isEnabled ? 'enabled' : 'disabled'}`);
839
+ return void callback();
840
+ });
841
+ }
842
+ else {
843
+ console.warn(`Unknown command "${command}". Available commands are: add, del, passwd, enable, disable, list, get`);
844
+ return void callback(EXIT_CODES.INVALID_ARGUMENTS);
845
+ }
846
+ });
847
+ }
848
+ /**
849
+ * @param options Command execution options
850
+ */
851
+ export function processCommandAddUser(options) {
852
+ const { args, params, callback } = options;
853
+ const user = args[0];
854
+ const group = params.ingroup || 'system.group.administrator';
855
+ const password = params.password;
856
+ dbConnect(params, ({ objects }) => {
857
+ const users = new Users({
858
+ objects,
859
+ processExit: callback,
860
+ });
861
+ users.addUserPrompt(user, group, password, (err) => {
862
+ if (err) {
863
+ console.error(err);
864
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
865
+ }
866
+ console.log(`User "${user}" created (Group: ${group.replace('system.group.', '')})`);
867
+ return void callback();
868
+ });
869
+ });
870
+ }
871
+ /**
872
+ * @param options Command execution options
873
+ */
874
+ export function processCommandPassword(options) {
875
+ const { args, params, callback } = options;
876
+ const user = args[0];
877
+ const password = params.password;
878
+ dbConnect(params, ({ objects }) => {
879
+ const users = new Users({
880
+ objects,
881
+ processExit: callback,
882
+ });
883
+ users
884
+ .setUserPassword(user, password, (err) => {
885
+ if (err) {
886
+ console.error(err);
887
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
888
+ }
889
+ console.log(`Password for "${user}" was successfully set.`);
890
+ return void callback();
891
+ })
892
+ .catch(e => console.error(`Cannot set password: ${e.message}`));
893
+ });
894
+ }
895
+ /**
896
+ * @param options Command execution options
897
+ */
898
+ export function processCommandUserDel(options) {
899
+ const { args, params, callback } = options;
900
+ const user = args[0];
901
+ dbConnect(params, ({ objects }) => {
902
+ const users = new Users({
903
+ objects,
904
+ processExit: callback,
905
+ });
906
+ users.delUser(user, (err) => {
907
+ if (err) {
908
+ console.error(err);
909
+ return void callback(EXIT_CODES.CANNOT_CREATE_USER_OR_GROUP);
910
+ }
911
+ console.log(`User "${user}" deleted`);
912
+ return void callback();
913
+ });
914
+ });
915
+ }
584
916
  //# sourceMappingURL=setupUsers.js.map