GetAllIds for Roles (#7806)
This commit is contained in:
@@ -11,6 +11,9 @@ namespace Umbraco.Core.Services
|
|||||||
IEnumerable<string> GetAllRoles();
|
IEnumerable<string> GetAllRoles();
|
||||||
IEnumerable<string> GetAllRoles(int memberId);
|
IEnumerable<string> GetAllRoles(int memberId);
|
||||||
IEnumerable<string> GetAllRoles(string username);
|
IEnumerable<string> GetAllRoles(string username);
|
||||||
|
IEnumerable<int> GetAllRolesIds();
|
||||||
|
IEnumerable<int> GetAllRolesIds(int memberId);
|
||||||
|
IEnumerable<int> GetAllRolesIds(string username);
|
||||||
IEnumerable<T> GetMembersInRole(string roleName);
|
IEnumerable<T> GetMembersInRole(string roleName);
|
||||||
IEnumerable<T> FindMembersInRole(string roleName, string usernameToMatch, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith);
|
IEnumerable<T> FindMembersInRole(string roleName, string usernameToMatch, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith);
|
||||||
bool DeleteRole(string roleName, bool throwIfBeingUsed);
|
bool DeleteRole(string roleName, bool throwIfBeingUsed);
|
||||||
|
|||||||
@@ -331,7 +331,7 @@ namespace Umbraco.Core.Services.Implement
|
|||||||
saveEventArgs.CanCancel = false;
|
saveEventArgs.CanCancel = false;
|
||||||
scope.Events.Dispatch(Saved, this, saveEventArgs);
|
scope.Events.Dispatch(Saved, this, saveEventArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (withIdentity == false)
|
if (withIdentity == false)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -816,8 +816,8 @@ namespace Umbraco.Core.Services.Implement
|
|||||||
{
|
{
|
||||||
//trimming username and email to make sure we have no trailing space
|
//trimming username and email to make sure we have no trailing space
|
||||||
member.Username = member.Username.Trim();
|
member.Username = member.Username.Trim();
|
||||||
member.Email = member.Email.Trim();
|
member.Email = member.Email.Trim();
|
||||||
|
|
||||||
using (var scope = ScopeProvider.CreateScope())
|
using (var scope = ScopeProvider.CreateScope())
|
||||||
{
|
{
|
||||||
var saveEventArgs = new SaveEventArgs<IMember>(member);
|
var saveEventArgs = new SaveEventArgs<IMember>(member);
|
||||||
@@ -971,6 +971,35 @@ namespace Umbraco.Core.Services.Implement
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerable<int> GetAllRolesIds()
|
||||||
|
{
|
||||||
|
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||||
|
{
|
||||||
|
scope.ReadLock(Constants.Locks.MemberTree);
|
||||||
|
return _memberGroupRepository.GetMany().Select(x => x.Id).Distinct();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<int> GetAllRolesIds(int memberId)
|
||||||
|
{
|
||||||
|
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||||
|
{
|
||||||
|
scope.ReadLock(Constants.Locks.MemberTree);
|
||||||
|
var result = _memberGroupRepository.GetMemberGroupsForMember(memberId);
|
||||||
|
return result.Select(x => x.Id).Distinct();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<int> GetAllRolesIds(string username)
|
||||||
|
{
|
||||||
|
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||||
|
{
|
||||||
|
scope.ReadLock(Constants.Locks.MemberTree);
|
||||||
|
var result = _memberGroupRepository.GetMemberGroupsForMember(username);
|
||||||
|
return result.Select(x => x.Id).Distinct();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<IMember> GetMembersInRole(string roleName)
|
public IEnumerable<IMember> GetMembersInRole(string roleName)
|
||||||
{
|
{
|
||||||
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
|
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
|
||||||
@@ -1241,7 +1270,7 @@ namespace Umbraco.Core.Services.Implement
|
|||||||
/// Exports a member.
|
/// Exports a member.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// This is internal for now and is used to export a member in the member editor,
|
/// This is internal for now and is used to export a member in the member editor,
|
||||||
/// it will raise an event so that auditing logs can be created.
|
/// it will raise an event so that auditing logs can be created.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
internal MemberExportModel ExportMember(Guid key)
|
internal MemberExportModel ExportMember(Guid key)
|
||||||
|
|||||||
@@ -197,7 +197,17 @@ namespace Umbraco.Tests.Services
|
|||||||
|
|
||||||
Assert.AreEqual(3, found.Count());
|
Assert.AreEqual(3, found.Count());
|
||||||
}
|
}
|
||||||
|
[Test]
|
||||||
|
public void Can_Get_All_Roles_IDs()
|
||||||
|
{
|
||||||
|
ServiceContext.MemberService.AddRole("MyTestRole1");
|
||||||
|
ServiceContext.MemberService.AddRole("MyTestRole2");
|
||||||
|
ServiceContext.MemberService.AddRole("MyTestRole3");
|
||||||
|
|
||||||
|
var found = ServiceContext.MemberService.GetAllRolesIds();
|
||||||
|
|
||||||
|
Assert.AreEqual(3, found.Count());
|
||||||
|
}
|
||||||
[Test]
|
[Test]
|
||||||
public void Can_Get_All_Roles_By_Member_Id()
|
public void Can_Get_All_Roles_By_Member_Id()
|
||||||
{
|
{
|
||||||
@@ -216,7 +226,24 @@ namespace Umbraco.Tests.Services
|
|||||||
Assert.AreEqual(2, memberRoles.Count());
|
Assert.AreEqual(2, memberRoles.Count());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
[Test]
|
||||||
|
public void Can_Get_All_Roles_Ids_By_Member_Id()
|
||||||
|
{
|
||||||
|
IMemberType memberType = MockedContentTypes.CreateSimpleMemberType();
|
||||||
|
ServiceContext.MemberTypeService.Save(memberType);
|
||||||
|
IMember member = MockedMember.CreateSimpleMember(memberType, "test", "test@test.com", "pass", "test");
|
||||||
|
ServiceContext.MemberService.Save(member);
|
||||||
|
|
||||||
|
ServiceContext.MemberService.AddRole("MyTestRole1");
|
||||||
|
ServiceContext.MemberService.AddRole("MyTestRole2");
|
||||||
|
ServiceContext.MemberService.AddRole("MyTestRole3");
|
||||||
|
ServiceContext.MemberService.AssignRoles(new[] { member.Id }, new[] { "MyTestRole1", "MyTestRole2" });
|
||||||
|
|
||||||
|
var memberRoles = ServiceContext.MemberService.GetAllRolesIds(member.Id);
|
||||||
|
|
||||||
|
Assert.AreEqual(2, memberRoles.Count());
|
||||||
|
|
||||||
|
}
|
||||||
[Test]
|
[Test]
|
||||||
public void Can_Get_All_Roles_By_Member_Username()
|
public void Can_Get_All_Roles_By_Member_Username()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user