diff --git a/build.gradle b/build.gradle index 026906a..25ec641 100644 --- a/build.gradle +++ b/build.gradle @@ -14,15 +14,13 @@ buildscript { } } -allprojects { +subprojects { group 'com.synebula' version version -} -subprojects { ext { version '0.9.0' - gaea_version = '1.2.0' + gaea_version = '1.4.0' spring_version = "2.7.0" } diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusServices.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusServices.kt index 34f986c..b54c90d 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusServices.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusServices.kt @@ -1,10 +1,10 @@ package com.synebula.zeus.app.config import com.synebula.gaea.app.autoconfig.service.ServiceScan -import com.synebula.gaea.mongodb.autoconfig.MongodbRepoScan +import com.synebula.gaea.mongodb.autoconfig.MongodbRepositoryScan import org.springframework.stereotype.Component @Component @ServiceScan(basePackages = ["com.synebula.zeus.domain.service"]) -@MongodbRepoScan(basePackages = ["com.synebula.zeus.domain.repository", "com.synebula.zeus.repository", "com.synebula.zeus.query"]) +@MongodbRepositoryScan(basePackages = ["com.synebula.zeus.domain.repository", "com.synebula.zeus.repository", "com.synebula.zeus.query"]) class ZeusServices \ No newline at end of file diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/SignInOutApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/SignInOutApp.kt index b5ce5cc..54099d5 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/SignInOutApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/SignInOutApp.kt @@ -2,7 +2,7 @@ package com.synebula.zeus.app.controller import com.synebula.gaea.app.IApplication import com.synebula.gaea.app.component.security.TokenManager -import com.synebula.gaea.app.struct.HttpMessage +import com.synebula.gaea.data.message.HttpMessage import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.serialization.json.IJsonSerializer import com.synebula.gaea.log.ILogger diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/AuthorityApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/AuthorityApp.kt index bbaed5c..5ddee5b 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/AuthorityApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/AuthorityApp.kt @@ -1,7 +1,7 @@ package com.synebula.zeus.app.controller.rbac import com.synebula.gaea.app.Application -import com.synebula.gaea.app.struct.HttpMessage +import com.synebula.gaea.data.message.HttpMessage import com.synebula.gaea.log.ILogger import com.synebula.gaea.spring.aop.annotation.Method import com.synebula.zeus.domain.service.cmd.rbac.AuthorityBatchAddCmd diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt index 5f4a327..d965d48 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt @@ -16,5 +16,5 @@ class GroupApp( factory: IQueryFactory, logger: ILogger ) : Application( - "分组信息", service, factory.createQuery(GroupView::class.java), logger + "用户组信息", service, factory.createQuery(GroupView::class.java), logger ) \ No newline at end of file diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/UserApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/UserApp.kt index f2aeb3c..159e7d2 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/UserApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/UserApp.kt @@ -1,7 +1,7 @@ package com.synebula.zeus.app.controller.rbac import com.synebula.gaea.app.Application -import com.synebula.gaea.app.struct.HttpMessage +import com.synebula.gaea.data.message.HttpMessage import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.serialization.json.IJsonSerializer import com.synebula.gaea.log.ILogger diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/InterfaceApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/InterfaceApp.kt index 0a62685..10507d2 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/InterfaceApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/InterfaceApp.kt @@ -1,7 +1,7 @@ package com.synebula.zeus.app.controller.rbac.resource import com.synebula.gaea.app.Application -import com.synebula.gaea.app.struct.HttpMessage +import com.synebula.gaea.data.message.HttpMessage import com.synebula.gaea.log.ILogger import com.synebula.gaea.spring.aop.annotation.Method import com.synebula.zeus.domain.service.cmd.rbac.resource.InterfaceCmd diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/PageApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/PageApp.kt index 76da845..e06928c 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/PageApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/PageApp.kt @@ -1,7 +1,7 @@ package com.synebula.zeus.app.controller.rbac.resource import com.synebula.gaea.app.Application -import com.synebula.gaea.app.struct.HttpMessage +import com.synebula.gaea.data.message.HttpMessage import com.synebula.gaea.log.ILogger import com.synebula.gaea.spring.aop.annotation.Method import com.synebula.gaea.spring.aop.annotation.Module diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/SystemApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/SystemApp.kt index 9829cde..40e6082 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/SystemApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/resource/SystemApp.kt @@ -1,7 +1,7 @@ package com.synebula.zeus.app.controller.rbac.resource import com.synebula.gaea.app.Application -import com.synebula.gaea.app.struct.HttpMessage +import com.synebula.gaea.data.message.HttpMessage import com.synebula.gaea.log.ILogger import com.synebula.gaea.spring.aop.annotation.Method import com.synebula.zeus.domain.service.cmd.rbac.resource.SystemCmd 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 835b33e..5b3fa5f 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 @@ -1,13 +1,18 @@ package com.synebula.zeus.domain.service.impl.rbac +import com.synebula.gaea.bus.Subscribe import com.synebula.gaea.data.message.DataMessage import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.serialization.IObjectMapper +import com.synebula.gaea.domain.event.BeforeRemoveEvent import com.synebula.gaea.domain.repository.IRepositoryFactory import com.synebula.gaea.domain.service.ICommand import com.synebula.gaea.domain.service.Service +import com.synebula.gaea.exception.NoticeUserException import com.synebula.gaea.ext.toMd5 import com.synebula.gaea.log.ILogger +import com.synebula.zeus.domain.model.rbac.Group +import com.synebula.zeus.domain.model.rbac.Role import com.synebula.zeus.domain.model.rbac.User import com.synebula.zeus.domain.service.component.IUserNotifier import com.synebula.zeus.domain.service.contr.rbac.IUserService @@ -20,24 +25,17 @@ class UserService( var logger: ILogger ) : Service(User::class.java, factory.createRepository(User::class.java), mapper), 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 -// } -// 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 -// } -// } + @Subscribe(["groupBeforeRemoveEvent"]) + fun beforeRoleRemove(event: BeforeRemoveEvent) { + if (this.repository.count(mapOf(Pair("role", event.id!!))) > 0) + throw NoticeUserException("角色下还有用户") + } + + @Subscribe(["groupBeforeRemoveEvent"]) + fun beforeGroupRemove(event: BeforeRemoveEvent) { + if (this.repository.count(mapOf(Pair("group", event.id!!))) > 0) + throw NoticeUserException("用户组下还有用户") + } override fun add(command: ICommand): DataMessage { val user = this.map(command) @@ -65,7 +63,7 @@ class UserService( this.repository.update(user) DataMessage(Status.Success, "用户${user.name}激活成功") } else { - logger.warn(this, "用户${user.name}激活失败, {key: ${key}, token: ${token}") + logger.warn(this, "用户${user.name}激活失败, {key: ${key}, token: $token") DataMessage(Status.Failure, "用户${user.name}激活失败, 请从系统发送的邮件链接激活用户") } } @@ -93,7 +91,10 @@ class UserService( this.repository.update(user) DataMessage() } else { - logger.warn(this, "用户重置${user.name}密码失败, 系统密码修改令牌:${user.token}, {key: ${key} , token: ${token}") + logger.warn( + this, + "用户重置${user.name}密码失败, 系统密码修改令牌:${user.token}, {key: $key , token: $token" + ) DataMessage(Status.Failure, "用户重置密码失败, 如需重置密码请从系统发送的邮件链接中重置") } } diff --git a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/InterfaceQuery.kt b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/InterfaceQuery.kt index 7bb15bb..a251713 100644 --- a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/InterfaceQuery.kt +++ b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/InterfaceQuery.kt @@ -26,7 +26,7 @@ class InterfaceQuery( if (authority == AuthorityType.Deny) return listOf() } - val params = mutableMapOf() + val params = mutableMapOf() if (system != null) params["system"] = system val interfaces = this.list(params) val authorities = this.authorityQuery.authorized(ResourceType.Interface, role) diff --git a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/PageQuery.kt b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/PageQuery.kt index 0790f91..d9b9436 100644 --- a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/PageQuery.kt +++ b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/impl/resouce/PageQuery.kt @@ -24,7 +24,7 @@ class PageQuery(template: MongoTemplate, var authorityQuery: IAuthorityQuery, va if (authority == AuthorityType.Deny) return listOf() } - val params = mutableMapOf() + val params = mutableMapOf() if (system != null) params["system"] = system val pages = this.list(params) val authorities = this.authorityQuery.authorized(ResourceType.Page, role) diff --git a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/GroupView.kt b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/GroupView.kt index c899320..91e601c 100644 --- a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/GroupView.kt +++ b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/GroupView.kt @@ -9,7 +9,7 @@ import com.synebula.gaea.query.Where class GroupView { var id: String? = null - @Where(Operator.like) + @Where(Operator.Like) var name = "" var desc = "" diff --git a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/UserView.kt b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/UserView.kt index 74de75c..2ff38a1 100644 --- a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/UserView.kt +++ b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/view/UserView.kt @@ -12,7 +12,7 @@ class UserView { var password: String = "" - @Where(Operator.like) + @Where(Operator.Like) var realName: String? = null var phone: String? = null