diff --git a/400-SOURCECODE/AIAHTML5.API/Controllers/AuthController.cs b/400-SOURCECODE/AIAHTML5.API/Controllers/AuthController.cs deleted file mode 100644 index 41ee501..0000000 --- a/400-SOURCECODE/AIAHTML5.API/Controllers/AuthController.cs +++ /dev/null @@ -1,377 +0,0 @@ -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Net.Http; -using System.Web.Http; -using log4net; -using AIAHTML5.API.Constants; -using AIAHTML5.API.Models; -using System.Collections; - -namespace AIAHTML5.API.Controllers -{ - public class AuthenticateController : ApiController - { - // GET api/authenticate - public IEnumerable Get() - { - return new string[] { "value1", "value2" }; - } - - // GET api/authenticate/5 - public string Get(int id) - { - return "value"; - } - - // POST api/authenticate - public HttpResponseMessage Post([FromBody]JObject credentials) - { - ILog logger = log4net.LogManager.GetLogger((System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)); - logger.Debug("inside POST"); - - dynamic authenticationRepsonse; - - try - { - - //01.get the user detail for autheticate user - User userInfo = AIAHTML5.API.Models.Users.getUserDetails(credentials); - - if (userInfo.Id > 0) - { - // Check user is authenticated or not by login credential macth - bool isUserAuthenticated = AIAHTML5.API.Models.Users.IsUserAuthenticated(credentials, userInfo); - - // check if user is blocked - DateTime blockTime; - bool isUserBlocked = AIAHTML5.API.Models.Users.isUserBlocked(userInfo.Id, out blockTime); - - if (isUserAuthenticated && !isUserBlocked) - { - //01. Get User details - //userInfo = AIAHTML5.API.Models.Users.getUserDetails(credentials); - - //02. assigning isCorrectPassword to true 'required for internal processing' - userInfo.IsCorrectPassword = true; - - //04.delete past wrong login attempts of user - int wrongAttemptDeteledCount = AIAHTML5.API.Models.Users.deletePastWrongAttempts(userInfo.Id); - if (wrongAttemptDeteledCount < 0) - { - logger.Fatal("Unable to delete past wrong login attempts for userId= " + userInfo.Id); - } - - //05. Now get the module list- for ADMIN (superadmin/ general admin) by default all module loads - if (userInfo.UserType == AIAHTML5.API.Models.User.SUPER_ADMIN || userInfo.UserType == AIAHTML5.API.Models.User.GENERAL_ADMIN) - { - userInfo.Modules = AIAHTML5.API.Models.Users.getAllModulesList(); - - //Insert user login detail - AIAHTML5.API.Models.Users.insertLoginDetails(userInfo.Id); - } - else - { - //05.1 For normal user need to get the license details, get the license id for authenticated user - int licenseId, editionId; - AIAHTML5.API.Models.Users.getLicenseIdForThisUser(userInfo.Id, out licenseId, out editionId); - - userInfo.LicenseId = licenseId; - userInfo.EditionId = editionId; - - //05.2 Check user is active or not - - - //05.3 get license details - userInfo.LicenseInfo = AIAHTML5.API.Models.Users.getLicenseDetails(userInfo.LicenseId); - - if (userInfo.LicenseInfo.Id > 0) - { - //05.4 get licenseSubscription details - userInfo.LicenseSubscriptions = AIAHTML5.API.Models.Users.getLicenseSubscriptionDetails(userInfo.LicenseId); - - //05.5 check the License expiration irespective of either user is active or not because on AIA - //we shows the License expiration message for inactive users too - string expirationDate = null; - bool isLicenseExpired = false; - - if (userInfo.LicenseSubscriptions.Id > 0) - { - isLicenseExpired = AIAHTML5.API.Models.Users.checkIfLicenseExpired(userInfo.LicenseSubscriptions, out expirationDate); - } - - // send message to the UI for license expiration - //05.6 Check for subscription Expiration [Promoted for case if license inactive along with subscription expired] - if (isLicenseExpired) - { - userInfo.IsSubscriptionExpired = isLicenseExpired; - userInfo.SubscriptionExpirationDate = expirationDate; - } - else - { - //05.6.1 - if (userInfo.LicenseInfo.IsActive) - { - if (!userInfo.LicenseInfo.IsTermAccepted) - { - ArrayList termsList = AIAHTML5.API.Models.Users.getTermsOfServiceText(); - foreach (Hashtable item in termsList) - { - userInfo.TermsOfServiceTitle = item[AIAConstants.KEY_TITLE].ToString(); - userInfo.TermsOfServiceText = item[AIAConstants.KEY_CONTENT].ToString(); - } - } - else - { - userInfo.Modules = AIAHTML5.API.Models.Users.getModuleListByLicenseId(userInfo.LicenseId); - - //Insert user login detail - AIAHTML5.API.Models.Users.insertLoginDetails(userInfo.Id); - } - } - else - { - //05.6.1.1 - // return message of license inactive - // property value assigned. Separate return statement not required - - } - } - } - } - - authenticationRepsonse = JsonConvert.SerializeObject(userInfo); - } - else - { - //compare block time of user with current time if user is blocked - DateTime blockDuration = blockTime.AddDays(1); - var difference = DateTime.Compare(DateTime.Now, blockDuration); - - //check if credentials are valid credentials - bool isCorrectLoginId, isCorrectPassword; - AIAHTML5.API.Models.Users.isCredentialCorrect(credentials, userInfo, out isCorrectLoginId, out isCorrectPassword); - - if (isUserBlocked) - { - if (difference >= 0) - { - if (isCorrectPassword) - { - userInfo.IsBlocked = false; - userInfo.IsCorrectPassword = true; - - int wrongAttemptDeteledCount = AIAHTML5.API.Models.Users.deletePastWrongAttempts(userInfo.Id); - if (wrongAttemptDeteledCount < 0) - { - logger.Fatal("Unable to delete past wrong login attempts for userId= " + userInfo.Id); - } - - //05. Now get the module list- for ADMIN (superadmin/ general admin) by default all module loads - - if (userInfo.UserType == AIAHTML5.API.Models.User.SUPER_ADMIN || userInfo.UserType == AIAHTML5.API.Models.User.GENERAL_ADMIN) - { - userInfo.Modules = AIAHTML5.API.Models.Users.getAllModulesList(); - - //Insert user login detail - AIAHTML5.API.Models.Users.insertLoginDetails(userInfo.Id); - } - else - { - //05.1 For normal user need to get the license details, get the license id for aUTHENTICATED USER - int licenseId, editionId; - AIAHTML5.API.Models.Users.getLicenseIdForThisUser(userInfo.Id, out licenseId, out editionId); - - userInfo.LicenseId = licenseId; - userInfo.EditionId = editionId; - - //05.2 Check user is active or not - - - //05.3 get license/ licenseSubscription details - userInfo.LicenseInfo = AIAHTML5.API.Models.Users.getLicenseDetails(userInfo.LicenseId); - - if (userInfo.LicenseInfo.Id > 0) - { - //05.4 - userInfo.LicenseSubscriptions = AIAHTML5.API.Models.Users.getLicenseSubscriptionDetails(userInfo.LicenseId); - - //05.5 check the License expiration irespective of either user is active or not because on AIA - //we shows the License expiration message for inactive users too - string expirationDate = null; - bool isLicenseExpired = false; - - if (userInfo.LicenseSubscriptions.Id > 0) - { - isLicenseExpired = AIAHTML5.API.Models.Users.checkIfLicenseExpired(userInfo.LicenseSubscriptions, out expirationDate); - } - // send message to the UI for license expiration - //05.6 Check for subscription Expiration [Promoted for case if license inactive along with subscription expired] - if (isLicenseExpired) - { - userInfo.IsSubscriptionExpired = isLicenseExpired; - userInfo.SubscriptionExpirationDate = expirationDate; - } - else - { - //05.6.1 - if (userInfo.LicenseInfo.IsActive) - { - if (!userInfo.LicenseInfo.IsTermAccepted) - { - ArrayList termsList = AIAHTML5.API.Models.Users.getTermsOfServiceText(); - foreach (Hashtable item in termsList) - { - userInfo.TermsOfServiceTitle = item[AIAConstants.KEY_TITLE].ToString(); - userInfo.TermsOfServiceText = item[AIAConstants.KEY_CONTENT].ToString(); - } - } - else - { - userInfo.Modules = AIAHTML5.API.Models.Users.getModuleListByLicenseId(userInfo.LicenseId); - - //Insert user login detail - AIAHTML5.API.Models.Users.insertLoginDetails(userInfo.Id); - } - } - else - { - //05.6.1.1 - // return message of license inactive - // property value assigned. Separate return statement not required - - } - } - } - } - } - else - { - int wrongAttemptDeteledCount = AIAHTML5.API.Models.Users.deletePastWrongAttempts(userInfo.Id); - if (wrongAttemptDeteledCount < 0) - { - logger.Fatal("Unable to delete past wrong login attempts for userId= " + userInfo.Id); - } - - // send message back to th UI that password is incorrect - userInfo.IsCorrectPassword = false; - - //get wrong attempt count of user - userInfo.IncorrectLoginAttemptCount = AIAHTML5.API.Models.Users.checkNoOfWrongAttempts(userInfo.Id) + 1; - userInfo.LoginFailureCauseId = ErrorHelper.E_PASSWORD_NOT_MATCH; - - //01. insert wrong attempt in dtabase - int updateCount = AIAHTML5.API.Models.Users.saveWrongAttemptofUser(userInfo.Id); - - if (updateCount < 0) - { - //Put the log in log file - logger.Fatal("Unable to Update past wrong login attempts for userId= " + userInfo.Id); - } - else - { - if (userInfo.IncorrectLoginAttemptCount > 4) - { - userInfo.IsBlocked = true; - userInfo.LoginFailureCauseId = ErrorHelper.E_USER_ID_BLOCKED_24_HRS; - } - } - - } - - } - else - { - userInfo.IsBlocked = true; - } - } - - else - { - - //bool isCorrectLoginId, isCorrectPassword; - //AIAHTML5.API.Models.Users.isCredentialCorrect(credentials, out isCorrectLoginId, out isCorrectPassword); - - //below code commented as way of retrieving data changed 'very first line in this method' - //if (!isCorrectLoginId) - //{ - // // send message back to th UI that login id is incorrect - // authenticationRepsonse = AIAConstants.USER_NOT_FOUND; - //} - //else - //{ - if (!isCorrectPassword) - { - // send message back to th UI that password is incorrect - userInfo.IsCorrectPassword = false; - - //get wrong attempt count of user - userInfo.IncorrectLoginAttemptCount = AIAHTML5.API.Models.Users.checkNoOfWrongAttempts(userInfo.Id) + 1; - userInfo.LoginFailureCauseId = ErrorHelper.E_PASSWORD_NOT_MATCH; - - //01. insert wrong attempt in dtabase - int updateCount = AIAHTML5.API.Models.Users.saveWrongAttemptofUser(userInfo.Id); - - if (updateCount < 0) - { - //Put the log in log file - logger.Fatal("Unable to Update past wrong login attempts for userId= " + userInfo.Id); - } - else - { - if (userInfo.IncorrectLoginAttemptCount > 4) - { - userInfo.IsBlocked = true; - userInfo.LoginFailureCauseId = ErrorHelper.E_USER_ID_BLOCKED_24_HRS; - } - } - } - } - // unreachable code detected as license is null - //if (userInfo.License != null && !string.IsNullOrEmpty(userInfo.License.AccountNumber)) - //{ - // int result = AIAHTML5.API.Models.Users.insertUserLoginLog(userInfo.License.AccountNumber, userInfo.LoginFailureCauseId, null, userInfo.EditionId.ToString(), null); - // if (result < 0) - // logger.Fatal("Unable to insert wrong attempt detail in UserLoginLog table for accountNumber= " + userInfo.License.AccountNumber); - //} - - authenticationRepsonse = JsonConvert.SerializeObject(userInfo); - //} - } - } - else - { - authenticationRepsonse = AIAConstants.USER_NOT_FOUND; - } - } - catch (Exception e) - { - - logger.Fatal("Exception occured for loginId =" + credentials["username"].ToString() + " and password= " + credentials["password"].ToString() + "Exception= " + e.Message + ", STACKTRACE: " + e.StackTrace); - - ArrayList supportMailList = UserUtility.GetSupportMailList(); - string mailSubject = "SQL Exception intimation mail"; - string mailBody = "MESSAGE: " + e.Message + ", STACKTRACE: " + e.StackTrace; - UserUtility.SendEmail(credentials, supportMailList, "", mailSubject, mailBody); - - authenticationRepsonse = AIAConstants.SQL_CONNECTION_ERROR; - } - - return new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(authenticationRepsonse) }; - } - - - // PUT api/authenticate/5 - public void Put(int id, [FromBody]string value) - { - } - - // DELETE api/authenticate/5 - public void Delete(int id) - { - } - } -} \ No newline at end of file