| 336 | @param('priv', Types.UnsignedInt) |
| 337 | @param('system', Types.Boolean) |
| 338 | async post(domainId: string, uid: number, priv: number, editSystem: boolean) { |
| 339 | if (!editSystem) { |
| 340 | const udoc = await user.getById(domainId, uid); |
| 341 | if (!udoc) throw new UserNotFoundError(uid); |
| 342 | if (udoc.priv === -1 || priv === -1 || priv === allPriv) throw new CannotEditSuperAdminError(); |
| 343 | await user.setPriv(uid, priv); |
| 344 | } else { |
| 345 | const defaultPriv = system.get('default.priv'); |
| 346 | await user.coll.updateMany({ priv: defaultPriv }, { $set: { priv } }); |
| 347 | await system.set('default.priv', priv); |
| 348 | this.ctx.broadcast('user/delcache', true); |
| 349 | } |
| 350 | this.back(); |
| 351 | } |
| 352 | } |
| 353 | |
| 354 | export const inject = ['setting', 'check']; |