public Crtsasoofromifs CreateSASOOFromIFS(Crtsasoofromifs crtsasoofromifs) { var result = new Crtsasoofromifs(); var pdcrtsasoofromifs = new pdcrtsasoofromifsDataSet(); DataRow ttblcrtsasoofromifsCriteria = pdcrtsasoofromifs.ttblcrtsasoofromifs.NewttblcrtsasoofromifsRow(); Crtsasoofromifs.UpdateRowFromCrtsasoofromifs(ref ttblcrtsasoofromifsCriteria, crtsasoofromifs); pdcrtsasoofromifs.ttblcrtsasoofromifs.AddttblcrtsasoofromifsRow((pdcrtsasoofromifsDataSet.ttblcrtsasoofromifsRow)ttblcrtsasoofromifsCriteria); string cErrorMessage = string.Empty; NLogLoggerP.Trace("CreateSASOOFromIFS - Login - Before Call"); StopwatchUtil.Time( () => { using (var poLoginproxy = this.proxyAppObject.CreatePO_loginproxy()) { this.SetRequiredContextParameters(); poLoginproxy.CreateSASOOFromIFS(ref pdsContext, ref pdcrtsasoofromifs, out cErrorMessage); } }); NLogLoggerP.Info("CreateSASOOFromIFS - Login - After Call"); this.ReportErrors(cErrorMessage); this.ReportErrors(this.pdsContext); this.ReportErrors(pdcrtsasoofromifs); if (pdcrtsasoofromifs.ttblcrtsasoofromifs.Count > 0) { result = Crtsasoofromifs.BuildCrtsasoofromifsFromRow(pdcrtsasoofromifs.ttblcrtsasoofromifs[0]); } return(result); }
public Crtsasoofromifs CreateSasooFromIfs(Crtsasoofromifs crtsasoofromifs) { var result = new Crtsasoofromifs(); var pdcrtsasoofromifs = new pdcrtsasoofromifsDataSet(); DataRow ttblcrtsasoofromifsCriteria = pdcrtsasoofromifs.ttblcrtsasoofromifs.NewttblcrtsasoofromifsRow(); Crtsasoofromifs.UpdateRowFromCrtsasoofromifs(ref ttblcrtsasoofromifsCriteria, crtsasoofromifs); pdcrtsasoofromifs.ttblcrtsasoofromifs.AddttblcrtsasoofromifsRow((pdcrtsasoofromifsDataSet.ttblcrtsasoofromifsRow)ttblcrtsasoofromifsCriteria); StopwatchUtil.Time( () => { _poLoginproxy.CreateSASOOFromIFS(ref this._pdsContext, ref pdcrtsasoofromifs, out var cErrorMessage); if (pdcrtsasoofromifs.ttblcrtsasoofromifs.Count > 0) { result = Crtsasoofromifs.BuildCrtsasoofromifsFromRow(pdcrtsasoofromifs.ttblcrtsasoofromifs[0]); } result.cErrorMessage = cErrorMessage; }); _nLogLoggerP.Trace("CreateSASOOFromIFS"); return(result); }
public Crtsasoofromifs CreateSASOOFromIFS(Crtsasoofromifs crtsasoofromifs) { return(this.loginAdapter.CreateSasooFromIfs(crtsasoofromifs)); }
public Crtsasoofromifs CreateSASOOFromIFS(Crtsasoofromifs crtsasoofromifs) { return(this.adapter.CreateSASOOFromIFS(crtsasoofromifs)); }
public Crtsasoofromifs CreateSASOOFromIFS(Crtsasoofromifs crtsasoofromifs) { return(this.repository.CreateSASOOFromIFS(crtsasoofromifs)); }
public PreLoginResults PreLogin(string host) { var preLoginResults = new PreLoginResults(); var claimsAndLoginObject = new ClaimsAndLoginObject(new ProgressConfiguration()); var logTenant = !string.IsNullOrEmpty(claimsAndLoginObject.DeveloperLogin) ? claimsAndLoginObject.DeveloperTenant : claimsAndLoginObject.Tenant; var logUser = !string.IsNullOrEmpty(claimsAndLoginObject.DeveloperLogin) ? claimsAndLoginObject.DeveloperLogin : claimsAndLoginObject.Identity; var nLogger = new NLogLogger( logTenant, logUser, 0, new Guid(), "PreLogin", host); nLogger.Info("Start", "PreLogin"); ReportErrors(nLogger, claimsAndLoginObject.LoggingEMessages, claimsAndLoginObject.LoggingIMessages, claimsAndLoginObject.LoggingWMessages); if (claimsAndLoginObject.InvalidLogin) { var errorCode = LoginErrorEnums.Unknown; if (claimsAndLoginObject.LoggingEMessages.Any()) { errorCode = claimsAndLoginObject.LoggingEMessages.First().Value; } RejectLogin(nLogger, "Unauthorized", errorCode); return(new PreLoginResults { LoginMode = PreLoginModes.Unauthorized }); } if (claimsAndLoginObject.SsoEnabled || !string.IsNullOrEmpty(claimsAndLoginObject.DeveloperLogin)) { var loginUser = logUser + (claimsAndLoginObject.MultiTenant ? "/" : string.Empty) + logTenant; nLogger.Info("Before Login", "PreLogin"); var loginInternalResult = this._loginRepository.Login(loginUser, this._ssoFirst, 0, string.Empty, true, !claimsAndLoginObject.MultiTenant); nLogger.Info("After Login", "PreLogin"); if (!loginInternalResult.availUsers.Any()) { // Login did not return valid users if (claimsAndLoginObject.AutoProvisionEnabled) { // Try an autoprovision nLogger.Debug( $"Auto Provision Called ifsuser-{claimsAndLoginObject.Identity} tenantid-{claimsAndLoginObject.Tenant} emailaddr-{claimsAndLoginObject.IfsEmail} firstname-{claimsAndLoginObject.IfsGivenName} lastname-{claimsAndLoginObject.IfsLastName} aecompanies-{claimsAndLoginObject.IfsAccountingEntities} securityroles-{claimsAndLoginObject.IfsSecurity}"); var provisionRecord = new Crtsasoofromifs { ifsuser = loginUser, aecompanies = claimsAndLoginObject.IfsAccountingEntities, firstname = claimsAndLoginObject.IfsGivenName, lastname = claimsAndLoginObject.IfsLastName, emailaddr = claimsAndLoginObject.IfsEmail, securityroles = claimsAndLoginObject.IfsSecurity, tenantid = claimsAndLoginObject.Tenant }; var provisionResult = this._loginRepository.CreateSASOOFromIFS(provisionRecord); if (!string.IsNullOrEmpty(provisionResult.cErrorMessage)) { RejectLogin(nLogger, $"Auto Provision Failed - {provisionResult.cErrorMessage}", LoginErrorEnums.AutoProvisionFailed); return(new PreLoginResults { LoginMode = PreLoginModes.Unauthorized }); } // Try a first stage login again loginInternalResult = this._loginRepository.Login(loginUser, this._ssoFirst, 0, string.Empty, true, !claimsAndLoginObject.MultiTenant); if (!loginInternalResult.availUsers.Any()) { // Reject login as no users found. RejectLogin(nLogger, string.Format( $"Login did not return any valid user company combinations - {loginInternalResult.ErrorMessage} - Auto Provison was run"), LoginErrorEnums.NoUsersReturnedAfterAutoProvision); return(new PreLoginResults { LoginMode = PreLoginModes.Unauthorized }); } } else { // Reject login as no users found. RejectLogin(nLogger, string.Format( $"Login did not return any valid user company combinations - {loginInternalResult.ErrorMessage}"), LoginErrorEnums.NoCombinationOfUsersPassedBack); return(new PreLoginResults { LoginMode = PreLoginModes.Unauthorized }); } } // If we have reached this stage - we have at least one login unless we have LASTCONO record only. var lastCono = 0; preLoginResults.AvailableLogin = new List <AvailUsers>(); foreach (var availUser in loginInternalResult.availUsers) { nLogger.Debug("Populate Each User", "PreLogin"); if (availUser.availuser == "LASTCONO") { nLogger.Debug("Populate Each User - Last Cono", "PreLogin"); lastCono = availUser.availcono; } else { nLogger.Debug("Populate Each User - Add", "PreLogin"); preLoginResults.AvailableLogin.Add(availUser); } } if (!preLoginResults.AvailableLogin.Any()) { // Reject login as no users found. RejectLogin(nLogger, string.Format( $"Login did not return any valid user company combinations - {loginInternalResult.ErrorMessage}"), LoginErrorEnums.NoCombinationOfUsersPassedBack); return(new PreLoginResults { LoginMode = PreLoginModes.Unauthorized }); } nLogger.Debug("Before Set Default", "PreLogin"); foreach (var user in preLoginResults.AvailableLogin) { if (user.availcono == lastCono) { nLogger.Debug("Last Cono Set", "PreLogin"); preLoginResults.DefaultLogin = user.DisplayValue; break; } } preLoginResults.LoginMode = PreLoginModes.SSOLoginSelectFromList; } else { preLoginResults.LoginMode = claimsAndLoginObject.MultiTenant ? PreLoginModes.StandardLoginWithTenant : PreLoginModes.StandardLogin; preLoginResults.AvailableTenants = claimsAndLoginObject.ListOfTenants; } nLogger.Debug("End", "PreLogin"); return(preLoginResults); }