Пример #1
0
        public JObject activate_user_account([FromBody] JObject value)
        {
            JObject returnObj = new JObject();

            try
            {
                int    USER_ID          = int.Parse(value["USER_ID"].ToString());
                String ACTIVATION_CODE  = value["ACTIVATION_CODE"].ToString();
                String ACTIVATION_TOKEN = value["ACTIVATION_TOKEN"].ToString();

                Classes.Token tokenObj = new Classes.Token();
                if (tokenObj.ValidateActivationToken(ACTIVATION_TOKEN, USER_ID))
                {
                    // activation token is valid

                    /*
                     *
                     *  MSK SEE IF ACTIVATION CODE MATCH IN THE TABLE USING USER_ID
                     *
                     *  IF ACTIVATION CODE EXIST AND VALID THEN ACTIVATE THE ACCOUNT OF THE USER USING USER_ID
                     *
                     *  WHEN ACCOUNT IS ACTIVATED. REMOVE THE CURRENT ACTIVATION_CODE FROM THE TABLE
                     *
                     *
                     * */


                    checkarr.Confirmationcode code1 = homeDBContext.Confirmationcode.FirstOrDefault(i => i.UserId == USER_ID && i.ConfirmationCode == ACTIVATION_CODE && i.ConfirmationType == "ACTIVATION_CODE");
                    if (code1 != null)

                    {
                        checkarr.UserLog user1 = homeDBContext.UserLog.FirstOrDefault(i => i.IduserLog == code1.UserId);
                        user1.Activated = "T";
                        homeDBContext.Confirmationcode.Remove(code1);
                        homeDBContext.SaveChanges();
                        returnObj.Add("RETURN_CODE", 1); // account is activated
                    }
                    else
                    {
                        returnObj.Add("RETURN_CODE", 4); // code not found
                    }
                }
                else
                {
                    returnObj.Add("RETURN_CODE", 2); // activation token is not valid
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in activate_user_account: " + e);
                returnObj.Add("RETURN_CODE", 3); // exception
            }
            return(returnObj);
        }
Пример #2
0
        public JObject validate_access_token([FromBody] JObject value)
        {
            Boolean validationCheck = false;
            JObject returnObject    = new JObject();

            try
            {
                //String temp = "*****@*****.**";
                //System.Diagnostics.Debug.WriteLine(value["AccessToken"]);
                Classes.Token token = new Classes.Token();
                validationCheck = token.ValidateToken(value["AccessToken"].ToString(), value["Email"].ToString());
                //System.Diagnostics.Debug.WriteLine("VALIDATION CHECK => "+ validationCheck);
                returnObject.Add("AccessValidation", validationCheck);


                if (validationCheck == true)
                {
                    checkarr.checkarrContext checkarrDBContext = new checkarr.checkarrContext();
                    checkarr.UserLog         user1             = checkarrDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == value["Email"].ToString());

                    if (user1 != null)
                    {
                        String activation_check = user1.Activated;

                        if (activation_check == "T")
                        {
                            returnObject.Add("account_activated", true);
                        }
                        else
                        {
                            returnObject.Add("account_activated", false);
                        }


                        int user_id = user1.IduserLog;
                        returnObject.Add("user_id", user_id);

                        String user_email = user1.UserEmaill;
                        returnObject.Add("user_email", user_email);
                    }
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in AuthenticationController" + e);
            }



            return(returnObject);
        }
        public JObject Reset_change_password([FromBody] JObject value)
        {
            JObject returnObj = new JObject();

            try
            {
                String RESET_TOKEN  = value["RESET_TOKEN"].ToString();
                String RESET_EMAIL  = value["RESET_EMAIL"].ToString();
                String NEW_PASSWORD = value["NEW_PASSWORD"].ToString();

                Classes.Token TokenObj = new Classes.Token();

                if (TokenObj.ValidateResetToken(RESET_TOKEN, RESET_EMAIL))
                {
                    checkarr.UserLog userr2 = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == RESET_EMAIL);
                    if (userr2 != null)
                    {
                        if (userr2.UserPassword == NEW_PASSWORD)
                        {
                            // same password
                            returnObj.Add("RETURN_CODE", 5);
                        }
                        else
                        {
                            userr2.UserPassword = NEW_PASSWORD;
                            registerDBContext.SaveChanges();
                            returnObj.Add("RETURN_CODE", 1); // password changed
                        }
                    }
                    else
                    {
                        returnObj.Add("RETURN_CODE", 4);  // password not changed
                    }
                }
                else
                {
                    returnObj.Add("RETURN_CODE", 3); // reset token is not valid
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Reset change password: "******"RETURN_CODE", 2); //exception
            }

            return(returnObj);
        }
Пример #4
0
        public JObject send_activation_mail([FromBody] JObject value)
        {
            JObject returnObj = new JObject();

            try
            {
                int    USER_ID    = int.Parse(value["USER_ID"].ToString());
                String USER_EMAIL = value["USER_EMAIL"].ToString();



                Classes.CodeGenerator codeGenerator = new Classes.CodeGenerator();
                String activationCode = codeGenerator.ActivationCodeGenerator();

                // saving in confirmation code table
                checkarr.Confirmationcode confirmationCodeModel = new checkarr.Confirmationcode();
                confirmationCodeModel.ConfirmationCode = activationCode;
                confirmationCodeModel.ConfirmationType = "ACTIVATION_CODE";
                confirmationCodeModel.GeneratedOn      = DateTime.UtcNow;
                confirmationCodeModel.ExpiryTime       = DateTime.UtcNow.AddDays(1);
                confirmationCodeModel.Used             = "F";
                confirmationCodeModel.UserId           = USER_ID;

                homeDBContext.Confirmationcode.Add(confirmationCodeModel);
                homeDBContext.SaveChanges();


                Classes.Token    tokenGenerator  = new Classes.Token();
                JwtSecurityToken activationToken = tokenGenerator.GenerateActivationToken(USER_ID);


                // sending activation mail
                Classes.Mailer currentMailer = new Classes.Mailer();
                currentMailer.sendActivationMail(USER_EMAIL, new JwtSecurityTokenHandler().WriteToken(activationToken), activationCode, USER_ID);

                returnObj.Add("RETURN_CODE", 1); // mail sent
                returnObj.Add("ACTIVATION_TOKEN", new JwtSecurityTokenHandler().WriteToken(activationToken));
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in home controller while sending activation mail " + e);
                returnObj.Add("RETURN_CODE", 2); // exception;
            }

            return(returnObj);
        }
        public JObject Verify_reset_token([FromBody] JObject value)
        {
            JObject returnObject = new JObject();

            try
            {
                String reset_token = value["RESET_TOKEN"].ToString();
                String reset_email = value["RESET_EMAIL"].ToString();


                Classes.Token TokenObj = new Classes.Token();

                Boolean isResetTokenValid = TokenObj.ValidateResetToken(reset_token, reset_email);
                returnObject.Add("RESET_TOKEN_STATUS", isResetTokenValid);
            }
            catch (Exception e)
            {
                returnObject.Add("RESET_TOKEN_STATUS", false);
                System.Diagnostics.Debug.WriteLine("Exception in Verify reset token: " + e);
            }

            return(returnObject);
        }
Пример #6
0
        public JObject refresh_access_token([FromBody] JObject value)
        {
            JObject returnObject = new JObject();

            try
            {
                String REFRESH_TOKEN = value["refresh_token"].ToString();
                String EMAIL         = value["email"].ToString();


                Classes.Token currentTokenObj = new Classes.Token();
                if (currentTokenObj.ValidateRefreshToken(REFRESH_TOKEN, EMAIL))
                {
                    // refresh token is valid

                    String new_refresh_token = new JwtSecurityTokenHandler().WriteToken(currentTokenObj.GenerateRefreshToken(EMAIL));

                    currentTokenObj.GenerateToken(EMAIL);
                    String new_access_token = new JwtSecurityTokenHandler().WriteToken(currentTokenObj.token);
                    String email            = EMAIL;



                    checkarr.checkarrContext checkarrDBContext = new checkarr.checkarrContext();
                    checkarr.UserLog         user1             = checkarrDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == EMAIL);

                    if (user1 != null)
                    {
                        String activation_check = user1.Activated;

                        if (activation_check == "T")
                        {
                            returnObject.Add("account_activated", true);
                        }
                        else
                        {
                            returnObject.Add("account_activated", false);
                        }


                        int user_id = user1.IduserLog;
                        returnObject.Add("user_id", user_id);

                        String user_email = user1.UserEmaill;
                        returnObject.Add("user_email", user_email);
                    }

                    returnObject.Add("RETURN_CODE", 1); // refresh token valid
                    returnObject.Add("NEW_REFRESH_TOKEN", new_refresh_token);
                    returnObject.Add("NEW_ACCESS_TOKEN", new_access_token);
                    returnObject.Add("EMAIL", email);
                }
                else
                {
                    // refresh token is not valid
                    returnObject.Add("RETURN_CODE", 2); // refresh token is not valid
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in refresh_access_token :" + e);
                returnObject.Add("RETURN_CODE", 3); // exception has occured
            }

            return(returnObject);
        }
        public IActionResult Post([FromBody] Classes.User user)
        {
            try
            {
                if (user != null)
                {
                    // Initializing New DBContext

                    user.Email = user.Email.ToLower();

                    checkarr.checkarrContext loginDBContext = new checkarr.checkarrContext();
                    checkarr.UserLog         UserLogin      = loginDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == user.Email);

                    if (UserLogin == null)
                    {
                        System.Diagnostics.Debug.Print("** USER NOT FOUND");
                        return(Ok(new
                        {
                            OK = 3,
                            Issued = false,
                            Token = "",
                            Type = "None",
                            Generation = "NA",
                            Expiration = "NA",
                            Issuer = "http://www.checkarr.com"
                        }));
                    }
                    else if (user.Password == UserLogin.UserPassword)
                    {
                        // To be executed whe login is successful

                        Classes.Token CurrentToken = new Classes.Token();
                        CurrentToken.GenerateToken(UserLogin.UserEmaill);


                        JwtSecurityToken refreshToken = CurrentToken.GenerateRefreshToken(UserLogin.UserEmaill);
                        // have to save details in database



                        return(Ok(new
                        {
                            Ok = 1,
                            Issued = true,
                            Token = new JwtSecurityTokenHandler().WriteToken(CurrentToken.token),
                            refresh_token = new JwtSecurityTokenHandler().WriteToken(refreshToken),
                            activation_status = UserLogin.Activated,
                            user_id = UserLogin.IduserLog,
                            user_email = UserLogin.UserEmaill
                        }));
                    }
                    else
                    {
                        // To be executed the login fails
                        return(Ok(new
                        {
                            OK = 2,
                            Issued = false,
                            Token = "Not issued",
                            Type = "None",
                            Generation = "NA",
                            Expiration = "NA",
                            Issuer = "http://www.checkarr.com"
                        }));
                    }
                }
                else
                {
                    return(Unauthorized());
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.Print(e.ToString());
            }
            return(Unauthorized());
        }
        public JObject Account_recovery([FromBody] JObject value)
        {
            JObject returnObject = new JObject();

            try
            {
                checkarr.checkarrContext registerDBContext = new checkarr.checkarrContext();
                checkarr.UserLog         Userr             = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == value["RECOVERY_EMAIL"].ToString());
                // query through database and store email in recovery_email_temp

                if (Userr == null)
                {
                    returnObject.Add("RETURN_CODE", 2);
                    returnObject.Add("RECOVERY_TOKEN", null);
                }

                else if (value["RECOVERY_EMAIL"].ToString() == Userr.UserEmaill)
                {
                    // string gen_recoveryToken_tmp=
                    JwtSecurityToken recoveryToken = new JwtSecurityToken();

                    recoveryToken = new Classes.Token().GenerateRecoveryToken(value["RECOVERY_EMAIL"].ToString());
                    Classes.CodeGenerator recovery_code_temp = new Classes.CodeGenerator();
                    string recoverycode_stringtemp           = recovery_code_temp.RecoveryCodeGenerator();

                    //SAVE recoverycode_stringtemp  TO TABLE CONFIRMATION CODES WITH TYPE "RECOVERY_CODE"
                    checkarr.Confirmationcode newcode = new checkarr.Confirmationcode();
                    newcode.ConfirmationCode = recoverycode_stringtemp;
                    newcode.ConfirmationType = "RECOVERY_CODE";
                    newcode.GeneratedOn      = DateTime.UtcNow;
                    newcode.ExpiryTime       = DateTime.UtcNow.AddDays(1);
                    newcode.Used             = "F";
                    newcode.UserId           = Userr.IduserLog;

                    registerDBContext.Confirmationcode.Add(newcode);
                    registerDBContext.SaveChanges();



                    Classes.Mailer mail_temp_obj = new Classes.Mailer();
                    mail_temp_obj.sendRecoveryMail(value["RECOVERY_EMAIL"].ToString(), new JwtSecurityTokenHandler().WriteToken(recoveryToken), recoverycode_stringtemp);


                    returnObject.Add("RETURN_CODE", 1);
                    returnObject.Add("RECOVERY_TOKEN", new JwtSecurityTokenHandler().WriteToken(recoveryToken));
                }
                else
                {
                    returnObject.Add("RETURN_CODE", 2);
                    returnObject.Add("RECOVERY_TOKEN", null);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("EXCEPTION IN ACCOUNT RECOVERY = " + ex);
                returnObject.Add("RETURN_CODE", 3);
                returnObject.Add("RECOVERY_TOKEN", null);
            }


            /*
             * . RETURN_CODE: 1 = RECOVERY MAIL IS SENT
             *  . RETURN_CODE: 2 = RECOVERY MAIL DOES NOT EXIST
             *  . RETURN_CODE: 3 = EXCEPTION
             * */
            return(returnObject);
        }
        public JObject Account_activation([FromBody] JObject value)
        {
            JObject returnObject = new JObject();

            try
            {
                String activationCode  = value["ACTIVATION_CODE"].ToString();
                int    userId          = Int32.Parse(value["USER_ID"].ToString());
                String activationToken = value["ACTIVATION_TOKEN"].ToString();

                Classes.Token tokenClassObj = new Classes.Token();

                Boolean isActivationTokenValid = tokenClassObj.ValidateActivationToken(activationToken, userId);

                if (isActivationTokenValid)
                {
                    // activation token is valid


                    checkarr.Confirmationcode ccode = registerDBContext.Confirmationcode.FirstOrDefault(i => i.ConfirmationCode == activationCode && i.ConfirmationType == "ACTIVATION_CODE" && i.UserId == userId);
                    if (ccode != null && ccode.ConfirmationCode.Equals(activationCode))
                    {
                        // code is valid
                        if (ccode.ExpiryTime >= DateTime.UtcNow)
                        {
                            checkarr.UserLog User1 = registerDBContext.UserLog.FirstOrDefault(i => i.IduserLog == userId);
                            if (User1 != null)
                            {
                                User1.Activated = "T";
                                registerDBContext.SaveChanges();
                                returnObject.Add("RETURN_CODE", 1);
                            }
                            else
                            {
                                returnObject.Add("RETURN_CODE", 5);  // exception
                            }
                        }
                        else
                        {
                            // code is expired
                            returnObject.Add("RETURN_CODE", 3);
                        }
                    }
                    else
                    {
                        // code ins invalid
                        returnObject.Add("RETURN_CODE", 2);
                    }
                }
                else
                {
                    // activation token is invalid
                    returnObject.Add("RETURN_CODE", 4);
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine("EXCEPTION IN RECOVERY CONFIRMATION = " + ex);
                returnObject.Add("RETURN_CODE", 5);
            }


            /*
             *
             *
             *
             * . RETURN_CODE: 1  = Account is activated
             *  . RETURN_CODE: 2  = CODE IS INVALID
             *  . RETURN_CODE: 3  = CODE IS EXPIRED
             *  . RETURN_CODE: 4  = TOKEN IS INVALID
             *  . RETURN_CODE: 5  = EXCEPTION
             * */
            return(returnObject);
        }
        public JObject Recovery_confirmation([FromBody] JObject value)
        {
            JObject returnObject = new JObject();

            try
            {
                String recoveryCode  = value["RECOVERY_CODE"].ToString();
                String recoveryToken = value["RECOVERY_TOKEN"].ToString();
                String recoveryEmail = value["RECOVERY_EMAIL"].ToString();

                Classes.Token tokenClassObj = new Classes.Token();

                Boolean isRecoveryTokenValid = tokenClassObj.ValidateRecoveryToken(recoveryToken, recoveryEmail);
                if (isRecoveryTokenValid)
                {
                    // recovery token is valid


                    checkarr.UserLog Userr = registerDBContext.UserLog.FirstOrDefault(i => i.UserEmaill == recoveryEmail);

                    if (Userr != null)
                    {
                        checkarr.Confirmationcode ccode1 = registerDBContext.Confirmationcode.FirstOrDefault(i => i.ConfirmationCode == recoveryCode && i.ConfirmationType == "RECOVERY_CODE" && Userr.IduserLog == i.UserId);
                        if (ccode1 != null && ccode1.ExpiryTime >= DateTime.UtcNow)
                        {
                            JwtSecurityToken resetToken = tokenClassObj.GenerateResetToken(recoveryEmail);
                            returnObject.Add("RESET_TOKEN", new JwtSecurityTokenHandler().WriteToken(resetToken));
                            returnObject.Add("RETURN_CODE", 1);
                            registerDBContext.Confirmationcode.Remove(ccode1);
                            registerDBContext.SaveChanges();
                        }
                        else
                        {
                            System.Diagnostics.Debug.WriteLine("CCODE IF ====>" + ccode1);
                            // recovery code is invalid
                            returnObject.Add("RESET_TOKEN", null);
                            returnObject.Add("RETURN_CODE", 2);
                        }
                    }
                    else
                    {
                        returnObject.Add("RESET_TOKEN", null);
                        returnObject.Add("RETURN_CODE", 5);
                    }
                }
                else
                {
                    // recovery token is invalid
                    returnObject.Add("RESET_TOKEN", null);
                    returnObject.Add("RETURN_CODE", 3);
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Exception in RECOVERY_CONFIRMATION " + e);
                returnObject.Add("RESET_TOKEN", null);
                returnObject.Add("RETURN_CODE", 4);
            }

            /*
             * RESET_TOKEN +
             *
             * . RETURN_CODE: 1 = RECOVERY CODE IS CONFIRMED
             *  . RETURN_CODE: 2 = RECOVERY CODE IS INVALID
             *  . RETURN_CODE: 3 = RECOVERY TOKEN IS INVALID
             *  . RETURN_CODE: 4 = EXCEPTION
             *  . RETURN_CODE: 5 = SOMETHING WENT WRONG
             * */



            return(returnObject);
        }