From d786f7e8a84a2d2eb3fbfeb9ce3f80b7ea8ee243 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 27 Oct 2020 23:38:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E5=85=B3?= =?UTF-8?q?=E8=81=94=E8=A1=A8=E7=9A=84=E5=88=A0=E9=99=A4=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/service/impl/rbac/UserService.kt | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt index d070f8c..9aa1c71 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt @@ -6,10 +6,12 @@ import com.synebula.gaea.data.message.Status import com.synebula.gaea.domain.repository.IRepository import com.synebula.gaea.domain.service.ICommand import com.synebula.gaea.domain.service.Service -import com.synebula.gaea.extension.* +import com.synebula.gaea.extension.toMd5 import com.synebula.gaea.log.ILogger import com.synebula.zeus.domain.model.rbac.User import com.synebula.zeus.domain.service.contr.component.IUserNotifier +import com.synebula.zeus.domain.service.contr.rbac.IGroupService +import com.synebula.zeus.domain.service.contr.rbac.IRoleService import com.synebula.zeus.domain.service.contr.rbac.IUserService import java.util.* @@ -17,9 +19,32 @@ class UserService( repository: IRepository, converter: IObjectConverter, logger: ILogger, - var userNotifier: IUserNotifier -) : - Service(User::class.java, repository, converter, logger), IUserService { + var userNotifier: IUserNotifier, + groupService: IGroupService, + roleService: IRoleService +) : Service(User::class.java, repository, converter, logger), IUserService { + + init { + groupService.addBeforeRemoveListener(this.clazz.name) { id -> + val msg = Message() + if (this.repository.count(mapOf(Pair("group", id)), this.clazz) > 0) { + msg.status = Status.Failure + msg.message = "组下还有用户" + msg.data = msg.message + } + msg + } + roleService.addBeforeRemoveListener(this.clazz.name) { id -> + val msg = Message() + if (this.repository.count(mapOf(Pair("role", id)), this.clazz) > 0) { + msg.status = Status.Failure + msg.message = "角色下还有用户" + msg.data = msg.message + } + msg + } + } + override fun add(command: ICommand): Message { val user = this.convert(command) user.password = user.password.toMd5()