I've implemented my owm membership/role provider and also my own IMemberGroupService by registering it in a composer like so:
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
public class MembersComposer : IUserComposer
{
public void Compose(Composition composition)
{
composition.RegisterUnique<IMemberGroupService, DEMemberGroupService>();
}
}
And a my test implementation of that service:
public class DEMemberGroupService : IMemberGroupService
{
public IEnumerable<IMemberGroup> GetAll()
{
var memberGroups = new List<MemberGroup>();
memberGroups.Add(new MemberGroup
{
Name = "DE Medlem",
Id = 0
});
return memberGroups;
}
public IMemberGroup GetById(int id)
{
return GetAll().FirstOrDefault(x => x.Id == id);
}
public IEnumerable<IMemberGroup> GetByIds(IEnumerable<int> ids)
{
return ids.Select(GetById);
}
public IMemberGroup GetByName(string name)
{
return GetAll().FirstOrDefault(x => x.Name == name);
}
public void Save(IMemberGroup memberGroup, bool raiseEvents = true)
{
throw new NotImplementedException();
}
public void Delete(IMemberGroup memberGroup)
{
throw new NotImplementedException();
}
}
Now when i go to "Members -> Member Groups" i see my "DE Medlem" group just fine.
But when i go to set "Public access" on content and choose to set "Group based", i get:
You need to create a member group before you can use group based authentication
Also the response from /umbraco/backoffice/UmbracoApi/MemberGroup/GetAllGroups looks a bit funny, but might be unrelated.
)]}',
[]
Any ideas?