Пример #1
0
def user_icla_check(user: User, project_id: str, signature: Signature, latest_major_version=True) -> bool:
    cla.log.debug(f'ICLA signature found for user: {user} on project: {project_id}, '
                  f'signature_id: {signature.get_signature_id()}')

    # Here's our logic to determine if the signature is valid
    if latest_major_version:  # Ensure it's latest signature.
        project = get_project_instance()
        project.load(str(project_id))
        document_models = project.get_project_individual_documents()
        major, _ = get_last_version(document_models)
        if signature.get_signature_document_major_version() != major:
            cla.log.debug(f'User: {user} only has an old document version signed '
                          f'(v{signature.get_signature_document_major_version()}) - needs a new version')
            return False

    if signature.get_signature_signed() and signature.get_signature_approved():
        # Signature found and signed/approved.
        cla.log.debug(f'User: {user} has ICLA signed and approved signature_id: {signature.get_signature_id()} '
                      f'for project: {project_id}')
        return True
    elif signature.get_signature_signed():  # Not approved yet.
        cla.log.debug(f'User: {user} has ICLA signed with signature_id: {signature.get_signature_id()}, '
                      f'project: {project_id}, but has not been approved yet')
        return False
    else:  # Not signed or approved yet.
        cla.log.debug(f'User: {user} has ICLA with signature_id: {signature.get_signature_id()}, '
                      f'project: {project_id}, but has not been signed or approved yet')
        return False
Пример #2
0
def user_ccla_check(user: User, project_id: str, signature: Signature) -> bool:
    cla.log.debug(f'CCLA signature found for user: {user} on project: {project_id}, '
                  f'signature_id: {signature.get_signature_id()}')

    if signature.get_signature_signed() and signature.get_signature_approved():
        cla.log.debug(f'User: {user} has a signed and approved CCLA for project: {project_id}')
        return True

    if signature.get_signature_signed():
        cla.log.debug(f'User: {user} has CCLA signed with signature_id: {signature.get_signature_id()}, '
                      f'project: {project_id}, but has not been approved yet')
        return False
    else:  # Not signed or approved yet.
        cla.log.debug(f'User: {user} has CCLA with signature_id: {signature.get_signature_id()}, '
                      f'project: {project_id}, but has not been signed or approved yet')
        return False