def has_role(self, identifiers, required_role_s):
identifier = identifiers.primary_identifier<EOL>assigned_role_s = self.get_authzd_roles(identifier)<EOL>if not assigned_role_s:<EOL><INDENT>msg = '<STR_LIT>'.format(identifier)<EOL>logger.warning(msg)<EOL>for role in required_role_s:<EOL><INDENT>yield (role, False)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>for role in required_role_s:<EOL><INDENT>hasrole = ({role} <= assigned_role_s)<EOL>yield (role, hasrole)<EOL><DEDENT><DEDENT>
Confirms whether a subject is a member of one or more roles.

If the authorization info cannot be obtained from the accountstore,
role check tuple yields False.

:type identifiers:  subject_abcs.IdentifierCollection

:param required_role_s: a collection of 1..N Role identifiers
:type required_role_s: Set of String(s)

:yields: tuple(role, Boolean)