Search in sources :

Example 36 with EzyUser

use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.

the class EzyZoneUserManagerImpl method unmapSessionUser.

@Override
public void unmapSessionUser(EzySession session, EzyConstant reason) {
    EzyUser user = usersBySession.remove(session);
    if (user != null) {
        user.removeSession(session);
        logger.debug("zone: {} remove session {} from user {} by reason {}, " + "user remain: {} sessions, usersBySession.size: {}", zoneName, session.getClientAddress(), user, reason, user.getSessionCount(), usersBySession.size());
        if (shouldRemoveUserNow(user)) {
            removeUser(user, reason);
        }
    }
}
Also used : EzyUser(com.tvd12.ezyfoxserver.entity.EzyUser)

Example 37 with EzyUser

use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.

the class EzySocketUserRemovalHandler method processUserRemoval.

private void processUserRemoval(EzySocketUserRemoval removal) {
    try {
        EzyUser user = removal.getUser();
        try {
            EzyConstant reason = removal.getReason();
            EzyZoneContext zoneContext = removal.getZoneContext();
            EzyUserRemovedEvent event = newUserRemovedEvent(user, reason);
            removeUserFromApps(zoneContext, event);
            notifyUserRemovedToPlugins(zoneContext, event);
        } finally {
            user.destroy();
        }
        logger.debug("user {} has destroyed", user);
    } finally {
        removal.release();
    }
}
Also used : EzyUser(com.tvd12.ezyfoxserver.entity.EzyUser) EzyZoneContext(com.tvd12.ezyfoxserver.context.EzyZoneContext) EzyConstant(com.tvd12.ezyfox.constant.EzyConstant) EzyUserRemovedEvent(com.tvd12.ezyfoxserver.event.EzyUserRemovedEvent)

Example 38 with EzyUser

use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.

the class EzySocketUserRemovalHandler method removeUserFromApp.

protected void removeUserFromApp(EzyAppContext appContext, EzyUserRemovedEvent event) {
    EzyUser user = event.getUser();
    EzyApplication app = appContext.getApp();
    EzyAppUserManager userManager = app.getUserManager();
    try {
        boolean contains = userManager.containsUser(user);
        if (contains) {
            userManager.removeUser(user, event.getReason());
        }
    } catch (Exception e) {
        String appName = app.getSetting().getName();
        logger.error("remove user: {} from app: {} error", event.getUser(), appName, e);
    }
}
Also used : EzyUser(com.tvd12.ezyfoxserver.entity.EzyUser) EzyApplication(com.tvd12.ezyfoxserver.EzyApplication) EzyAppUserManager(com.tvd12.ezyfoxserver.wrapper.EzyAppUserManager) EzyProcessor.processWithLogException(com.tvd12.ezyfox.util.EzyProcessor.processWithLogException)

Example 39 with EzyUser

use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.

the class EzyAbstractUserManager method addUser.

@Override
public EzyUser addUser(EzyUser user) {
    EzyUser answer = doAddUser(user);
    logger.info("{} add user: {}, locks.size = {}, usersById.size = {}, usersByName.size = {}", getMessagePrefix(), user, locks.size(), usersById.size(), usersByName.size());
    return answer;
}
Also used : EzyUser(com.tvd12.ezyfoxserver.entity.EzyUser)

Example 40 with EzyUser

use of com.tvd12.ezyfoxserver.client.entity.EzyUser in project ezyfox-server by youngmonkeys.

the class EzyUserManagerImplTest method test.

@Test
public void test() {
    MyTestUserManager manager = MyTestUserManager.builder().build();
    MyTestSession session = new MyTestSession();
    session.setId(10);
    MyTestUser user = new MyTestUser();
    user.setId(1);
    user.setName("dungtv");
    session.setToken("123456");
    user.addSession(session);
    manager.addUser(session, user);
    assert manager.getUser(1) == user;
    assert manager.getUser("dungtv") == user;
    assert manager.containsUser(1);
    assert !manager.containsUser(-1);
    assert manager.containsUser(session);
    assert manager.containsUser(user);
    manager.removeUser(user.getId());
    assert manager.getUser(1) == null;
    manager.addUser(session, user);
    manager.removeUser(user.getName());
    assert manager.getUser("dungtv") == null;
    manager.addUser(session, user);
    manager.removeUser((EzyUser) null);
}
Also used : MyTestUser(com.tvd12.ezyfoxserver.testing.MyTestUser) MyTestSession(com.tvd12.ezyfoxserver.testing.MyTestSession) MyTestUserManager(com.tvd12.ezyfoxserver.testing.MyTestUserManager) BaseCoreTest(com.tvd12.ezyfoxserver.testing.BaseCoreTest) Test(org.testng.annotations.Test)

Aggregations

EzyUser (com.tvd12.ezyfoxserver.entity.EzyUser)26 Test (org.testng.annotations.Test)16 EzySession (com.tvd12.ezyfoxserver.entity.EzySession)13 EzyZoneContext (com.tvd12.ezyfoxserver.context.EzyZoneContext)12 GreetResponse (com.tvd12.ezyfoxserver.support.test.data.GreetResponse)8 EzyDoHandle (com.tvd12.ezyfox.core.annotation.EzyDoHandle)7 EzyApplication (com.tvd12.ezyfoxserver.EzyApplication)6 EzyAppContext (com.tvd12.ezyfoxserver.context.EzyAppContext)6 EzySimpleServer (com.tvd12.ezyfoxserver.EzySimpleServer)5 EzyServerContext (com.tvd12.ezyfoxserver.context.EzyServerContext)5 EzyLoginProcessor (com.tvd12.ezyfoxserver.controller.EzyLoginProcessor)5 EzyResponse (com.tvd12.ezyfoxserver.response.EzyResponse)5 EzyZoneUserManager (com.tvd12.ezyfoxserver.wrapper.EzyZoneUserManager)5 EzySimpleZone (com.tvd12.ezyfoxserver.EzySimpleZone)4 EzySessionDelegate (com.tvd12.ezyfoxserver.delegate.EzySessionDelegate)4 EzyAbstractSession (com.tvd12.ezyfoxserver.entity.EzyAbstractSession)4 EzyUserLoginEvent (com.tvd12.ezyfoxserver.event.EzyUserLoginEvent)4 EzyAppUserManager (com.tvd12.ezyfoxserver.wrapper.EzyAppUserManager)4 EzyConstant (com.tvd12.ezyfox.constant.EzyConstant)3 EzyArray (com.tvd12.ezyfox.entity.EzyArray)3