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(); 
 | 
    } 
 | 
} 
 |