diff --git a/test_oauth/verifiers.py b/test_oauth/verifiers.py index 95d97a2f586ae499c0152c3a1817f4f6c6904022..14a6c034f15facf4e88ae8678b49f3a9c11bf455 100644 --- a/test_oauth/verifiers.py +++ b/test_oauth/verifiers.py @@ -16,12 +16,27 @@ class GroupMembershipVerifier(Verifier): def valid(self, groups, **kwargs): for g in groups: - if g['id'] == self.group: + if g["id"] == self.group: return True return False +class AnyGroupMembershipVerifier(Verifier): + message = "You are not in the correct groups to log in to this site." + + def valid(self, groups, **kwargs): + return any([g["id"] in self.groups for g in groups]) + + class TESTMembershipVerifier(GroupMembershipVerifier): message = "You are not in TEST so you are not allowed to log in." group = 6 + + +class TESTAlliesMembershipVerifier(AnyGroupMembershipVerifier): + message = ( + "You are not in TEST or an ally of TEST so you are not allowed to " + "log in." + ) + groups = [6, 26]