Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public Crtsasoofromifs CreateSASOOFromIFS(Crtsasoofromifs crtsasoofromifs)
 {
     return(this.loginAdapter.CreateSasooFromIfs(crtsasoofromifs));
 }
Ejemplo n.º 4
0
 public Crtsasoofromifs CreateSASOOFromIFS(Crtsasoofromifs crtsasoofromifs)
 {
     return(this.adapter.CreateSASOOFromIFS(crtsasoofromifs));
 }
Ejemplo n.º 5
0
 public Crtsasoofromifs CreateSASOOFromIFS(Crtsasoofromifs crtsasoofromifs)
 {
     return(this.repository.CreateSASOOFromIFS(crtsasoofromifs));
 }
Ejemplo n.º 6
0
        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);
        }