PersonalData:
- Name, LastName
- IDNumber
- LocationData
- OnlineID
- PhysicalInfos
- PhysiologicalInfos
- GeneticInfos
- MentalInfos
- EconomicInfos
- CulturalInfos


#art 5
#b -e
ALLOW SCHEMA PersonalData
    AND (PURPOSE BusinessPurpose OR PURPOSE PublicInterest OR PURPOSE ScientificResearch OR PURPOSE HistoricalResearch)
# AND FILTER (DateCollection - CurrentDate) <= TimeLimit
#d
ALLOW SCHEMA PersonalData
    AND FILTER CorrectInfos == 'N'
    AND (PURPOSE DeleteData OR PURPOSE ModificationData)
#f
ALLOW SCHEMA PersonalData
    AND PRIVACY Anonymization

#art 6
#1.a with also age check
ALLOW SCHEMA PersonalData
    AND FILTER ConsentProcessing == 'Y' AND FILTER Age >= 16
    AND PURPOSE Processing
#1.b
ALLOW SCHEMA PersonalData
    AND PURPOSE Processing AND PURPOSE BusinessPurpose
#1.e
ALLOW SCHEMA PersonalData
    AND PURPOSE Processing AND PURPOSE PublicInterest
    AND ROLE Controller

#3+ 1.C-D
ALLOW SCHEMA PersonalData
    AND (ROLE PublicAuthority OR ROLE LegalAuthority)
    AND PURPOSE Processing

#art 7
ALLOW SCHEMA PersonalData
    AND FILTER ConsentProcessing == 'Y' AND FILTER GuardianConsent == 'Y'
    AND FILTER Age < 16 AND FILTER Age >= 13
    AND PURPOSE Processing


#art 9
#2.a
ALLOW SCHEMA PDIdentifiable
    AND FILTER ConsentProcessingIdentifiable == 'Y'
    AND PURPOSE BusinessPurpose
#2.b
ALLOW SCHEMA PDIdentifiable
    AND FILTER ConsentProcessingIdentifiable == 'Y'
    AND PURPOSE Processing AND ( PURPOSE EmploymentPurpose OR PURPOSE SocialSecurity OR PURPOSE SocialProtection)
    AND ROLE Controller

#2.d
ALLOW SCHEMA PDIdentifiable
    AND PURPOSE Processing AND (PURPOSE PoliticalPurpose OR PURPOSE PhilosophicalPurpose OR PURPOSE ReligiousPurpose OR PURPOSE TradeUnionPurpose)
    AND ROLE NonProfit

#2.e
ALLOW SCHEMA PublicPersonalData
    AND PURPOSE Processing

#2.f
ALLOW SCHEMA PDIdentifiable
    AND PURPOSE Processing AND PURPOSE LegalPurpose

#2.h
ALLOW SCHEMA PDIdentifiable
    AND PURPOSE Processing AND PURPOSE MedicalPurpose

#2.j
ALLOW SCHEMA PDIdentifiable
    AND PURPOSE Processing AND (PURPOSE PublicInterest OR PURPOSE ScientificPurpose OR PURPOSE HistoricalResearchPurpose)

#art 10
ALLOW SCHEMA CriminalData
    AND ROLE OfficialAuthority


#art 14
ALLOW ROLE DataSubjectId
    AND SCHEMA ControllerID, ControllerRepresentative, ContactDataProtection

#art 15 3
ALLOW (ROLE Controller OR ROLE Processor)
    AND SCHEMA PersonalData
    AND PURPOSE Processing
    AND FILTER RequestProcessing == 'Y'

#art 16
ALLOW ROLE DataSubjectID
    AND SCHEMA PersonalData
    AND FILTER RequestRectification == 'Y' AND FILTER DataSubjectID == n

#art17 1
ALLOW (ROLE Controller OR ROLE Processor)
    AND FILTER DataSubjectID == n AND (FILTER RequestDeletion == 'Y' OR FILTER RequestProcessing == 'N')
    AND PURPOSE DeletionData

#art 20
ALLOW ROLE DataSubjectID
    AND SCHEMA PersonalData
    AND FILTER RequestDisclosure == 'Y' AND FILTER DataSubjectID == n

#art 21 3
ALLOW (ROLE Controller OR ROLE Processor)
    AND SCHEMA PersonalData
    AND (PURPOSE Processing AND PURPOSE DirectMarketingPurpose)
    AND FILTER ConsentProcessing == 'Y' AND FILTER ConsentDirectMarketing == 'Y'

#art 25
ALLOW ROLE Controller
    AND SCHEMA PersonalData
    AND (PURPOSE Retention OR PURPOSE BusinessPurpose OR PURPOSE Sell OR PURPOSE Share OR PURPOSE Processing)
    AND PRIVACY Anonymization

ALLOW ROLE Processor
    AND SCHEMA PersonalData
    AND PURPOSE Processing
    AND PRIVACY Anonymization

#art 38-39
ALLOW ROLE DataProtectionOfficer
    AND SCHEMA PersonalData
    AND PRIVACY Anonymization
    AND PURPOSE MonitorProtection

#art 44-46.1
ALLOW (ROLE ThirdCountry OR ROLE InternationalOrg)
    AND SCHEMA PersonalData
    AND PURPOSE Transfer
    AND FILTER PRIVACY Anonymization

#art 49
#1
ALLOW (ROLE ThirdCountry OR ROLE InternationalOrg)
    AND SCHEMA PersonalData
    AND PURPOSE Transfer
    AND (FILTER ConsentTransfer == 'Y'
    #1.b-c
    OR PURPOSE BusinessPurpose
    #1.d
    OR PURPOSE PublicInterest
    #1.e
    OR PURPOSE LegalPurpose)

#1.g-2 ?

#art 58
ALLOW ROLE SupervisoryAuthority
    SCHEMA PersonalData
    PURPOSE SupervisionPurpose