Also move QueuingEventDispatcher to the core project since it has 0 external references, and could be cut and pasted with 0 errors.
78 lines
2.6 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|