All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ars.module.mobile.service.StandardMobileAuthService Maven / Gradle / Ivy

package ars.module.mobile.service;

import java.util.Map;
import java.util.Date;

import ars.invoke.request.Token;
import ars.invoke.request.Requester;
import ars.invoke.event.InvokeBeforeEvent;
import ars.invoke.request.AccessDeniedException;
import ars.module.mobile.app.Device;
import ars.module.mobile.model.Apper;
import ars.module.mobile.service.MobileAuthService;
import ars.module.people.service.StandardAuthService;
import ars.database.repository.Repository;
import ars.database.service.event.UpdateEvent;
import ars.database.repository.Repositories;

/**
 * App用户认证标准实现
 * 
 * @author yongqiangwu
 * 
 */
public class StandardMobileAuthService extends StandardAuthService implements MobileAuthService {

	@Override
	public void onInvokeEvent(InvokeBeforeEvent event) {

	}

	@Override
	public void onServiceEvent(UpdateEvent event) {

	}

	@Override
	public Token login(Requester requester, String code, String password, Device device,
			Map parameters) {
		Repository repository = Repositories.getRepository(Apper.class);
		Apper apper = repository.query().eq("user", code).single();
		if (apper == null) {
			throw new AccessDeniedException("error.user.unknown");
		}
		Token token = super.login(requester, code, password, parameters);
		apper.setDevice(device);
		apper.setChannel(requester.getClient());
		apper.setOnline(true);
		apper.setDateUpdate(new Date());
		repository.update(apper);
		return token;
	}

	@Override
	public void logout(Requester requester, Map parameters) {
		super.logout(requester, parameters);
		Repository repository = Repositories.getRepository(Apper.class);
		Apper apper = repository.query().eq("user", requester.getUser()).single();
		if (apper != null) {
			apper.setOnline(false);
			apper.setDateUpdate(new Date());
			repository.update(apper);
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy