package cc.mrbird.febs.monitor.controller;
|
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.monitor.entity.ActiveUser;
|
import cc.mrbird.febs.monitor.service.ISessionService;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @author MrBird
|
*/
|
@RestController
|
@RequestMapping("session")
|
@RequiredArgsConstructor
|
public class SessionController {
|
|
private final ISessionService sessionService;
|
|
@GetMapping("list")
|
@RequiresPermissions("online:view")
|
public FebsResponse list(String username) {
|
List<ActiveUser> list = sessionService.list(username);
|
Map<String, Object> data = new HashMap<>(2);
|
data.put("rows", list);
|
data.put("total", list.size());
|
return new FebsResponse().success().data(data);
|
}
|
|
@GetMapping("delete/{id}")
|
@RequiresPermissions("user:kickout")
|
public FebsResponse forceLogout(@PathVariable String id) {
|
sessionService.forceLogout(id);
|
return new FebsResponse().success();
|
}
|
}
|