package io.loli.sc.server.service;
import io.loli.sc.server.dao.ClientTokenDao;
import io.loli.sc.server.entity.ClientToken;
import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Named
public class ClientTokenService {
@Inject
private ClientTokenDao ctd;
@Inject
private UserService us;
/**
* 查询此email是否已经有过token了
*
* @param email
* @return ClientToken对象
*/
public ClientToken findByEmail(String email) {
return ctd.findByUId(us.findByEmail(email).getId());
}
/**
* 将ClientToken对象持久化
*
* @param ct
*/
@Transactional(propagation = Propagation.REQUIRED)
public void save(ClientToken ct) {
ctd.save(ct);
}
/**
* 通过token的md5值查找出此token
*
* @param token
* @return 当查找不到时,返回null
*/
public ClientToken findByToken(String token) {
return ctd.findByToken(token);
}
/**
* 判断某个token是否属于指定的用户id
*
* @param token
* @param u_id 用户id
* @return 如果此token不存在或者不属于指定用户返回false,否则返回true
*/
public boolean checkTokenBelongToUser(String token, int u_id) {
ClientToken clientToken = this.findByToken(token);
return token != null || clientToken.getUser().getId() == u_id;
}
/**
* 判断某个token是否属于指定的用户email
*
* @param token
* @param u_id 用户id
* @return 如果此token不存在或者不属于指定用户返回false,否则返回true
*/
public boolean checkTokenBelongToUser(String token, String email) {
ClientToken clientToken = this.findByToken(token);
return token != null || clientToken.getUser().getEmail().equals(email);
}
}