loginInfo.setNickname(user.getNickname());
if (userService.isUserLoggedIn())
{ // && userService.isUserAdmin()
loginInfo.setUserAdmin(userService.isUserAdmin());
AppUser appUser = ObjectifyService.ofy().load().type(AppUser.class).filter("EMailAddress", user.getEmail()).first().now();
loginInfo.setAppUserShared(appUser == null ? null : appUser);
decodeAuthString(appUser);
if (Configuration.appUserMode == Configuration.UserMode.umSingle)
{
if (userService.isUserAdmin())
{
if (appUser == null)
{
appUser = ObjectifyService.ofy().load().type(AppUser.class).first().now();
if (appUser != null)
{
decodeAuthString(appUser);
if (!appUser.EMailAddress.equals(user.getEmail()))
{
// not the administator.
loginInfo.setLoggedIn(false);
return loginInfo;
}
}
appUser = new AppUser();
appUser.EMailAddress = user.getEmail();
appUser.FirstName = user.getNickname();
appUser.LastName = "UNKNOWN";
appUser.City = "";
appUser.Country = "";
appUser.isSubscriptionPaid = true;
appUser.isSuperDude = true;
appUser.isUser = true;
ObjectifyService.ofy().save().entity(appUser);
loginInfo.setLoggedIn(true);
} else
{
loginInfo.setLoggedIn(true);
}
} else
{
loginInfo.setLoggedIn(false);
return loginInfo;
}
} else if (Configuration.appUserMode == Configuration.UserMode.umMultipleSameApps)
{
if (userService.isUserAdmin())
{
if (appUser == null)
{
appUser = new AppUser();
appUser.EMailAddress = user.getEmail();
appUser.FirstName = user.getNickname();
appUser.LastName = "UNKNOWN";
appUser.City = "";
appUser.Country = "";