Exemplo n.º 1
0
        private Boolean AddAuthentication(Person person, dtoBaseProfile profile, dtoImportSettings settings, ProfileAttributesRow row, AuthenticationProvider provider)
        {
            Boolean result = false;

            if (provider.ProviderType == AuthenticationProviderType.Internal)
            {
                InternalLoginInfo info = InternalService.GenerateUserInfo(person, profile.Login, profile.Password, (InternalAuthenticationProvider)provider, false);
                result = (info != null);
            }
            else
            {
                dtoExternalCredentials credentials = new dtoExternalCredentials();
                if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft((int)provider.IdentifierFields, (int)IdentifierField.longField))
                {
                    long identifierLong = 0;
                    long.TryParse(row.GetCellValue(ProfileAttributeType.externalId), out identifierLong);
                    credentials.IdentifierLong = identifierLong;
                }
                if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft((int)provider.IdentifierFields, (int)IdentifierField.stringField))
                {
                    credentials.IdentifierString = row.GetCellValue(ProfileAttributeType.externalId);
                }

                if (UrlService.VerifyDuplicateExternalLoginInfo(person, provider, credentials) == ProfilerError.none)
                {
                    ExternalLoginInfo externaLogin = UrlService.AddExternalProfile(person, provider, credentials);
                    result = (externaLogin != null);
                }
            }
            return(result);
        }