@spinajs/rbac-http-admin 2.0.470 → 2.0.471
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/lib/cjs/controllers/Users/Profile.d.ts +17 -1
- package/lib/cjs/controllers/Users/Profile.d.ts.map +1 -1
- package/lib/cjs/controllers/Users/Profile.js +16 -0
- package/lib/cjs/controllers/Users/Profile.js.map +1 -1
- package/lib/cjs/controllers/Users/Roles.d.ts +29 -2
- package/lib/cjs/controllers/Users/Roles.d.ts.map +1 -1
- package/lib/cjs/controllers/Users/Roles.js +29 -1
- package/lib/cjs/controllers/Users/Roles.js.map +1 -1
- package/lib/cjs/controllers/Users/Security.d.ts +64 -5
- package/lib/cjs/controllers/Users/Security.d.ts.map +1 -1
- package/lib/cjs/controllers/Users/Security.js +61 -2
- package/lib/cjs/controllers/Users/Security.js.map +1 -1
- package/lib/cjs/controllers/Users/Users.d.ts +78 -5
- package/lib/cjs/controllers/Users/Users.d.ts.map +1 -1
- package/lib/cjs/controllers/Users/Users.js +100 -11
- package/lib/cjs/controllers/Users/Users.js.map +1 -1
- package/lib/mjs/controllers/Users/Profile.d.ts +17 -1
- package/lib/mjs/controllers/Users/Profile.d.ts.map +1 -1
- package/lib/mjs/controllers/Users/Profile.js +16 -0
- package/lib/mjs/controllers/Users/Profile.js.map +1 -1
- package/lib/mjs/controllers/Users/Roles.d.ts +29 -2
- package/lib/mjs/controllers/Users/Roles.d.ts.map +1 -1
- package/lib/mjs/controllers/Users/Roles.js +29 -1
- package/lib/mjs/controllers/Users/Roles.js.map +1 -1
- package/lib/mjs/controllers/Users/Security.d.ts +64 -5
- package/lib/mjs/controllers/Users/Security.d.ts.map +1 -1
- package/lib/mjs/controllers/Users/Security.js +61 -2
- package/lib/mjs/controllers/Users/Security.js.map +1 -1
- package/lib/mjs/controllers/Users/Users.d.ts +78 -5
- package/lib/mjs/controllers/Users/Users.d.ts.map +1 -1
- package/lib/mjs/controllers/Users/Users.js +100 -11
- package/lib/mjs/controllers/Users/Users.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +11 -11
|
@@ -27,18 +27,18 @@ UserDto = __decorate([
|
|
|
27
27
|
type: 'object',
|
|
28
28
|
$id: 'arrow.common.userDto',
|
|
29
29
|
properties: {
|
|
30
|
-
Login: { type: 'string', minLength: 3, maxLength: 32 },
|
|
31
|
-
Email: { type: 'string', format: 'email' },
|
|
32
|
-
Role: { type: 'string', minLength: 1, maxLength: 32 },
|
|
30
|
+
Login: { type: 'string', minLength: 3, maxLength: 32, description: 'Unique login name (3–32 characters)' },
|
|
31
|
+
Email: { type: 'string', format: 'email', description: 'Unique email address' },
|
|
32
|
+
Role: { type: 'string', minLength: 1, maxLength: 32, description: 'RBAC role to assign to the user' },
|
|
33
33
|
Metadata: {
|
|
34
34
|
type: 'object',
|
|
35
35
|
$id: 'arrow.common.userMetadata',
|
|
36
36
|
properties: {
|
|
37
|
-
Key: { type: 'string', minLength: 1, maxLength: 64 },
|
|
38
|
-
Value: { type: 'string', minLength: 0, maxLength: 256 },
|
|
37
|
+
Key: { type: 'string', minLength: 1, maxLength: 64, description: 'Metadata key' },
|
|
38
|
+
Value: { type: 'string', minLength: 0, maxLength: 256, description: 'Metadata value' },
|
|
39
39
|
},
|
|
40
40
|
additionalProperties: true,
|
|
41
|
-
description: '
|
|
41
|
+
description: 'Optional key-value metadata to attach to the user account',
|
|
42
42
|
},
|
|
43
43
|
},
|
|
44
44
|
required: ['Login', 'Email', 'Role'],
|
|
@@ -110,7 +110,31 @@ const USER_FILTER = [
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
];
|
|
113
|
+
/**
|
|
114
|
+
* User account management (admin).
|
|
115
|
+
* Full CRUD operations for user accounts. Supports pagination, sorting, filtering,
|
|
116
|
+
* and optional relation loading. All write operations require full authorization.
|
|
117
|
+
* @tags Admin Users
|
|
118
|
+
*/
|
|
113
119
|
let Users = class Users extends BaseController {
|
|
120
|
+
/**
|
|
121
|
+
* List users (admin)
|
|
122
|
+
* Returns a paginated, sortable, filterable list of all users. Supports optional inclusion
|
|
123
|
+
* of related Metadata. The total user count (matching current filters) is returned in the
|
|
124
|
+
* X-Total-Count response header.
|
|
125
|
+
* Filterable fields: Uuid (eq), Email (eq, like), Login (eq, like), CreatedAt, LastLoginAt,
|
|
126
|
+
* DeletedAt (eq, gte, lte, lt, gt, isnull, notnull), IsActive (eq), Role (eq, neq),
|
|
127
|
+
* user:niceName metadata (eq, neq, like).
|
|
128
|
+
* @security cookieAuth
|
|
129
|
+
* @param pagination.page Page number (zero-based)
|
|
130
|
+
* @param pagination.limit Number of users per page (default: 10)
|
|
131
|
+
* @param order.column Column to sort by (default: CreatedAt)
|
|
132
|
+
* @param order.order Sort direction: ASC or DESC (default: DESC)
|
|
133
|
+
* @param include Relations to include — currently supports: Metadata
|
|
134
|
+
* @returns {IUserData[]} Paginated list of user accounts, each with optional Metadata relation
|
|
135
|
+
* @response 401 Unauthorized — valid session required
|
|
136
|
+
* @response 403 Forbidden — readAny permission required on users resource
|
|
137
|
+
*/
|
|
114
138
|
async list(pagination, order, include, filter) {
|
|
115
139
|
const result = await User.select()
|
|
116
140
|
.leftJoin("Metadata", function () {
|
|
@@ -121,12 +145,12 @@ let Users = class Users extends BaseController {
|
|
|
121
145
|
}, function () {
|
|
122
146
|
this.select('Value', "user:niceName");
|
|
123
147
|
})
|
|
124
|
-
.populate(include)
|
|
148
|
+
.populate(include ?? [])
|
|
125
149
|
.take(pagination?.limit ?? 10)
|
|
126
|
-
.skip(pagination?.limit * pagination?.page)
|
|
150
|
+
.skip((pagination?.limit ?? 0) * (pagination?.page ?? 0))
|
|
127
151
|
.order(order?.column ?? 'CreatedAt', order?.order ?? SortOrder.DESC)
|
|
128
|
-
.filter(filter?.filters, filter?.op, USER_FILTER);
|
|
129
|
-
const count = await User.query().filter(filter?.filters, filter?.op, USER_FILTER).selectCount();
|
|
152
|
+
.filter(filter?.filters ?? [], filter?.op, USER_FILTER);
|
|
153
|
+
const count = await User.query().filter(filter?.filters ?? [], filter?.op, USER_FILTER).selectCount();
|
|
130
154
|
return new Ok(result.map((x) => x.dehydrateWithRelations({
|
|
131
155
|
dateTimeFormat: "iso"
|
|
132
156
|
})), {
|
|
@@ -138,21 +162,67 @@ let Users = class Users extends BaseController {
|
|
|
138
162
|
],
|
|
139
163
|
});
|
|
140
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Get user by UUID (admin)
|
|
167
|
+
* Retrieves a single user record by UUID. Supports optional inclusion of related Metadata.
|
|
168
|
+
* @security cookieAuth
|
|
169
|
+
* @param user User UUID path parameter
|
|
170
|
+
* @param include Relations to include — currently supports: Metadata
|
|
171
|
+
* @returns {IUserData} User account with optional Metadata relation
|
|
172
|
+
* @response 401 Unauthorized — valid session required
|
|
173
|
+
* @response 403 Forbidden — readAny permission required on users resource
|
|
174
|
+
* @response 404 User not found
|
|
175
|
+
*/
|
|
141
176
|
async getSingleUser(user, include) {
|
|
142
177
|
// linter hack, to alow incldue param,it is used by FromModel qery arg
|
|
143
178
|
include;
|
|
144
179
|
return new Ok(user.dehydrateWithRelations({ dateTimeFormat: 'iso' }));
|
|
145
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Get user by login (admin)
|
|
183
|
+
* Retrieves a single user record by login name. Supports optional inclusion of related Metadata.
|
|
184
|
+
* @security cookieAuth
|
|
185
|
+
* @param user User login name path parameter
|
|
186
|
+
* @param include Relations to include — currently supports: Metadata
|
|
187
|
+
* @returns {IUserData} User account with optional Metadata relation
|
|
188
|
+
* @response 401 Unauthorized — valid session required
|
|
189
|
+
* @response 403 Forbidden — readAny permission required on users resource
|
|
190
|
+
* @response 404 User not found
|
|
191
|
+
*/
|
|
146
192
|
async getByLogin(user, include) {
|
|
147
193
|
// linter hack, to alow incldue param,it is used by FromModel qery arg
|
|
148
194
|
include;
|
|
149
195
|
return new Ok(user.dehydrateWithRelations({ dateTimeFormat: 'iso' }));
|
|
150
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Create user (admin)
|
|
199
|
+
* Creates a new user account with a system-generated temporary password.
|
|
200
|
+
* The temporary password is not returned — it should be delivered to the user via email or other channel.
|
|
201
|
+
* @security cookieAuth
|
|
202
|
+
* @returns {IUserData} Created user account
|
|
203
|
+
* @response 400 Validation error — missing required fields or invalid format
|
|
204
|
+
* @response 401 Unauthorized — valid session required
|
|
205
|
+
* @response 403 Forbidden — createAny permission required on users resource
|
|
206
|
+
* @response 409 Login or email already in use
|
|
207
|
+
*/
|
|
151
208
|
async addUser(data) {
|
|
152
209
|
const temporaryPassword = this.PasswordProvider.generate();
|
|
153
210
|
const u = await create(data.Email, data.Login, temporaryPassword, [data.Role], undefined, data.Metadata);
|
|
154
211
|
return new Ok(u);
|
|
155
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Update user (admin)
|
|
215
|
+
* Partially updates a user account. All fields are optional — only provided fields are changed.
|
|
216
|
+
* Metadata is merged: existing keys are updated, new keys are added, unlisted keys are preserved.
|
|
217
|
+
* @security cookieAuth
|
|
218
|
+
* @param user User UUID path parameter
|
|
219
|
+
* @response 200 User updated successfully
|
|
220
|
+
* @response 400 Validation error — invalid field format
|
|
221
|
+
* @response 401 Unauthorized — valid session required
|
|
222
|
+
* @response 403 Forbidden — updateAny permission required on users resource
|
|
223
|
+
* @response 404 User not found
|
|
224
|
+
* @response 409 Login or email already in use by another account
|
|
225
|
+
*/
|
|
156
226
|
async updateUser(user, data) {
|
|
157
227
|
user.Login = data.Login ?? user.Login;
|
|
158
228
|
user.Email = data.Email ?? user.Email;
|
|
@@ -171,7 +241,26 @@ let Users = class Users extends BaseController {
|
|
|
171
241
|
};
|
|
172
242
|
__decorate([
|
|
173
243
|
Autoinject(),
|
|
174
|
-
__metadata("design:type", PasswordProvider
|
|
244
|
+
__metadata("design:type", PasswordProvider
|
|
245
|
+
/**
|
|
246
|
+
* List users (admin)
|
|
247
|
+
* Returns a paginated, sortable, filterable list of all users. Supports optional inclusion
|
|
248
|
+
* of related Metadata. The total user count (matching current filters) is returned in the
|
|
249
|
+
* X-Total-Count response header.
|
|
250
|
+
* Filterable fields: Uuid (eq), Email (eq, like), Login (eq, like), CreatedAt, LastLoginAt,
|
|
251
|
+
* DeletedAt (eq, gte, lte, lt, gt, isnull, notnull), IsActive (eq), Role (eq, neq),
|
|
252
|
+
* user:niceName metadata (eq, neq, like).
|
|
253
|
+
* @security cookieAuth
|
|
254
|
+
* @param pagination.page Page number (zero-based)
|
|
255
|
+
* @param pagination.limit Number of users per page (default: 10)
|
|
256
|
+
* @param order.column Column to sort by (default: CreatedAt)
|
|
257
|
+
* @param order.order Sort direction: ASC or DESC (default: DESC)
|
|
258
|
+
* @param include Relations to include — currently supports: Metadata
|
|
259
|
+
* @returns {IUserData[]} Paginated list of user accounts, each with optional Metadata relation
|
|
260
|
+
* @response 401 Unauthorized — valid session required
|
|
261
|
+
* @response 403 Forbidden — readAny permission required on users resource
|
|
262
|
+
*/
|
|
263
|
+
)
|
|
175
264
|
], Users.prototype, "PasswordProvider", void 0);
|
|
176
265
|
__decorate([
|
|
177
266
|
Get("/"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../../src/controllers/Users/Users.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAuB,SAAS,EAAiC,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnI,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,IAoBM,OAAO,GApBb,MAoBM,OAAO;IAOX,YAAY,IAAsB;QAChC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAVK,OAAO;IApBZ,MAAM,CAAC;QACN,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,sBAAsB;QAC3B,UAAU,EAAE;YACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"Users.js","sourceRoot":"","sources":["../../../../src/controllers/Users/Users.ts"],"names":[],"mappings":"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"}
|