Files
Umbraco-CMS/src/Umbraco.Infrastructure/Services/Implement/ExternalLoginService.cs
Mole 88f7abb72e Move Deploy and Events to Umbraco.Cms.Core.*
Also move QueuingEventDispatcher to the core project since it has 0 external references, and could be cut and pasted with 0 errors.
2021-02-12 10:54:42 +01:00

78 lines
2.6 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Microsoft.Extensions.Logging;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Models.Identity;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Services;
using Umbraco.Core.Scoping;
namespace Umbraco.Core.Services.Implement
{
public class ExternalLoginService : ScopeRepositoryService, IExternalLoginService
{
private readonly IExternalLoginRepository _externalLoginRepository;
public ExternalLoginService(IScopeProvider provider, ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory,
IExternalLoginRepository externalLoginRepository)
: base(provider, loggerFactory, eventMessagesFactory)
{
_externalLoginRepository = externalLoginRepository;
}
/// <inheritdoc />
public IEnumerable<IIdentityUserLogin> GetAll(int userId)
{
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
{
var asString = userId.ToString(); // TODO: This is temp until we update the external service to support guids for both users and members
return _externalLoginRepository.Get(Query<IIdentityUserLogin>().Where(x => x.UserId == asString))
.ToList();
}
}
/// <inheritdoc />
public IEnumerable<IIdentityUserLogin> Find(string loginProvider, string providerKey)
{
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
{
return _externalLoginRepository.Get(Query<IIdentityUserLogin>()
.Where(x => x.ProviderKey == providerKey && x.LoginProvider == loginProvider))
.ToList();
}
}
/// <inheritdoc />
public void Save(int userId, IEnumerable<IExternalLogin> logins)
{
using (var scope = ScopeProvider.CreateScope())
{
_externalLoginRepository.Save(userId, logins);
scope.Complete();
}
}
/// <inheritdoc />
public void Save(IIdentityUserLogin login)
{
using (var scope = ScopeProvider.CreateScope())
{
_externalLoginRepository.Save(login);
scope.Complete();
}
}
/// <inheritdoc />
public void DeleteUserLogins(int userId)
{
using (var scope = ScopeProvider.CreateScope())
{
_externalLoginRepository.DeleteUserLogins(userId);
scope.Complete();
}
}
}
}