Fix pending member group edit rights.

This commit is contained in:
Alan Evans
2020-08-05 10:27:04 -03:00
committed by Greyson Parrelli
parent 845f6a0a93
commit b0650b926b
2 changed files with 43 additions and 18 deletions

View File

@@ -145,28 +145,15 @@ public final class LiveGroup {
fullMemberCount);
}
private LiveData<MemberLevel> selfMemberLevel() {
return Transformations.map(groupRecord, g -> {
if (g.isAdmin(Recipient.self())) {
return MemberLevel.ADMIN;
} else {
return g.isActive() ? MemberLevel.MEMBER
: MemberLevel.NOT_A_MEMBER;
}
});
private LiveData<GroupDatabase.MemberLevel> selfMemberLevel() {
return Transformations.map(groupRecord, g -> g.memberLevel(Recipient.self()));
}
private static boolean applyAccessControl(@NonNull MemberLevel memberLevel, @NonNull GroupAccessControl rights) {
private static boolean applyAccessControl(@NonNull GroupDatabase.MemberLevel memberLevel, @NonNull GroupAccessControl rights) {
switch (rights) {
case ALL_MEMBERS: return memberLevel != MemberLevel.NOT_A_MEMBER;
case ONLY_ADMINS: return memberLevel == MemberLevel.ADMIN;
case ALL_MEMBERS: return memberLevel.isInGroup();
case ONLY_ADMINS: return memberLevel == GroupDatabase.MemberLevel.ADMINISTRATOR;
default: throw new AssertionError();
}
}
private enum MemberLevel {
NOT_A_MEMBER,
MEMBER,
ADMIN
}
}