コード例 #1
0
        /// <summary>
        /// Check existence in database user with facebook id
        /// </summary>
        public bool ExistsUser(FacebookId inFacebook)
        {
            string fbId  = inFacebook.value;
            var    query = Query <DbUserLogin> .EQ(user => user.facebookId, fbId);

            return(UserLogins.Count(query) > 0);
        }
コード例 #2
0
        public DbUserLogin GetUser(FacebookId fbId)
        {
            string facebookId = fbId.value;
            var    query      = Query <DbUserLogin> .EQ(user => user.facebookId, facebookId);

            return(UserLogins.FindOne(query));
        }
コード例 #3
0
ファイル: FullUserAuth.cs プロジェクト: OlegGelezcov/neb
 public FullUserAuth(string login, string gameRef, string facebookId, string vkontakteId, string deviceId)
 {
     m_LoginGameRef = new LoginGameRef(login, gameRef);
     m_Facebook     = new FacebookId(facebookId);
     m_Vkontakte    = new VkontakteId(vkontakteId);
     m_DeviceId     = new DeviceId(deviceId);
 }
コード例 #4
0
        private OperationResponse LoginViaFacebook(LoginOperationRequest operation)
        {
            FacebookId  facebookId = new FacebookId(operation.facebookId);
            DbUserLogin user       = application.GetUser(facebookId);

            if (user == null)
            {
                user = application.DbUserLogins.CreateUser(facebookId);
            }

            string platform = GetPlatform(operation);

            LoginOperationResponse response = new LoginOperationResponse {
                facebookId  = user.facebookId,
                GameRefId   = user.gameRef,
                Login       = user.login,
                returnCode  = (int)LoginReturnCode.Ok,
                vkontakteId = user.vkontakteId,
                method      = (byte)LoginMethod.facebook,
                deviceId    = string.Empty
            };

            AddUserToCollection(user, platform);

            return(new OperationResponse(operation.OperationRequest.OperationCode, response));
        }
コード例 #5
0
        public DbUserLogin CreateUser(FacebookId facebookId)
        {
            DbUserLogin databaseUser = new DbUserLogin {
                creationTime  = CommonUtils.SecondsFrom1970(),
                email         = string.Empty,
                gameRef       = Guid.NewGuid().ToString(),
                login         = facebookId.value,
                password      = facebookId.value,
                facebookId    = facebookId.value,
                vkontakteId   = string.Empty,
                nebulaCredits = NEBULA_CREDITS_AT_START,
                steamId       = string.Empty,
                deviceId      = string.Empty
            };
            var result = UserLogins.Save(databaseUser);

            return(databaseUser);
        }
コード例 #6
0
        public DbUserLogin CreateUser(LoginAuth auth, Email email, FacebookId fbId, VkontakteId vkId)
        {
            DbUserLogin dbUser = new DbUserLogin {
                creationTime  = CommonUtils.SecondsFrom1970(),
                email         = email.value,
                gameRef       = Guid.NewGuid().ToString(),
                login         = auth.login,
                password      = auth.password,
                facebookId    = fbId.value,
                vkontakteId   = vkId.value,
                nebulaCredits = NEBULA_CREDITS_AT_START,
                steamId       = string.Empty,
                deviceId      = string.Empty
            };

            var result = UserLogins.Save(dbUser);

            return(dbUser);
        }
コード例 #7
0
        public override OperationResponse Handle(OperationRequest request, SendParameters sendParameters)
        {
            RegisterUserRequest operation = new RegisterUserRequest(peer.Protocol, request);

            if (!operation.IsValid)
            {
                return(new OperationResponse(request.OperationCode)
                {
                    ReturnCode = (short)ReturnCode.InvalidOperationParameter,
                    DebugMessage = operation.GetErrorMessage()
                });
            }
            operation.Prepare();

            if (!mLoginUtils.IsLoginLengthValid(operation.login))
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)LoginReturnCode.LoginVeryShort
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }

            string password = StringChiper.Decrypt(operation.encryptedPassword);

            if (!mLoginUtils.IsPasswordLengthValid(password))
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)LoginReturnCode.PasswordVeryShort
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }

            if (!mLoginUtils.IsLoginCharactersValid(operation.login))
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)LoginReturnCode.LoginHasInvalidCharacters
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }

            if (!mLoginUtils.IsPasswordCharactersValid(password))
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)LoginReturnCode.PasswordHasInvalidCharacters
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }

            var emailChecker = new RegexUtilities();

            if (!emailChecker.IsValidEmail(operation.email))
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)LoginReturnCode.EmailInvalid
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }



            var database = application.DbUserLogins;

            if (database.ExistsUser(new LoginId(operation.login)))
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)LoginReturnCode.UserWithSameLoginAlreadyExists
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }

            var emailUser = database.GetUser(new Email(operation.email));

            if (emailUser != null)
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)LoginReturnCode.UserWithSuchEmailAlreadyExists
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }


            LoginReturnCode code = LoginReturnCode.Ok;


            LoginAuth   loginAuth = new LoginAuth(operation.login, password);
            Email       email     = new Email(operation.email);
            FacebookId  fbId      = new FacebookId(operation.facebookId);
            VkontakteId vkId      = new VkontakteId(operation.vkontakteId);

            var dbUser = database.CreateUser(loginAuth, email, fbId, vkId);

            FullUserAuth fullAuth = new FullUserAuth(loginAuth.login, dbUser.gameRef, fbId.value, vkId.value, string.Empty);


            string platform = string.Empty;

            if (operation.platform != null)
            {
                platform = operation.platform;
            }

            (peer as LoginClientPeer).SetLogin(new LoginId(loginAuth.login));
            application.LogedInUsers.OnUserLoggedIn(fullAuth, peer as LoginClientPeer);
            application.stats.OnUserLoggedIn(fullAuth, platform);

            if (code != LoginReturnCode.Ok)
            {
                RegisterUserResponse responseObject = new RegisterUserResponse {
                    login      = operation.login,
                    gameRef    = string.Empty,
                    returnCode = (int)code
                };
                return(new OperationResponse(request.OperationCode, responseObject));
            }

            RegisterUserResponse successResponseObject = new RegisterUserResponse {
                gameRef    = dbUser.gameRef,
                login      = dbUser.login,
                returnCode = (int)code
            };

            return(new OperationResponse(request.OperationCode, successResponseObject));
        }
コード例 #8
0
 public DbUserLogin GetUser(FacebookId fbId)
 {
     return(DbUserLogins.GetUser(fbId));
 }