Esempio n. 1
0
class ConstantsActiveDirectory(Constants.Constants):
    """ AD constants for the old AD-sync.

    Should be removed when everyone has migrated to the AD sync from 2013.

    """

    # FIXME: This Constants-class will eventually be moved to an AD-modul.
    # Jazz, 2009-03-18
    system_ad = _AuthoritativeSystemCode('AD',
                                         'Information from Active Directory')

    externalid_groupsid = _EntityExternalIdCode(
        'AD_GRPSID', Constants.Constants.entity_group,
        "Group's SID, fetched from Active Directory")
    externalid_accountsid = _EntityExternalIdCode(
        'AD_ACCSID', Constants.Constants.entity_account,
        "Account's SID, fetched from Active Directory")
    trait_exchange_mdb = _EntityTraitCode(
        'exchange_mdb', Constants.Constants.entity_account,
        "The assigned mailbox-database in Exchange for the given account.")
    # traits used to "exempt" entities from being exported to AD2
    trait_account_exempt = _EntityTraitCode(
        'account_exempt', Constants.Constants.entity_account,
        'Exempt the given account from being exported')
    trait_group_exempt = _EntityTraitCode(
        'group_exempt', Constants.Constants.entity_group,
        'Exempt the given group from being exported')
Esempio n. 2
0
class ConstantsActiveDirectory(Constants):
    """Constants for the Active Directory module, including the basic set of
    AD-attributes that we could administrate.

    Note that some attributes could be administered by the AD-sync, but is based
    on other information in Cerebrum. Surname, DisplayName and GivenName are
    such examples - they all use information from L{person_name}, which is taken
    care of by the AD-sync. Such attributes are therefore not necessary to store
    in the attribute table, at least in general - some instaces might have
    special needs.

    """
    system_ad = _AuthoritativeSystemCode('AD',
                                         'Information from Active Directory')
    externalid_groupsid = _EntityExternalIdCode(
        'AD_GRPSID', Constants.entity_group,
        "Group's SID, fetched from Active Directory")
    externalid_accountsid = _EntityExternalIdCode(
        'AD_ACCSID', Constants.entity_account,
        "Account's SID, fetched from Active Directory")

    trait_exchange_mdb = _EntityTraitCode(
        'exchange_mdb', Constants.entity_account,
        "The assigned mailbox-database in Exchange for the given account.")

    ### Attributes

    ad_attribute_homedir = _ADAttrCode('HomeDirectory',
                                       'HomeDirectory for an object in AD',
                                       False)

    ad_attribute_homedrive = _ADAttrCode('HomeDrive',
                                         'HomeDrive for an account in AD',
                                         False)

    ad_attribute_scriptpath = _ADAttrCode('ScriptPath',
                                          'ScriptPath for an account in AD',
                                          False)

    # Titles should by default be stored in person_name.
    #ad_attribute_title = _ADAttrCode('Title', 'Title for an account in AD',
    #                                 False)

    # Mail is either handled by its own module, or it is stored as contact_info
    #ad_attribute_mail = _ADAttrCode('Mail', 'Mail address for an account in AD',
    #                                 False)

    # TODO: should we make group scope (global/universal) and group category
    # (security/distribution) be set through attributes?

    ADAttribute = _ADAttrCode
Esempio n. 3
0
class Constants(Constants.Constants):
    ## employees - affiliation definition
    affiliation_ansatt = _PersonAffiliationCode('ANSATT', 'Ansatt ved HiH')

    ## affiliations for others
    affiliation_manuell = _PersonAffiliationCode(
        'MANUELL', ('Tilknyttet HiH uten å være registrert i et av de'
                    ' autoritative kildesystemene'))
    affiliation_status_manuell_inaktiv = _PersonAffStatusCode(
        affiliation_manuell, 'inaktiv',
        'Person uten ekte tilknytning til HiH. Bruk med forsiktighet!')

    ## Spread definitions - user related
    # AD/Exchange Ansatte
    spread_ad_account_ans = _SpreadCode(
        'account@ad_ans', Constants.Constants.entity_account,
        'Brukeren kjent i ansattdomenet i AD ved HiH')
    spread_exchange_account_ans = _SpreadCode(
        'account@ex_ans', Constants.Constants.entity_account,
        'Exchange-enabled account i ansattdomenet ved HiH')
    # AD/Exchange Studenter
    spread_ad_account_stud = _SpreadCode(
        'account@ad_stud', Constants.Constants.entity_account,
        'Brukeren kjent i studentdomenet i AD ved HiH')
    spread_exchange_account_stud = _SpreadCode(
        'account@ex_stud', Constants.Constants.entity_account,
        'Exchange-enabled account i studentdomenet ved HiH')

    ## Spread definitions - group related
    # AD/Exchange Ansatte
    spread_ad_group_ans = _SpreadCode(
        'group@ad_ans', Constants.Constants.entity_group,
        'Gruppe kjent i ansattdomenet i AD ved HiH')
    spread_exchange_group_ans = _SpreadCode(
        'group@ex_ans', Constants.Constants.entity_group,
        'Gruppe kjent i ansattdomenet i Exchange ved HiH')
    # AD/Exchange Studenter
    spread_ad_group_stud = _SpreadCode(
        'group@ad_stud', Constants.Constants.entity_group,
        'Gruppe kjent i studentdomenet i AD ved HiH')
    spread_exchange_group_stud = _SpreadCode(
        'group@ex_stud', Constants.Constants.entity_group,
        'Gruppe kjent i studentdomenet i Exchange ved HiH')

    ## Spread definitions - person related
    spread_adgang_person = _SpreadCode(
        'person@adgang', Constants.Constants.entity_person,
        'Person kjent i adgangssystemet til HiH')
    spread_adgang_group = _SpreadCode(
        'group@adgang', Constants.Constants.entity_group,
        'Gruppe kjent i adgangssystemet til HiH')

    ## External IDs - person related
    externalid_bewatorid = _EntityExternalIdCode(
        'Bewator', Constants.Constants.entity_person, "Bewator ID for person")
Esempio n. 4
0
class Constants(Constants.Constants):
    # Org. hierarchy perspective
    perspective_ekstens = _OUPerspectiveCode('Ekstens', 'Ekstens')
    perspective_sats = _OUPerspectiveCode('SATS', 'SATS')

    # Authoritative system codes
    system_sats = _AuthoritativeSystemCode(
        'SATS', 'Personopplysninger hentet fra skolesystemet SATS')
    system_ekstens = _AuthoritativeSystemCode(
        'EKSTENS', 'Personopplysninger hentet fra skolesystemet EKSTENS')
    system_tpsys = _AuthoritativeSystemCode(
        'TPSYS', 'Personopplysninger hentet fra skolesystemet TPSYS')
    system_migrate = _AuthoritativeSystemCode(
        'MIGRATE', 'Personopplysninger hentet fra tidligere brukte systemer')

    # External ID codes
    externalid_orgnr = _EntityExternalIdCode('ORGNR',
                                             Constants.Constants.entity_ou,
                                             'Organisasjonsnummer (fra SAS)')
    # Disse kodene er det foreløpig usikkert om skal brukes
    externalid_ouid = _EntityExternalIdCode(
        'OUID', Constants.Constants.entity_ou,
        'Organisasjonens unike identifikator')
    externalid_skolenr = _EntityExternalIdCode('SKOLENR',
                                               Constants.Constants.entity_ou,
                                               'Skolenummer')
    externalid_kommunenr = _EntityExternalIdCode('KOMMNR',
                                                 Constants.Constants.entity_ou,
                                                 'Kommunenummer')
    externalid_ou_oid = _EntityExternalIdCode('OUOID',
                                              Constants.Constants.entity_ou,
                                              'OU OID')
    externalid_userid = _EntityExternalIdCode(
        'USERID', Constants.Constants.entity_person, 'Bruker ID')
    externalid_klasse = _EntityExternalIdCode('kl-ID',
                                              Constants.Constants.entity_group,
                                              'Klasse ID')
    externalid_faggruppe = _EntityExternalIdCode(
        'fg-ID', Constants.Constants.entity_group, 'Faggruppe ID')
    externalid_klassegruppe = _EntityExternalIdCode(
        'kg-ID', Constants.Constants.entity_group, 'klassegruppe ID')

    # Spread codes
    # AD
    spread_ad_acc = _SpreadCode('account@ad',
                                Constants.Constants.entity_account,
                                'Brukeren kan logge inn på Windows PC-er.')
    spread_ad_grp = _SpreadCode('group@ad', Constants.Constants.entity_group,
                                'Gruppen brukes av Active Directory.')
    spread_ad_ou = _SpreadCode('ou@ad', Constants.Constants.entity_ou,
                               'OUen brukes av Active Directory.')
    # LMS
    spread_lms_acc = _SpreadCode(
        'account@lms', Constants.Constants.entity_account,
        'Brukeren kan logge inn på LMS (f.eks. Classfronter).')
    spread_lms_grp = _SpreadCode('group@lms', Constants.Constants.entity_group,
                                 'Gruppen brukes av LMS-et.')
    spread_lms_per = _SpreadCode('person@lms',
                                 Constants.Constants.entity_person,
                                 'Person kjent i organisasjonens LMS')
    spread_lms_ou = _SpreadCode(
        'ou@lms', Constants.Constants.entity_ou,
        'Eksportere OU til LMS (f.eks. Classfronter).')
    # OID
    spread_oid_acc = _SpreadCode(
        'account@oid', Constants.Constants.entity_account,
        'Brukeren kan logge inn på webportalen (OCS).')
    spread_oid_grp = _SpreadCode('group@oid', Constants.Constants.entity_group,
                                 'Gruppen brukes av webportalen (OCS).')
    spread_oid_ou = _SpreadCode('ou@oid', Constants.Constants.entity_ou,
                                'OU-en skal eksporteres til OID.')
    # LDAP
    spread_ldap_per = _SpreadCode(
        'person@ldap', Constants.Constants.entity_person,
        'Brukeren kan benytte seg av FEIDE-innlogging.')
    spread_ldap_grp = _SpreadCode('group@ldap',
                                  Constants.Constants.entity_group,
                                  'Gruppen brukes i LDAP.')

    # Quarantine codes
    quarantine_generell = _QuarantineCode('generell', 'Generell sperring')
    # Affiliation codes
    affiliation_ansatt = _PersonAffiliationCode(
        'ANSATT', 'Personen er registrert som ansatt i SAS.')
    affiliation_status_ansatt_aktiv = _PersonAffStatusCode(
        affiliation_ansatt, 'aktiv',
        'Personen har aktiv tilsetting, registrert i SAS.')
    affiliation_elev = _PersonAffiliationCode(
        'ELEV', 'Personen er registrert som elev i SAS.')
    affiliation_status_elev_aktiv = _PersonAffStatusCode(
        affiliation_elev, 'aktiv',
        'Eleven har en aktiv tilknytning til skolen, registrert i SAS.')
    affiliation_foresatt = _PersonAffiliationCode(
        'FORESATT', 'Foresatt registrert i SAS.')
    affiliation_status_foresatt_aktiv = _PersonAffStatusCode(
        affiliation_foresatt, 'aktiv',
        'Foresatt for elev med aktiv tilknytning til skole, registrert i SAS.')
    affiliation_manuell = _PersonAffiliationCode(
        'MANUELL', 'Personen er ikke registrert i SAS.')
    affiliation_status_manuell_gjest = _PersonAffStatusCode(
        affiliation_manuell, 'gjest',
        'Personen er tilknyttet skolen som gjest.')
    affiliation_teacher = _PersonAffiliationCode('LÆRER',
                                                 'Lærer registrert i SAS.')
    affiliation_status_teacher_aktiv = _PersonAffStatusCode(
        affiliation_teacher, 'aktiv', 'Lærer aktiv ved en skole.')
    affiliation_tilknyttet = _PersonAffiliationCode(
        'TILKNYTTET', 'Personen knyttet til organisasjonen')
    affiliation_status_tilknyttet_aktiv = _PersonAffStatusCode(
        affiliation_tilknyttet, 'aktiv', 'Person aktiv ved organisasjonen.')
    affiliation_affiliate = _PersonAffiliationCode(
        'AFFILIATE', 'Personen knyttet til organisasjonen')
    affiliation_status_affiliate_aktiv = _PersonAffStatusCode(
        affiliation_affiliate, 'aktiv', 'Person aktiv ved organisasjonen.')

    # Account_type codes

    account_test = _AccountCode('test', 'Testkonto')

    # Contact_types
    # TBD: contact_job_mobile should be removed. contact_private_mobile is
    # moved to Cerebrum.Constants.CommonConstants
    contact_job_mobile = _ContactInfoCode('JOBMOBILE', 'JOBMOBILE')
    contact_private_email = _ContactInfoCode('PRIVATEEMAIL', 'PRIVATEEMAIL')

    # Mail traits
    trait_homedb_info = _EntityTraitCode(
        'homeMDB', Constants.Constants.entity_account,
        'Register Exchange homeMDB for e-mail accounts')
    trait_x400_addr = _EntityTraitCode(
        'x400address', Constants.Constants.entity_account,
        'Register old addresses for e-mail accounts')
    trait_x500_addr = _EntityTraitCode(
        'x500address', Constants.Constants.entity_account,
        'Register old addresses for e-mail accounts')

    # Traits for migrating between versions of Exchange:

    # Marking accounts that are being migrated. Such accounts should not be
    # updated in AD until the migration is done.
    trait_exchange_under_migration = _EntityTraitCode(
        'under_migration', Constants.Constants.entity_account,
        "Accounts that is under migrationt to another Exchange version.")
    # Need to differ between migrated and non-migrated accounts
    trait_exchange_migrated = _EntityTraitCode(
        'exch_migrated', Constants.Constants.entity_account,
        "Account that has been migrated to a newer Exchange version.")

    # Group traits
    trait_group_imported = _EntityTraitCode(
        'imported_group', Constants.Constants.entity_group,
        'Register last_seen date for groups imported from by ABC')
    trait_group_derived = _EntityTraitCode(
        'internal_group', Constants.Constants.entity_group,
        'Register last_seen date for internaly created groups')
    trait_group_affiliation = _EntityTraitCode(
        'aff_group', Constants.Constants.entity_group,
        'Tag groups created to become affiliation groups.')
    # tag shadow groups as "undervisningsgruppe" and "klassegruppe"
    trait_shdw_undv = _EntityTraitCode(
        'undv_group', Constants.Constants.entity_group,
        'Tag groups created to represent "undervisningsgruppe".')
    trait_shdw_kls = _EntityTraitCode(
        'kls_group', Constants.Constants.entity_group,
        'Tag groups created to represent "klassegruppe".')
    # tag affiliation based auto-groups
    trait_auto_aff = _EntityTraitCode(
        'auto_group', Constants.Constants.entity_group,
        'Tag affiliations based automatic groups.')
    # Guardianship-related traits
    trait_guardian_of = _EntityTraitCode('guardian_of',
                                         Constants.Constants.entity_person,
                                         'Register guardees for this person')
    trait_guardian_urls = _EntityTraitCode('guardian_urls',
                                           Constants.Constants.entity_person,
                                           'Register urls for this person')

    # SMS traits
    trait_sms_reminder = _EntityTraitCode('sms_reminder',
                                          Constants.Constants.entity_account,
                                          'Tagging that an SMS has been sent')
Esempio n. 5
0
class Constants(Constants.Constants):
    # Affiliations and statuses

    # Project
    affiliation_project = _PersonAffiliationCode('PROJECT',
                                                 'Member of a project')
    # Project Owner
    affiliation_status_project_owner = _PersonAffStatusCode(
        affiliation_project, 'owner', 'Project Owner')
    # Project Administrator (PA)
    affiliation_status_project_admin = _PersonAffStatusCode(
        affiliation_project, 'admin', 'Project Administrator (PA)')
    # Project Member (PM)
    affiliation_status_project_member = _PersonAffStatusCode(
        affiliation_project, 'member', 'Project Member (PM)')

    # Pending
    affiliation_pending = _PersonAffiliationCode('PENDING',
                                                 'Unapproved affiliations')
    # Pending project member (PM)
    affiliation_status_pending_project_member = _PersonAffStatusCode(
        affiliation_pending, 'member',
        'Waiting for getting accepted as a project member')

    # Spreads

    # AD
    spread_ad_account = _SpreadCode('account@ad',
                                    Constants.Constants.entity_account,
                                    'Account should be synced with AD')

    spread_file_group = _SpreadCode('filegroup',
                                    Constants.Constants.entity_group,
                                    'File group')

    spread_net_group = _SpreadCode('netgroup',
                                   Constants.Constants.entity_group,
                                   'Net group')

    spread_ad_host = _SpreadCode('host@ad', DnsConstants.entity_dns_owner,
                                 'Host that is synced with AD')

    # GW

    spread_gateway_account = _SpreadCode(
        'account@gw', Constants.Constants.entity_account,
        'Account to be synced to the gateway')

    # The gateway doesn't care about groups
    # spread_gateway_group = _SpreadCode(
    #    'group@gw', Constants.Constants.entity_group,
    #    'Group to be synced to the gateway')

    # Quarantines

    quarantine_autopassord = _QuarantineCode('autopassord',
                                             'Password out of date')
    quarantine_generell = _QuarantineCode('generell', 'General block')
    quarantine_teppe = _QuarantineCode('teppe', 'Quarantine for severe issues')

    quarantine_not_approved = _QuarantineCode(
        'not_approved', 'Waiting for approval from admin')
    quarantine_project_end = _QuarantineCode(
        'project_end', 'Blocking projects when end date is reached')
    quarantine_project_start = _QuarantineCode(
        'not_started_yet',
        "Project haven't started yet, waiting for start date")

    quarantine_frozen = _QuarantineCode('frozen', 'Project is frozen')

    quarantine_auto_frozen = _QuarantineCode('auto_frozen',
                                             'User is auto-frozen')

    # Source systems
    system_nettskjema = _AuthoritativeSystemCode(
        'Nettskjema', 'Information from Nettskjema, registered by anyone')
    system_ad = _AuthoritativeSystemCode('AD', 'Information from AD')

    # External IDs
    externalid_project_id = _EntityExternalIdCode(
        'projectid', Constants.Constants.entity_ou,
        "Project's external ID, generated by Cerebrum")

    # Traits

    trait_project_group = _EntityTraitCode('project_group',
                                           Constants.Constants.entity_group,
                                           'The project a group belongs to')
    trait_project_host = _EntityTraitCode('project_host',
                                          DnsConstants.entity_dns_owner,
                                          'The project a host belongs to')
    trait_project_subnet = _EntityTraitCode(
        'project_subnet', DnsConstants.entity_dns_subnet,
        'The project a IPv4 subnet belongs to')
    trait_project_subnet6 = _EntityTraitCode(
        'project_subnet6', DnsConstants.entity_dns_ipv6_subnet,
        'The project a IPv6 subnet belongs to')

    trait_project_vm_type = _EntityTraitCode(
        'project_vm_type', Constants.Constants.entity_ou,
        'The type of VM the project should use')

    # Traits for metadata about projects:
    trait_project_institution = _EntityTraitCode(
        'institution', Constants.Constants.entity_ou,
        'The institution the project belongs to')
    trait_project_rek = _EntityTraitCode('rek_approval',
                                         Constants.Constants.entity_ou,
                                         'The REK approval for the project')

    trait_project_persons_accepted = _EntityTraitCode(
        'accepted_persons', Constants.Constants.entity_ou,
        'FNRs of non-existing persons that has been '
        'accepted as members of the project')

    # Authentication codes (password types):

    trait_otp_device = _EntityTraitCode(
        'otp_device', Constants.Constants.entity_person,
        'The type of OTP key, e.g. hotp or '
        'totp, depending on device')

    auth_type_otp_key = _AuthenticationCode(
        'OTP-key',
        'One-Time Password key, used to be able to generate one-time'
        'passwords')

    # DNS zone
    tsd_zone = _DnsZoneCode("tsd", ".tsd.usit.no.")
    tsdv4_zone = _DnsZoneCode("tsdipv4", None)
    tsdv6_zone = _DnsZoneCode("tsdipv6", None)
Esempio n. 6
0
class ConstantsCommon(Constants.Constants):
    """ Constants that every instance should have. """
    """ Common constants for all Norwegian installations. """

    # external id definitions (NO_NIN, norwegian national id number)
    externalid_fodselsnr = _EntityExternalIdCode(
        'NO_BIRTHNO', Constants.Constants.entity_person,
        'Norwegian national ID number')

    @staticmethod
    def make_passport_number(country, passport_number):
        return '{}-{}'.format(country, passport_number)

    # External IDs related to A-melding.
    externalid_pass_number = _EntityExternalIdCode(
        'PASSNR', Constants.Constants.entity_person,
        "A persons passport number")

    externalid_social_security_number = _EntityExternalIdCode(
        'SSN', Constants.Constants.entity_person,
        "A persons social security number")

    externalid_tax_identification_number = _EntityExternalIdCode(
        'TIN', Constants.Constants.entity_person,
        "A persons tax identification number")

    externalid_value_added_tax_number = _EntityExternalIdCode(
        'VAT', Constants.Constants.entity_person,
        "A persons value added tax identification number")

    system_override = _AuthoritativeSystemCode(
        'Override', 'Override information fetched from authoritative systems')

    spread_ou_publishable = _SpreadCode(
        'publishable_ou', Constants.Constants.entity_ou,
        'OUs publishable in online directories')

    quarantine_autopassord = _QuarantineCode(
        'autopassord', 'Passord ikke skiftet trass pålegg')

    quarantine_svakt_passord = _QuarantineCode('svakt_passord',
                                               'For dårlig passord')

    trait_auto_group = _EntityTraitCode(
        'auto_group', Constants.Constants.entity_group,
        "Trait marking automatically administered groups with person members.")

    trait_auto_meta_group = _EntityTraitCode(
        'auto_meta_group', Constants.Constants.entity_group,
        "Trait marking automatically administered groups with group members.")

    trait_personal_dfg = _EntityTraitCode('personal_group',
                                          Constants.Constants.entity_group,
                                          "Group is a personal file group.")

    trait_group_entitlement = _EntityTraitCode(
        'entitlement', Constants.Constants.entity_group,
        "Trait listing entitlement that members of this group have")

    # Traits for the password service (Individuation)
    trait_password_token = _EntityTraitCode(
        "password_token", Constants.Constants.entity_account,
        "Store a one time password for an account")

    trait_browser_token = _EntityTraitCode(
        "browser_token", Constants.Constants.entity_account,
        "Store a browser token for an account")

    trait_password_failed_attempts = _EntityTraitCode(
        "passw_attempts", Constants.Constants.entity_account,
        "Number of times an account has tried to use sms password service")

    # Trait for reservation from the new password service
    # TODO: should be replaced by a reservation table later
    trait_reservation_sms_password = _EntityTraitCode(
        'reserve_passw', Constants.Constants.entity_account,
        "Reserving account from using the forgotten password service (SMS)")

    # Trait for reservation from being published at the web
    # TODO: should be replaced by a reservation table later
    trait_public_reservation = _EntityTraitCode(
        'reserve_public', Constants.Constants.entity_person,
        "Reserved from being published at the web pages")

    # Trait for storing if a user has gotten a welcome SMS.
    trait_sms_welcome = _EntityTraitCode(
        'sms_welcome', Constants.Constants.entity_account,
        "If a user has retrieved a welcome message by SMS")

    # Trait for showing that a user account is either newly created or restored.
    # Used to e.g. send welcome message by SMS. This trait is for all accounts,
    # the trait_student_new should be used for only targeting student accounts.
    trait_account_new = _EntityTraitCode(
        'new_account', Constants.Constants.entity_account,
        "The account is newly created or restored")

    # Trait for showing that a student account is either newly created or
    # restored. Used to send welcome message by SMS.
    trait_student_new = _EntityTraitCode(
        'new_student', Constants.Constants.entity_account,
        "If the student account is newly created or restored")

    # Traits for SAP medarbeidergrupper
    trait_sap_mg = _EntityTraitCode('sap_mg',
                                    Constants.Constants.entity_account,
                                    "MG from SAP - medarbeidergruppe")
    trait_sap_mug = _EntityTraitCode('sap_mug',
                                     Constants.Constants.entity_account,
                                     "MUG from SAP - medarbeiderundergruppe")

    # Quarantine to be set automatically when cleaning up in persons that are no
    # longer affiliated with the instance
    quarantine_auto_no_aff = _QuarantineCode(
        'auto_no_aff', 'Ikke tilknyttet person, utestengt')
Esempio n. 7
0
class ConstantsHigherEdu(Constants.Constants):

    # authoritative source systems (FS = student registry, SAP = common
    # HR-system)
    system_fs = _AuthoritativeSystemCode('FS', 'FS')
    system_sap = _AuthoritativeSystemCode('SAP', 'SAP')

    # external id definitions (student and employee id)
    externalid_studentnr = _EntityExternalIdCode(
        'NO_STUDNO', Constants.Constants.entity_person, 'Student ID number')

    externalid_sap_ansattnr = _EntityExternalIdCode(
        'NO_SAPNO', Constants.Constants.entity_person, 'Employee ID number')

    externalid_sap_ou = _EntityExternalIdCode("SAP_OU_ID",
                                              Constants.Constants.entity_ou,
                                              'SAP OU identification')

    externalid_uname = _EntityExternalIdCode('UNAME',
                                             Constants.Constants.entity_person,
                                             'User name (external system)')

    externalid_stedkode = _EntityExternalIdCode('STEDKODE',
                                                Constants.Constants.entity_ou,
                                                'Stedkode')

    # OU-structure perspectives
    perspective_fs = _OUPerspectiveCode('FS', 'FS')
    perspective_sap = _OUPerspectiveCode('SAP', 'SAP')

    # Affiliations for students
    affiliation_student = _PersonAffiliationCode('STUDENT', 'Student')
    affiliation_status_student_evu = _PersonAffStatusCode(
        affiliation_student, 'evu', 'Student, etter og videre utdanning')
    affiliation_status_student_aktiv = _PersonAffStatusCode(
        affiliation_student, 'aktiv', 'Student, aktiv')
    affiliation_status_student_privatist = _PersonAffStatusCode(
        affiliation_student, 'privatist', 'Student, privatist')
    affiliation_status_student_drgrad = _PersonAffStatusCode(
        affiliation_student, 'drgrad', 'Student, drgrad')
    affiliation_status_student_ekstern = _PersonAffStatusCode(
        affiliation_student, 'ekstern', 'Student, ekstern')

    # Affiliations for employees
    affiliation_ansatt = _PersonAffiliationCode('ANSATT', 'Ansatt')
    affiliation_status_ansatt_vitenskapelig = _PersonAffStatusCode(
        affiliation_ansatt, 'vitenskapelig', 'Ansatt, vitenskapelig')
    affiliation_status_ansatt_tekadm = _PersonAffStatusCode(
        affiliation_ansatt, 'tekadm', 'Ansatt, teknisk-administrativ')

    spread_ldap_group = _SpreadCode(
        'group@ldap', Constants.Constants.entity_group,
        'Gruppen eksporteres til gruppetreet i LDAP')

    # this should not really be her and it will be removed when the
    # bofhd-restructuring is done. for now it solves our problems
    # with bofhd_uio_cmds-copies in use.
    # bofhd constants
    auth_rt_create = _AuthRoleOpCode(
        'rt_create', 'Create e-mail target for Request Tracker')
    auth_rt_replace = _AuthRoleOpCode(
        'rt_replace', 'Replace existing mailing list with Request Tracker')
    auth_rt_addr_add = _AuthRoleOpCode(
        'rt_addr_add', 'Add e-mail address to Request Tracker target')
Esempio n. 8
0
class Constants(Constants.Constants):

    #
    # External Identifiers
    #

    externalid_sys_x_id = _EntityExternalIdCode(
        'SYS_X_ID', Constants.Constants.entity_person,
        'Internal sys_x identifier')

    externalid_paga_ansattnr = _EntityExternalIdCode(
        'PAGA_ANSATTNR', Constants.Constants.entity_person,
        'Internal PAGA identifier')

    externalid_hifm_ansattnr = _EntityExternalIdCode(
        'HIFM_ANSATTNR', Constants.Constants.entity_person,
        'Internal HIFM identifier')

    externalid_sito_ansattnr = _EntityExternalIdCode(
        'SITO_ANSATTNR', Constants.Constants.entity_person,
        'Internal SITO identifier')

    externalid_sito_ou = _EntityExternalIdCode('SITO_OU',
                                               Constants.Constants.entity_ou,
                                               'internal sito ou identifier')

    #
    # Authoritative systems
    #

    system_hifm = _AuthoritativeSystemCode('HIFM', 'Høgskolen i Alta')

    system_hitos = _AuthoritativeSystemCode('HITOS', 'Høgskolen i Tromsø')

    system_x = _AuthoritativeSystemCode('SYS_X', 'Manuelt personal system')

    system_tlf = _AuthoritativeSystemCode('TLF', 'Telefoni system')

    system_sysacc = _AuthoritativeSystemCode('SYSACC', 'System Accounts')

    system_paga = _AuthoritativeSystemCode('PAGA', 'PAGA')

    system_sito = _AuthoritativeSystemCode('SITO', 'SITO')

    system_flyt = _AuthoritativeSystemCode('FLYT', 'FLYT')

    system_fs_derived = _AuthoritativeSystemCode('FS-auto',
                                                 'Utledet av FS data')

    system_kr_reg = _AuthoritativeSystemCode(
        'KR_REG', 'Kontakt- og reservasjonsregisteret')

    system_intern_ice = _AuthoritativeSystemCode(
        'INTERN_ICE', 'Internal (uit) source for ICE number')

    #
    # Account codes
    #

    account_test = _AccountCode('T', 'Testkonto')
    account_felles_drift = _AccountCode('FD', 'Felles Drift')
    account_felles_intern = _AccountCode('FI', 'Felles Intern')
    account_kurs = _AccountCode('K', 'Kurs')
    account_forening = _AccountCode('F', 'Forening')
    account_maskin = _AccountCode('M', 'Maskin')
    account_prosess = _AccountCode('P', 'Prosess')
    account_uit_guest = _AccountCode('gjestebruker_uit', 'Manuell gjestekonto')

    #
    # Contact codes
    #

    contact_workphone2 = _ContactInfoCode('PHONE_WORK_2',
                                          'Secondary Work Phone')
    contact_room = _ContactInfoCode('ROOM@UIT', 'Location and room number')
    contact_building = _ContactInfoCode('BYGG@UIT', 'Building name')
    contact_sito_mobile = _ContactInfoCode('PHONE_SITO', 'sito employee phone')
    contact_uit_mobile = _ContactInfoCode('PHONE_UIT', 'uit employee phone')
    contact_ice_phone = _ContactInfoCode('ICE_PHONE',
                                         'Phone number for alerts (varsler)')

    #
    # Address codes
    #

    address_location = _AddressCode('Lokasjon', 'Campus')

    #
    # OU Structure perspective
    #

    perspective_sito = _OUPerspectiveCode('SITO', 'SITO')

    #
    # Affiliations
    #

    # Employee affiliations
    affiliation_ansatt_sito = _PersonAffiliationCode(
        'SITO', 'Ansatt ved studentsamskipnaden i tromso')

    affiliation_ansatt = _PersonAffiliationCode('ANSATT',
                                                'Ansatt ved UiT (i følge LT)')

    affiliation_flyt_ansatt_hih = _PersonAffiliationCode(
        'ANSATT_HIH', 'Ansatt ved HiH')

    affiliation_flyt_student_hih = _PersonAffiliationCode(
        'STUDENT_HIH', 'Student ved HiH')

    # Affiliation status
    affiliation_status_flyt_hih_ansatt_faculty = _PersonAffStatusCode(
        affiliation_ansatt, 'Ansatt HiH', 'Vitenskapelig')

    affiliation_status_flyt_hih_ansatt_tekadm = _PersonAffStatusCode(
        affiliation_ansatt, 'ansatt HiH', 'Teknisk/administrativt')

    affiliation_status_flyt_hin_ansatt_faculty = _PersonAffStatusCode(
        affiliation_ansatt, 'Ansatt HiN', 'Vitenskapelig')

    affiliation_status_flyt_hin_ansatt_tekadm = _PersonAffStatusCode(
        affiliation_ansatt, 'ansatt HiN', 'Teknisk/administrativt')

    affiliation_status_timelonnet_fast = _PersonAffStatusCode(
        affiliation_ansatt, 'Timelonnet fast', 'Fast ansatt på timelønn')

    affiliation_status_timelonnet_midlertidig = _PersonAffStatusCode(
        affiliation_ansatt, 'Timelonnet midl',
        'Midlertidig ansatt på timelønn')

    affiliation_status_ansatt_perm = _PersonAffStatusCode(
        affiliation_ansatt, 'permisjon', 'Ansatt, for tiden i permisjon')

    affiliation_status_flyt_ansatt_hifm = _PersonAffStatusCode(
        affiliation_ansatt, 'ansatt HIFm', 'Ansatte fra Høyskolen i Alta')

    affiliation_status_ansatt_sito = _PersonAffStatusCode(
        affiliation_ansatt_sito, 'sito', 'Ansatt')

    affiliation_status_ansatt_sys_x = _PersonAffStatusCode(
        affiliation_ansatt, 'sys_x-ansatt',
        'Manuelt gitt tilgang til AD (bør nyanseres)')

    # Student affiliations
    affiliation_student = _PersonAffiliationCode(
        'STUDENT', 'Student ved UiT (i følge FS)')

    affiliation_status_flyt_hih_student_aktiv = _PersonAffStatusCode(
        affiliation_student, 'student HiH', 'Aktiv student')

    affiliation_status_flyt_student_hifm = _PersonAffStatusCode(
        affiliation_student, 'student HIFm', 'Student fra Høyskolen i Alta')

    affiliation_status_flyt_hin_student_aktiv = _PersonAffStatusCode(
        affiliation_student, 'student HiN', 'Aktiv student')

    affiliation_status_student_soker = _PersonAffStatusCode(
        affiliation_student, 'soker', 'Registrert med søknad i FS')

    affiliation_status_student_sys_x = _PersonAffStatusCode(
        affiliation_student, 'sys_x-student',
        'Student Manuelt gitt tilgang til AD')

    affiliation_status_student_tilbud = _PersonAffStatusCode(
        affiliation_student, 'tilbud', 'Har fått tilbud om opptak')

    affiliation_status_student_opptak = _PersonAffStatusCode(
        affiliation_student, 'opptak', 'Har studierett ved studieprogram')

    affiliation_status_student_ny = Constants._PersonAffStatusCode(
        affiliation_student, 'ny', 'Registrert med ny, gyldig studierett i FS')

    affiliation_status_student_perm = _PersonAffStatusCode(
        affiliation_student, 'permisjon', 'Har gyldig permisjonstatus i FS')

    affiliation_status_student_alumni = _PersonAffStatusCode(
        affiliation_student, 'alumni', 'Har fullført studieprogram i FS')

    affiliation_status_student_drgrad = _PersonAffStatusCode(
        affiliation_student, 'drgrad', 'Registrert student på doktorgrad')

    affiliation_status_student_emnestud = _PersonAffStatusCode(
        affiliation_student, 'emnestud',
        'Registrert som aktiv emnestudent i FS')

    # Tilknyttet affiliation
    affiliation_tilknyttet = _PersonAffiliationCode(
        'TILKNYTTET', 'Tilknyttet UiT uten å være student eller ansatt')

    affiliation_tilknyttet_fagperson = _PersonAffStatusCode(
        affiliation_tilknyttet, 'fagperson', 'Registrert som fagperson i FS')

    affiliation_tilknyttet_emeritus = _PersonAffStatusCode(
        affiliation_tilknyttet, 'emeritus',
        'Registrert i LT med gjestetypekode EMERITUS')

    affiliation_tilknyttet_ekst_stip = _PersonAffStatusCode(
        affiliation_tilknyttet, 'ekst_stip',
        'Personer registrert i LT med gjestetypekode=EF-STIP')

    # Manual affiliation
    affiliation_manuell = _PersonAffiliationCode(
        'MANUELL', 'Tilknyttet enheter/instutusjoner som UiT har avtale med')

    affiliation_manuell_alumni = _PersonAffStatusCode(
        affiliation_manuell, 'alumni', 'Uteksaminerte studenter')

    affiliation_manuell_sito = _PersonAffStatusCode(
        affiliation_manuell, 'sito', 'Manuelt registrert Sito ansatt')

    affiliation_manuell_gjest_u_konto = _PersonAffStatusCode(
        affiliation_manuell, 'gjest_u_konto', 'gjest uten konto')

    affiliation_manuell_unn = _PersonAffStatusCode(
        affiliation_manuell, 'UNN', 'Universitets sykheuset i Nord Norge')

    affiliation_manuell_gjest = _PersonAffStatusCode(affiliation_manuell,
                                                     'gjest', 'Gjest')

    affiliation_manuell_utdanning_no = _PersonAffStatusCode(
        affiliation_manuell, 'utdanning_no', 'Utdanning.no')

    affiliation_manuell_akademisk_kvarter = _PersonAffStatusCode(
        affiliation_manuell, 'akademisk_kvart', 'Akademisk Kvarter')

    affiliation_manuell_norges_universitetet = _PersonAffStatusCode(
        affiliation_manuell, 'norges_universi', 'Norgesuniversitetet')

    affiliation_manuell_kirkutdnor = _PersonAffStatusCode(
        affiliation_manuell, 'kirkutdnor',
        'Kirkelig Utdanningssenter Nord-Norge')

    affiliation_manuell_gjesteforsker = _PersonAffStatusCode(
        affiliation_manuell, 'gjesteforsker', 'Gjesteforsker (under utfasing)')

    affiliation_manuell_konsulent = _PersonAffStatusCode(
        affiliation_manuell, 'konsulent', 'Konsulent (under utfasing)')

    affiliation_status_gjest_u_account = _PersonAffStatusCode(
        affiliation_manuell, 'gjest_u_konto', 'Gjest uten konto')

    # Non-personal affiliation
    affiliation_upersonlig = _PersonAffiliationCode(
        'UPERSONLIG', 'Fellesbrukere, samt andre brukere uten eier')

    affiliation_upersonlig_felles = _PersonAffStatusCode(
        affiliation_upersonlig, 'felles', 'Felleskonti')

    affiliation_upersonlig_kurs = _PersonAffStatusCode(affiliation_upersonlig,
                                                       'kurs', 'Kurskonti')

    affiliation_upersonlig_pvare = _PersonAffStatusCode(
        affiliation_upersonlig, 'pvare', 'Programvarekonti')

    affiliation_upersonlig_term_maskin = _PersonAffStatusCode(
        affiliation_upersonlig, 'term_maskin', 'Terminalstuemaskin')

    affiliation_upersonlig_bib_felles = _PersonAffStatusCode(
        affiliation_upersonlig, 'bib_felles', 'Bibliotek felles')

    #
    # Shells
    #
    # Override of the default shell paths.
    # NOTE: this file should be before PosixUser in cereconf.CLASS_CONSTANTS
    # TODO: Shell path mapping should be configuration, not db-constants.
    #

    posix_shell_bash = _PosixShellCode('bash', '/bin/bash')

    posix_shell_csh = _PosixShellCode('csh', '/bin/csh')

    posix_shell_false = _PosixShellCode('false', '/bin/false')

    posix_shell_nologin = _PosixShellCode('nologin', '/local/etc/nologin')

    posix_shell_sh = _PosixShellCode('sh', '/bin/sh')

    posix_shell_zsh = _PosixShellCode('zsh', '/local/bin/zsh')

    #
    # Spreads
    #

    spread_uit_fronter = _SpreadCode('fronter@uit',
                                     Constants.Constants.entity_group,
                                     'fronter user')

    spread_uit_fronter_account = _SpreadCode(
        'fronter_acc@uit', Constants.Constants.entity_account,
        'fronter account')

    spread_uit_evu = _SpreadCode('evu@uit', Constants.Constants.entity_account,
                                 'evu person')

    spread_uit_cristin = _SpreadCode('cristin@uit',
                                     Constants.Constants.entity_account,
                                     'Accounts with CRISTIN spread')

    # spread for ldap guests
    spread_uit_ldap_guest = _SpreadCode(
        'guest@ldap', Constants.Constants.entity_account,
        'LDAP/RADIUS spread for wireless accounts')

    # spread for ldap system accounts
    spread_uit_ldap_system = _SpreadCode(
        'system@ldap', Constants.Constants.entity_account,
        'account included in system tree on ldap')

    # spread for ldap people accounts
    spread_uit_ldap_people = _SpreadCode(
        'people@ldap', Constants.Constants.entity_account,
        'account included in people tree on ldap')

    # spread for securimaster export
    spread_uit_securimaster = _SpreadCode(
        'securimaster', Constants.Constants.entity_account,
        'account to be exported to securimaster')

    # spread for portal export
    spread_uit_portal = _SpreadCode('portal export',
                                    Constants.Constants.entity_account,
                                    'account to be exported to the portal')

    # spread for paga export - account uit should be exported to paga
    spread_uit_paga = _SpreadCode('paga export',
                                  Constants.Constants.entity_account,
                                  'account to have its uid exported to paga')

    # spread for fs export - account should have email and uid exported to FS
    spread_uit_fs = _SpreadCode(
        'fs export', Constants.Constants.entity_account,
        'account to have its uid and email exported to fs')

    spread_uit_ad_account = _SpreadCode(
        'AD_account', Constants.Constants.entity_account,
        'account included in Active Directory')

    spread_uit_ad_group = _SpreadCode('AD_group',
                                      Constants.Constants.entity_group,
                                      'group included in Active Directory')

    spread_uit_ad_lit_admingroup = _SpreadCode(
        'AD_group_litadmn', Constants.Constants.entity_group,
        'AD admingroup for local IT')

    # Spreads for Exchange
    spread_uit_exchange = _SpreadCode('exchange_mailbox',
                                      Constants.Constants.entity_account,
                                      'Accounts with exchange mailbox')

    # sito spread
    spread_sito = _SpreadCode('SITO', Constants.Constants.entity_account,
                              'Accounts generated for sito users')

    spread_fronter_dotcom = _SpreadCode(
        '*****@*****.**', Constants.Constants.entity_group,
        'Group representing a course that should be exported to the '
        'ClassFronter instance on fronter.com. Should only be given to '
        'groups that have been automatically generated from FS.')

    spread_ephorte_person = _SpreadCode('ePhorte_person',
                                        Constants.Constants.entity_person,
                                        'Person included in ePhorte export')

    #
    # Email
    #

    email_server_type_exchange_imap = _EmailServerTypeCode(
        'exchange_imap', "Server is an Exchange server")

    #
    # Quarantines
    #

    quarantine_ou_notvalid = _QuarantineCode(
        'ou_notvalid', 'OU not valid from external source')

    quarantine_auto_emailonly = _QuarantineCode(
        'auto_kunepost', 'Ikke ordin<E6>r student, tilgang til bare e-post')

    quarantine_auto_inaktiv = _QuarantineCode('auto_inaktiv',
                                              'Ikke aktiv student, utestengt')

    quarantine_tilbud = _QuarantineCode(
        'Tilbud', "Pre-generert konto til studenter som har fått studietilbud,"
        "men som ikke har aktivert kontoen.")

    quarantine_sys_x_approved = _QuarantineCode(
        'sys-x_approved', 'Konto fra system-x som ikke er godkjent')

    quarantine_generell = _QuarantineCode('generell', 'Generell splatt')

    quarantine_system = _QuarantineCode(
        'system', 'Systembrukar som ikke skal logge inn')

    quarantine_permisjon = _QuarantineCode('permisjon',
                                           'Brukeren har permisjon')

    quarantine_svakt_passord = _QuarantineCode('svakt_passord',
                                               'For dårlig passord')

    quarantine_autopassord = _QuarantineCode(
        'autopassord', 'Passord ikke skiftet trass pålegg')

    quarantine_sut_disk_usage = _QuarantineCode('sut_disk',
                                                "Bruker for mye disk på sut")

    #
    # Auth codes
    #

    auth_type_md5_crypt_hex = _AuthenticationCode(
        'MD5-crypt2', "MD5-derived 32 bit password non unix style, no salt")

    auth_type_md5_b64 = _AuthenticationCode(
        'MD5-crypt_base64', "MD5-derived 32 bit password base 64 encoded")

    #
    # Traits
    #

    trait_sito_registrar_notified = _EntityTraitCode(
        'sito_req_mailed', Constants.Constants.entity_account,
        "Trait set on account when sito processing is done")

    trait_sito_user_notified = _EntityTraitCode(
        'sito_user_mailed', Constants.Constants.entity_account,
        "Trait set on account after account created mail is sent to user")

    trait_sysx_registrar_notified = _EntityTraitCode(
        'sysx_reg_mailed', Constants.Constants.entity_account,
        "Trait set on account when systemx processing is done")

    trait_sysx_user_notified = _EntityTraitCode(
        'sysx_user_mailed', Constants.Constants.entity_account,
        "Trait set on account after account created mail is sent to user")

    trait_primary_aff = _EntityTraitCode(
        "primary_aff", Constants.Constants.entity_person,
        "A person's chosen primary affiliation,"
        " for use at the web presentations")

    trait_sysx_registrar_notified = _EntityTraitCode(
        'sysx_reg_mailed', Constants.Constants.entity_account,
        "Trait set on account when systemx processing is done")

    trait_sysx_user_notified = _EntityTraitCode(
        'sysx_user_mailed', Constants.Constants.entity_account,
        "Trait set on account after account created mail is sent to user")

    trait_nsd_unit_code = _EntityTraitCode(
        'nsd_unit_code', Constants.Constants.entity_ou,
        'NSD unit code (Avdelingskode) to use for this OU')