mirror of
https://github.com/hs-web/hsweb-framework.git
synced 2026-06-03 11:24:34 +08:00
优化角色管理
This commit is contained in:
@@ -97,8 +97,8 @@ public class AuthorizationController {
|
||||
|
||||
@RequestMapping("/login-out")
|
||||
@AccessLogger("退出登录")
|
||||
public ResponseMessage loginOut() {
|
||||
|
||||
public ResponseMessage loginOut(Authorization authorization) {
|
||||
listenerAdapter.onLoginOut(authorization);
|
||||
return ok();
|
||||
}
|
||||
|
||||
@@ -178,6 +178,12 @@ public class AuthorizationController {
|
||||
userAuthorizationListeners.forEach(listener -> listener.onAuthorizeFail(username));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoginOut(Authorization authorization) {
|
||||
if (userAuthorizationListeners != null)
|
||||
userAuthorizationListeners.forEach(listener -> listener.onLoginOut(authorization));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAuthorizeSuccess(boolean isRemembered, Authorization authorization) {
|
||||
if (userAuthorizationListeners != null)
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright 2016 http://www.hswebframework.org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
package org.hswebframework.web.controller.authorization;
|
||||
|
||||
import org.hswebframework.web.authorization.Permission;
|
||||
import org.hswebframework.web.authorization.annotation.Authorize;
|
||||
import org.hswebframework.web.commons.entity.param.QueryParamEntity;
|
||||
import org.hswebframework.web.controller.QueryController;
|
||||
import org.hswebframework.web.controller.message.ResponseMessage;
|
||||
import org.hswebframework.web.entity.authorization.PermissionRoleEntity;
|
||||
import org.hswebframework.web.entity.authorization.RoleEntity;
|
||||
import org.hswebframework.web.entity.authorization.bind.BindPermissionRoleEntity;
|
||||
import org.hswebframework.web.logging.AccessLogger;
|
||||
import org.hswebframework.web.service.authorization.RoleService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import static org.hswebframework.web.controller.message.ResponseMessage.ok;
|
||||
|
||||
/**
|
||||
* 角色控制器
|
||||
*
|
||||
* @author zhouhao
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("${hsweb.web.mappings.role:role}")
|
||||
@AccessLogger("{role_manager}")
|
||||
@Authorize(permission = "role")
|
||||
public class RoleController implements QueryController<RoleEntity, String, QueryParamEntity> {
|
||||
|
||||
@Autowired
|
||||
private RoleService roleService;
|
||||
|
||||
@Override
|
||||
public RoleService getService() {
|
||||
return roleService;
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Authorize(action = Permission.ACTION_ADD)
|
||||
@AccessLogger("{add}")
|
||||
public ResponseMessage addRole(@RequestBody BindPermissionRoleEntity<PermissionRoleEntity> permissionRoleEntity) {
|
||||
return ok(roleService.insert(permissionRoleEntity));
|
||||
}
|
||||
|
||||
@PutMapping("/{id}")
|
||||
@Authorize(action = Permission.ACTION_UPDATE)
|
||||
@AccessLogger("{update}")
|
||||
public ResponseMessage updateRole(@PathVariable String id, @RequestBody BindPermissionRoleEntity<PermissionRoleEntity> permissionRoleEntity) {
|
||||
permissionRoleEntity.setId(id);
|
||||
roleService.updateByPrimaryKey(permissionRoleEntity);
|
||||
return ok();
|
||||
}
|
||||
|
||||
@PutMapping("/disable/{id}")
|
||||
@Authorize(action = Permission.ACTION_DISABLE)
|
||||
@AccessLogger("{disable}")
|
||||
public ResponseMessage disable(@PathVariable String id) {
|
||||
roleService.disable(id);
|
||||
return ok();
|
||||
}
|
||||
|
||||
@PutMapping("/enable/{id}")
|
||||
@Authorize(action = Permission.ACTION_ENABLE)
|
||||
@AccessLogger("{disable}")
|
||||
public ResponseMessage enable(@PathVariable String id) {
|
||||
roleService.enable(id);
|
||||
return ok();
|
||||
}
|
||||
}
|
||||
@@ -27,10 +27,9 @@ import org.hswebframework.web.entity.authorization.UserEntity;
|
||||
import org.hswebframework.web.logging.AccessLogger;
|
||||
import org.hswebframework.web.service.authorization.UserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import static org.hswebframework.web.controller.message.ResponseMessage.*;
|
||||
import static org.hswebframework.web.controller.message.ResponseMessage.ok;
|
||||
|
||||
/**
|
||||
* TODO 完成注释
|
||||
@@ -41,7 +40,6 @@ import static org.hswebframework.web.controller.message.ResponseMessage.*;
|
||||
@RequestMapping("${hsweb.web.mappings.user:user}")
|
||||
@Authorize(permission = "user")
|
||||
@AccessLogger("用户管理")
|
||||
@Transactional
|
||||
public class UserController implements QueryController<UserEntity, String, QueryParamEntity>, CreateController<UserEntity, String> {
|
||||
|
||||
private UserService userService;
|
||||
|
||||
@@ -14,8 +14,11 @@ import org.hswebframework.web.service.QueryByEntityService;
|
||||
public interface RoleService extends
|
||||
CreateEntityService<RoleEntity>,
|
||||
QueryByEntityService<RoleEntity> {
|
||||
|
||||
<T extends PermissionRoleEntity> String insert(BindPermissionRoleEntity<T> roleEntity);
|
||||
|
||||
<T extends PermissionRoleEntity> void updateByPrimaryKey(BindPermissionRoleEntity<T> roleEntity);
|
||||
|
||||
boolean enable(String roleId);
|
||||
|
||||
boolean disable(String roleId);
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
package org.hswebframework.web.service.authorization.simple;
|
||||
|
||||
import org.hswebframework.web.commons.entity.GenericEntity;
|
||||
import org.hswebframework.web.dao.authorization.PermissionRoleDao;
|
||||
import org.hswebframework.web.dao.authorization.RoleDao;
|
||||
import org.hswebframework.web.entity.authorization.PermissionRoleEntity;
|
||||
@@ -73,6 +74,17 @@ public class SimpleRoleService extends AbstractService<RoleEntity, String>
|
||||
return roleEntity.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends PermissionRoleEntity> void updateByPrimaryKey(BindPermissionRoleEntity<T> roleEntity) {
|
||||
tryValidateProperty(StringUtils.hasLength(roleEntity.getId()), RoleEntity.id, "id {not_be_null}");
|
||||
tryValidateProperty(null == selectByPk(roleEntity.getId()), RoleEntity.id, "{role_exists}");
|
||||
roleEntity.setEnabled(null);
|
||||
tryValidate(roleEntity);
|
||||
DefaultDSLUpdateService
|
||||
.createUpdate(roleDao, roleEntity)
|
||||
.where(GenericEntity.id, roleEntity.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean enable(String roleId) {
|
||||
return DefaultDSLUpdateService.createUpdate(getDao()).set("enabled", true).where(RoleEntity.id, roleId).exec() > 0;
|
||||
|
||||
Reference in New Issue
Block a user