def populate(engine): session = DBSession() cp = VacationType.by_id(session, 1) rtt = VacationType.by_id(session, 2) parent = VacationType.by_id(session, 3) fr_country = Countries.by_name(session, u'fr') session.add(fr_country) lu_country = Countries.by_name(session, u'lu') session.add(lu_country) us_country = Countries.by_name(session, u'us') session.add(us_country) zh_country = Countries.by_name(session, u'zh') session.add(zh_country) # CP is available for everyone cp.countries.append(fr_country) cp.countries.append(lu_country) cp.countries.append(us_country) cp.countries.append(zh_country) # RTT only available for france rtt.countries.append(fr_country) # parent is available for everyone parent.countries.append(fr_country) parent.countries.append(lu_country) parent.countries.append(us_country) parent.countries.append(zh_country) session.commit()
def populate(engine): Base.metadata.create_all(engine) session = DBSession() user_perm = Permission(name=u'user_view') admin_perm = Permission(name=u'admin_view') manager_perm = Permission(name=u'manager_view') session.add(user_perm) session.add(admin_perm) session.add(manager_perm) admin_group = Group(name=u'admin') admin_group.permissions.append(user_perm) admin_group.permissions.append(admin_perm) admin_group.permissions.append(manager_perm) session.add(admin_group) manager_group = Group(name=u'manager') manager_group.permissions.append(user_perm) manager_group.permissions.append(manager_perm) session.add(manager_group) user_group = Group(name=u'user') user_group.permissions.append(user_perm) session.add(user_group) vactype1 = VacationType(name=u'CP') session.add(vactype1) vactype2 = VacationType(name=u'RTT') session.add(vactype2) fr_country = Countries(name=u'fr') session.add(fr_country) lu_country = Countries(name=u'lu') session.add(lu_country) us_country = Countries(name=u'us') session.add(us_country) zh_country = Countries(name=u'zh') session.add(zh_country) common_password = u'changeme' admin = User(login=u'admin', password=common_password, email=u'*****@*****.**', firstname=u'The', lastname=u'Administrator', role=u'admin', _country=fr_country) admin.groups.append(admin_group) session.add(admin) session.commit()
def populate(engine, ldap): """ Retrieve users from ldap directory and import them in local database """ session = DBSession() # retrieve managers from dedicated group managers = ldap.list_manager() # retrieve users searchFilter = '(&(objectClass=inetOrgPerson)(employeetype=Employee))' required = ['objectClass', 'employeeType', 'cn', 'givenName', 'sn', 'manager', 'mail', 'ou', 'uid', 'userPassword'] users = ldap._search(searchFilter, required) for user_dn, user_entry in users: user_data = ldap.parse_ldap_entry(user_dn, user_entry) if not user_data or not user_data.get('login'): continue login = user_data['login'].decode('utf-8') # check what type of user it is group = 'user' # if it's a manager he should be in manager group if user_data['dn'] in managers: group = 'manager' # if it's an admin he should be in admin group what = '(member=%s)' % user_data['dn'] if len(ldap._search_admin(what, None)) > 0: group = 'admin' user = User.by_login(session, login) if not user: user = User.create_from_ldap(session, user_data, group) else: # update user with ldap informations in case it changed user.email = user_data['email'].decode('utf-8') user.firstname = user_data['firstname'].decode('utf-8') user.lastname = user_data['lastname'].decode('utf-8') user.manager_dn = user_data['manager_dn'].decode('utf-8') user.dn = user_data['dn'].decode('utf-8') user.role = group session.add(user) session.commit()
def populate(engine, ldap): """ Retrieve users from ldap directory and import them in local database """ session = DBSession() # retrieve managers from dedicated group managers = ldap.list_manager() # retrieve users searchFilter = '(&(objectClass=inetOrgPerson)(employeetype=Employee))' required = ['objectClass', 'employeeType', 'cn', 'givenName', 'sn', 'manager', 'mail', 'ou', 'uid', 'userPassword'] users = ldap._search(searchFilter, required) for user_dn, user_entry in users: user_data = ldap.parse_ldap_entry(user_dn, user_entry) login = user_data['login'].decode('utf-8') # check what type of user it is group = u'user' # if it's a manager he should be in manager group if user_data['dn'] in managers: group = u'manager' # if it's an admin he should be in admin group what = '(member=%s)' % user_data['dn'] if len(ldap._search_admin(what, None)) > 0: group = u'admin' user = User.by_login(session, login) if not user: user = User.create_from_ldap(session, user_data, group) else: # update user with ldap informations in case it changed user.email = user_data['email'].decode('utf-8') user.firstname = user_data['firstname'].decode('utf-8') user.lastname = user_data['lastname'].decode('utf-8') user.manager_dn = user_data['manager_dn'].decode('utf-8') user.dn = user_data['dn'].decode('utf-8') user.role = group session.add(user) session.commit()
def populate(engine): Base.metadata.create_all(engine) session = DBSession() vactype = VacationType(name='Télétravail') session.add(vactype) fr_country = Countries.by_name(session, name='fr') lu_country = Countries.by_name(session, name='lu') us_country = Countries.by_name(session, name='us') zh_country = Countries.by_name(session, name='zh') # Remote is available for everyone vactype.countries.append(fr_country) vactype.countries.append(lu_country) vactype.countries.append(us_country) vactype.countries.append(zh_country) session.commit()
def populate(engine): session = DBSession() cp = VacationType.by_id(session, 1) rtt = VacationType.by_id(session, 2) parent = VacationType.by_id(session, 3) recovery = VacationType.by_id(session, 4) fr_country = Countries.by_name(session, 'fr') session.add(fr_country) lu_country = Countries.by_name(session, 'lu') session.add(lu_country) us_country = Countries.by_name(session, 'us') session.add(us_country) zh_country = Countries.by_name(session, 'zh') session.add(zh_country) # CP is available for everyone cp.countries.append(fr_country) cp.countries.append(lu_country) cp.countries.append(us_country) cp.countries.append(zh_country) # RTT only available for france rtt.countries.append(fr_country) # parent is available for everyone parent.countries.append(fr_country) parent.countries.append(lu_country) parent.countries.append(us_country) parent.countries.append(zh_country) # recovery is available for everyone recovery.countries.append(fr_country) recovery.countries.append(lu_country) recovery.countries.append(us_country) recovery.countries.append(zh_country) session.commit()
def populate(engine): Base.metadata.create_all(engine) session = DBSession() user_perm = Permission(name='user_view') admin_perm = Permission(name='admin_view') manager_perm = Permission(name='manager_view') sudo_perm = Permission(name='sudo_view') session.add(user_perm) session.add(admin_perm) session.add(manager_perm) session.add(sudo_perm) admin_group = Group(name='admin') admin_group.permissions.append(user_perm) admin_group.permissions.append(admin_perm) admin_group.permissions.append(manager_perm) admin_group.permissions.append(sudo_perm) session.add(admin_group) manager_group = Group(name='manager') manager_group.permissions.append(user_perm) manager_group.permissions.append(manager_perm) manager_group.permissions.append(sudo_perm) session.add(manager_group) user_group = Group(name='user') user_group.permissions.append(user_perm) session.add(user_group) sudoer_group = Group(name='sudoer') sudoer_group.permissions.append(sudo_perm) session.add(sudoer_group) vactype1 = VacationType(name='CP') session.add(vactype1) vactype2 = VacationType(name='RTT') session.add(vactype2) vactype3 = VacationType(name='Congé Parental') session.add(vactype3) vactype4 = VacationType(name='Récupération') session.add(vactype4) vactype5 = VacationType(name='Maladie', visibility='admin') session.add(vactype5) vactype6 = VacationType(name='Exceptionnel') session.add(vactype6) vactype7 = VacationType(name='Compensatoire') session.add(vactype7) vactype8 = VacationType(name='Télétravail') session.add(vactype8) fr_country = Countries(name='fr') session.add(fr_country) lu_country = Countries(name='lu') session.add(lu_country) us_country = Countries(name='us') session.add(us_country) zh_country = Countries(name='zh') session.add(zh_country) now = datetime.now() cp_pool1 = Pool(name='acquis', date_start=datetime(now.year, 6, 1), date_end=datetime(now.year + 1, 5, 31), status='active', vacation_type=vactype1, country=fr_country, pool_group=1, date_last_increment=now, ) session.add(cp_pool1) cp_pool2 = Pool(name='restant', date_start=datetime(now.year - 1, 6, 1), date_end=datetime(now.year, 5, 31), status='active', vacation_type=vactype1, country=fr_country, pool_group=1, date_last_increment=now, ) session.add(cp_pool2) cplu_pool1 = Pool(name='acquis', alias='légaux', date_start=datetime(now.year, 1, 1), date_end=datetime(now.year + 1, 3, 31), status='active', vacation_type=vactype1, country=lu_country, pool_group=2, date_last_increment=now, ) session.add(cplu_pool1) cplu_pool2 = Pool(name='restant', alias='report', date_start=datetime(now.year - 1, 1, 1), date_end=datetime(now.year, 3, 31), status='active', vacation_type=vactype1, country=lu_country, pool_group=2, date_last_increment=now, ) session.add(cplu_pool2) rtt_pool = Pool(name=vactype2.name, date_start=datetime(now.year, 1, 1), date_end=datetime(now.year + 1, 12, 31), status='active', vacation_type=vactype2, country=fr_country, date_last_increment=now, ) session.add(rtt_pool) # CP is available for everyone vactype1.countries.append(fr_country) vactype1.countries.append(lu_country) vactype1.countries.append(us_country) vactype1.countries.append(zh_country) # RTT only available for france vactype2.countries.append(fr_country) # Parental vacation is available for everyone vactype3.countries.append(fr_country) vactype3.countries.append(lu_country) vactype3.countries.append(us_country) vactype3.countries.append(zh_country) # Recovery is available for everyone vactype4.countries.append(fr_country) vactype4.countries.append(lu_country) vactype4.countries.append(us_country) vactype4.countries.append(zh_country) # Sickness vacation is available for all countries vactype5.countries.append(fr_country) vactype5.countries.append(lu_country) vactype5.countries.append(us_country) vactype5.countries.append(zh_country) # Exception vacation is available for all countries vactype6.countries.append(fr_country) vactype6.countries.append(lu_country) vactype6.countries.append(us_country) vactype6.countries.append(zh_country) # Holiday recovery is only available for LU vactype7.countries.append(lu_country) # Remote is available for everyone vactype8.countries.append(fr_country) vactype8.countries.append(lu_country) vactype8.countries.append(us_country) vactype8.countries.append(zh_country) common_password = '******' admin = User(login='******', password=common_password, email='*****@*****.**', firstname='The', lastname='Administrator', role='admin', _country=fr_country) admin.groups.append(admin_group) session.add(admin) session.commit()
def setUpModule(): engine = create_engine(settings) populate(engine) session = DBSession() user_group = Group.by_name(session, 'user') manager_group = Group.by_name(session, 'manager') sudoer_group = Group.by_name(session, 'sudoer') common_password = '******' cp_vacation = VacationType.by_name(session, 'CP') rtt_vacation = VacationType.by_name(session, 'RTT') recovery_vacation = VacationType.by_name(session, 'Récupération') sickness_vacation = VacationType.by_name(session, 'Maladie') exception_vacation = VacationType.by_name(session, 'Exceptionnel') fr_country = Countries.by_name(session, 'fr') us_country = Countries.by_name(session, 'us') lu_country = Countries.by_name(session, 'lu') manager1 = User( login='******', password=common_password, email='*****@*****.**', firstname='First', lastname='Manager', role='manager', _country=fr_country, ) manager1.groups.append(manager_group) session.add(manager1) manager2 = User( login='******', password=common_password, email='*****@*****.**', firstname='Second', lastname='Manager', role='manager', _country=fr_country, ) manager2.groups.append(manager_group) session.add(manager2) manager_us = User( login='******', password=common_password, email='*****@*****.**', firstname='Third', lastname='Manager', role='manager', _country=us_country, ) manager_us.groups.append(manager_group) session.add(manager_us) user1 = User( login='******', password=common_password, email='*****@*****.**', manager=manager1, firstname='John', lastname='Doe', _country=fr_country, registration_number=1337, ) user1.groups.append(user_group) session.add(user1) user2 = User( login='******', password=common_password, email='*****@*****.**', manager=manager2, firstname='Jane', lastname='Doe', _country=fr_country, ) user2.groups.append(user_group) user2.groups.append(sudoer_group) session.add(user2) session.flush() sudoer = Sudoer(source_id=user2.id, target_id=1) session.add(sudoer) user3 = User( login='******', password=common_password, email='*****@*****.**', manager=manager1, firstname='Sarah', lastname='Doe', _country=lu_country, ) user3.groups.append(user_group) session.add(user3) date_from = datetime.strptime('10/04/2015', '%d/%m/%Y') date_to = datetime.strptime('14/04/2015', '%d/%m/%Y') req1 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=cp_vacation, status='PENDING', user=user1, notified=False) session.add(req1) date_from = datetime.strptime('10/04/2015', '%d/%m/%Y') date_to = datetime.strptime('21/04/2015', '%d/%m/%Y') req2 = Request( date_from=date_from, date_to=date_to, days=10, vacation_type=cp_vacation, status='PENDING', user=user2, notified=False, ) session.add(req2) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req3 = Request( date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status='ACCEPTED_MANAGER', user=user1, notified=True, ) session.add(req3) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req4 = Request( date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status='CANCELED', user=user1, notified=True, ) session.add(req4) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req5 = Request( date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status='APPROVED_ADMIN', user=manager_us, notified=True, ) session.add(req5) date_from = datetime.strptime('24/08/2011', '%d/%m/%Y') date_to = datetime.strptime('24/08/2011', '%d/%m/%Y') req6 = Request(date_from=date_from, date_to=date_to, days=0.5, vacation_type=rtt_vacation, status='APPROVED_ADMIN', user=user1, notified=True, label='AM') session.add(req6) date_from = datetime.strptime('14/07/2014', '%d/%m/%Y') date_to = datetime.strptime('14/07/2014', '%d/%m/%Y') req7 = Request(date_from=date_from, date_to=date_to, days=0.5, vacation_type=rtt_vacation, status='APPROVED_ADMIN', user=user1, notified=True, label='AM') session.add(req7) # used for rtt vacation checks date_from = datetime.strptime('01/04/2016', '%d/%m/%Y') date_to = datetime.strptime('02/04/2016', '%d/%m/%Y') req8 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status='PENDING', user=user1, notified=True) session.add(req8) date_from = datetime.strptime('01/03/2016', '%d/%m/%Y') date_to = datetime.strptime('02/03/2016', '%d/%m/%Y') req9 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status='ACCEPTED_MANAGER', user=user1, notified=True) session.add(req9) date_from = datetime.strptime('01/02/2016', '%d/%m/%Y') date_to = datetime.strptime('02/02/2016', '%d/%m/%Y') req10 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status='APPROVED_ADMIN', user=user1, notified=True) session.add(req10) date_from = datetime.strptime('01/06/2016', '%d/%m/%Y') date_to = datetime.strptime('02/06/2016', '%d/%m/%Y') req11 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=recovery_vacation, status='APPROVED_ADMIN', user=user1, notified=True) session.add(req11) date_from = datetime.strptime('12/04/2015', '%d/%m/%Y') date_to = datetime.strptime('12/04/2015', '%d/%m/%Y') req12 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status='DENIED', user=user1, notified=True) session.add(req12) date_from = datetime.strptime('06/06/2016', '%d/%m/%Y') date_to = datetime.strptime('06/06/2016', '%d/%m/%Y') req13 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=sickness_vacation, status='APPROVED_ADMIN', user=user1, notified=True) session.add(req13) date_from = datetime.strptime('13/06/2016', '%d/%m/%Y') date_to = datetime.strptime('13/06/2016', '%d/%m/%Y') req14 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=exception_vacation, status='APPROVED_ADMIN', user=user2, message="I need to see Star Wars, I'm a huge fan", notified=True) session.add(req14) session.commit()
def populate(engine): Base.metadata.create_all(engine) session = DBSession() user_perm = Permission(name=u'user_view') admin_perm = Permission(name=u'admin_view') manager_perm = Permission(name=u'manager_view') sudo_perm = Permission(name=u'sudo_view') session.add(user_perm) session.add(admin_perm) session.add(manager_perm) session.add(sudo_perm) admin_group = Group(name=u'admin') admin_group.permissions.append(user_perm) admin_group.permissions.append(admin_perm) admin_group.permissions.append(manager_perm) admin_group.permissions.append(sudo_perm) session.add(admin_group) manager_group = Group(name=u'manager') manager_group.permissions.append(user_perm) manager_group.permissions.append(manager_perm) manager_group.permissions.append(sudo_perm) session.add(manager_group) user_group = Group(name=u'user') user_group.permissions.append(user_perm) session.add(user_group) sudoer_group = Group(name=u'sudoer') sudoer_group.permissions.append(sudo_perm) session.add(sudoer_group) vactype1 = VacationType(name=u'CP') session.add(vactype1) vactype2 = VacationType(name=u'RTT') session.add(vactype2) vactype3 = VacationType(name=u'Congé Parental') session.add(vactype3) vactype4 = VacationType(name=u'Récupération') session.add(vactype4) vactype5 = VacationType(name=u'Maladie', visibility=u'admin') session.add(vactype5) vactype6 = VacationType(name=u'Exceptionnel') session.add(vactype6) vactype7 = VacationType(name=u'Compensatoire') session.add(vactype7) fr_country = Countries(name=u'fr') session.add(fr_country) lu_country = Countries(name=u'lu') session.add(lu_country) us_country = Countries(name=u'us') session.add(us_country) zh_country = Countries(name=u'zh') session.add(zh_country) # CP is available for everyone vactype1.countries.append(fr_country) vactype1.countries.append(lu_country) vactype1.countries.append(us_country) vactype1.countries.append(zh_country) # RTT only available for france vactype2.countries.append(fr_country) # Parental vacation is available for everyone vactype3.countries.append(fr_country) vactype3.countries.append(lu_country) vactype3.countries.append(us_country) vactype3.countries.append(zh_country) # Recovery is available for everyone vactype4.countries.append(fr_country) vactype4.countries.append(lu_country) vactype4.countries.append(us_country) vactype4.countries.append(zh_country) # Sickness vacation is available for all countries vactype5.countries.append(fr_country) vactype5.countries.append(lu_country) vactype5.countries.append(us_country) vactype5.countries.append(zh_country) # Exception vacation is available for all countries vactype6.countries.append(fr_country) vactype6.countries.append(lu_country) vactype6.countries.append(us_country) vactype6.countries.append(zh_country) # Holiday recovery is only available for LU vactype7.countries.append(lu_country) common_password = u'changeme' admin = User(login=u'admin', password=common_password, email=u'*****@*****.**', firstname=u'The', lastname=u'Administrator', role=u'admin', _country=fr_country) admin.groups.append(admin_group) session.add(admin) session.commit()
def setUpModule(): engine = create_engine(settings) populate(engine) session = DBSession() user_group = Group.by_name(session, u'user') manager_group = Group.by_name(session, u'manager') sudoer_group = Group.by_name(session, u'sudoer') common_password = u'changeme' cp_vacation = VacationType.by_name(session, u'CP') rtt_vacation = VacationType.by_name(session, u'RTT') recovery_vacation = VacationType.by_name(session, u'Récupération') sickness_vacation = VacationType.by_name(session, u'Maladie') exception_vacation = VacationType.by_name(session, u'Exceptionnel') fr_country = Countries.by_name(session, u'fr') us_country = Countries.by_name(session, u'us') manager1 = User(login=u'manager1', password=common_password, email=u'*****@*****.**', firstname=u'First', lastname=u'Manager', role=u'manager', _country=fr_country, ) manager1.groups.append(manager_group) session.add(manager1) manager2 = User(login=u'manager2', password=common_password, email=u'*****@*****.**', firstname=u'Second', lastname=u'Manager', role=u'manager', _country=fr_country, ) manager2.groups.append(manager_group) session.add(manager2) manager_us = User(login=u'manager3', password=common_password, email=u'*****@*****.**', firstname=u'Third', lastname=u'Manager', role=u'manager', _country=us_country, ) manager_us.groups.append(manager_group) session.add(manager_us) user1 = User(login=u'jdoe', password=common_password, email=u'*****@*****.**', manager=manager1, firstname=u'John', lastname=u'Doe', _country=fr_country, ) user1.groups.append(user_group) session.add(user1) user2 = User(login=u'janedoe', password=common_password, email=u'*****@*****.**', manager=manager2, firstname=u'Jane', lastname=u'Doe', _country=fr_country, ) user2.groups.append(user_group) user2.groups.append(sudoer_group) session.add(user2) session.flush() sudoer = Sudoer(source_id=user2.id, target_id=1) session.add(sudoer) date_from = datetime.strptime('10/04/2015', '%d/%m/%Y') date_to = datetime.strptime('14/04/2015', '%d/%m/%Y') req1 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=cp_vacation, status=u'PENDING', user=user1, notified=False) session.add(req1) date_from = datetime.strptime('10/04/2015', '%d/%m/%Y') date_to = datetime.strptime('21/04/2015', '%d/%m/%Y') req2 = Request(date_from=date_from, date_to=date_to, days=10, vacation_type=cp_vacation, status=u'PENDING', user=user2, notified=False,) session.add(req2) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req3 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status=u'ACCEPTED_MANAGER', user=user1, notified=True,) session.add(req3) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req4 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status=u'CANCELED', user=user1, notified=True,) session.add(req4) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req5 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=manager_us, notified=True,) session.add(req5) date_from = datetime.strptime('24/08/2011', '%d/%m/%Y') date_to = datetime.strptime('24/08/2011', '%d/%m/%Y') req6 = Request(date_from=date_from, date_to=date_to, days=0.5, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True, label=u'AM') session.add(req6) date_from = datetime.strptime('14/07/2014', '%d/%m/%Y') date_to = datetime.strptime('14/07/2014', '%d/%m/%Y') req7 = Request(date_from=date_from, date_to=date_to, days=0.5, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True, label=u'AM') session.add(req7) # used for rtt vacation checks date_from = datetime.strptime('01/04/2016', '%d/%m/%Y') date_to = datetime.strptime('02/04/2016', '%d/%m/%Y') req8 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status=u'PENDING', user=user1, notified=True) session.add(req8) date_from = datetime.strptime('01/03/2016', '%d/%m/%Y') date_to = datetime.strptime('02/03/2016', '%d/%m/%Y') req9 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status=u'ACCEPTED_MANAGER', user=user1, notified=True) session.add(req9) date_from = datetime.strptime('01/02/2016', '%d/%m/%Y') date_to = datetime.strptime('02/02/2016', '%d/%m/%Y') req10 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True) session.add(req10) date_from = datetime.strptime('01/06/2016', '%d/%m/%Y') date_to = datetime.strptime('02/06/2016', '%d/%m/%Y') req11 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=recovery_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True) session.add(req11) date_from = datetime.strptime('12/04/2015', '%d/%m/%Y') date_to = datetime.strptime('12/04/2015', '%d/%m/%Y') req12 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status=u'DENIED', user=user1, notified=True) session.add(req12) date_from = datetime.strptime('06/06/2016', '%d/%m/%Y') date_to = datetime.strptime('06/06/2016', '%d/%m/%Y') req13 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=sickness_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True) session.add(req13) date_from = datetime.strptime('13/06/2016', '%d/%m/%Y') date_to = datetime.strptime('13/06/2016', '%d/%m/%Y') req14 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=exception_vacation, status=u'APPROVED_ADMIN', user=user2, message=u"I need to see Star Wars, I'm a huge fan", notified=True) session.add(req14) session.commit()
def setUpModule(): engine = create_engine(settings) populate(engine) session = DBSession() user_group = Group.by_name(session, u'user') manager_group = Group.by_name(session, u'manager') common_password = u'changeme' cp_vacation = VacationType.by_name(session, u'CP') rtt_vacation = VacationType.by_name(session, u'RTT') fr_country = Countries.by_name(session, u'fr') us_country = Countries.by_name(session, u'us') manager1 = User(login=u'manager1', password=common_password, email=u'*****@*****.**', firstname=u'First', lastname=u'Manager', role=u'manager', _country=fr_country, ) manager1.groups.append(manager_group) session.add(manager1) manager2 = User(login=u'manager2', password=common_password, email=u'*****@*****.**', firstname=u'Second', lastname=u'Manager', role=u'manager', _country=fr_country, ) manager2.groups.append(manager_group) session.add(manager2) manager_us = User(login=u'manager3', password=common_password, email=u'*****@*****.**', firstname=u'Third', lastname=u'Manager', role=u'manager', _country=us_country, ) manager_us.groups.append(manager_group) session.add(manager_us) user1 = User(login=u'jdoe', password=common_password, email=u'*****@*****.**', manager=manager1, firstname=u'John', lastname=u'Doe', _country=fr_country, ) user1.groups.append(user_group) session.add(user1) user2 = User(login=u'janedoe', password=common_password, email=u'*****@*****.**', manager=manager2, firstname=u'Jane', lastname=u'Doe', _country=fr_country, ) user2.groups.append(user_group) session.add(user2) date_from = datetime.strptime('10/04/2015', '%d/%m/%Y') date_to = datetime.strptime('14/04/2015', '%d/%m/%Y') req1 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=cp_vacation, status=u'PENDING', user=user1, notified=False) session.add(req1) date_from = datetime.strptime('10/04/2015', '%d/%m/%Y') date_to = datetime.strptime('21/04/2015', '%d/%m/%Y') req2 = Request(date_from=date_from, date_to=date_to, days=10, vacation_type=cp_vacation, status=u'PENDING', user=user2, notified=False,) session.add(req2) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req3 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status=u'ACCEPTED_MANAGER', user=user1, notified=True,) session.add(req3) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req4 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status=u'CANCELED', user=user1, notified=True,) session.add(req4) date_from = datetime.strptime('24/04/2015', '%d/%m/%Y') date_to = datetime.strptime('28/04/2015', '%d/%m/%Y') req5 = Request(date_from=date_from, date_to=date_to, days=5, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=manager_us, notified=True,) session.add(req5) date_from = datetime.strptime('24/08/2011', '%d/%m/%Y') date_to = datetime.strptime('24/08/2011', '%d/%m/%Y') req6 = Request(date_from=date_from, date_to=date_to, days=0.5, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True, label=u'AM') session.add(req6) date_from = datetime.strptime('14/07/2014', '%d/%m/%Y') date_to = datetime.strptime('14/07/2014', '%d/%m/%Y') req7 = Request(date_from=date_from, date_to=date_to, days=0.5, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True, label=u'AM') session.add(req7) # used for rtt vacation checks date_from = datetime.strptime('01/04/2016', '%d/%m/%Y') date_to = datetime.strptime('02/04/2016', '%d/%m/%Y') req8 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status=u'PENDING', user=user1, notified=True) session.add(req8) date_from = datetime.strptime('01/03/2016', '%d/%m/%Y') date_to = datetime.strptime('02/03/2016', '%d/%m/%Y') req9 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status=u'ACCEPTED_MANAGER', user=user1, notified=True) session.add(req9) date_from = datetime.strptime('01/02/2016', '%d/%m/%Y') date_to = datetime.strptime('02/02/2016', '%d/%m/%Y') req10 = Request(date_from=date_from, date_to=date_to, days=1, vacation_type=rtt_vacation, status=u'APPROVED_ADMIN', user=user1, notified=True) session.add(req10) session.commit()
def populate(engine): Base.metadata.create_all(engine) session = DBSession() user_perm = Permission(name=u"user_view") admin_perm = Permission(name=u"admin_view") manager_perm = Permission(name=u"manager_view") sudo_perm = Permission(name=u"sudo_view") session.add(user_perm) session.add(admin_perm) session.add(manager_perm) session.add(sudo_perm) admin_group = Group(name=u"admin") admin_group.permissions.append(user_perm) admin_group.permissions.append(admin_perm) admin_group.permissions.append(manager_perm) admin_group.permissions.append(sudo_perm) session.add(admin_group) manager_group = Group(name=u"manager") manager_group.permissions.append(user_perm) manager_group.permissions.append(manager_perm) manager_group.permissions.append(sudo_perm) session.add(manager_group) user_group = Group(name=u"user") user_group.permissions.append(user_perm) session.add(user_group) sudoer_group = Group(name=u"sudoer") sudoer_group.permissions.append(sudo_perm) session.add(sudoer_group) vactype1 = VacationType(name=u"CP") session.add(vactype1) vactype2 = VacationType(name=u"RTT") session.add(vactype2) vactype3 = VacationType(name=u"Congé Parental") session.add(vactype3) vactype4 = VacationType(name=u"Récupération") session.add(vactype4) vactype5 = VacationType(name=u"Maladie", visibility=u"admin") session.add(vactype5) vactype6 = VacationType(name=u"Exceptionnel") session.add(vactype6) fr_country = Countries(name=u"fr") session.add(fr_country) lu_country = Countries(name=u"lu") session.add(lu_country) us_country = Countries(name=u"us") session.add(us_country) zh_country = Countries(name=u"zh") session.add(zh_country) # CP is available for everyone vactype1.countries.append(fr_country) vactype1.countries.append(lu_country) vactype1.countries.append(us_country) vactype1.countries.append(zh_country) # RTT only available for france vactype2.countries.append(fr_country) # Parental vacation is available for everyone vactype3.countries.append(fr_country) vactype3.countries.append(lu_country) vactype3.countries.append(us_country) vactype3.countries.append(zh_country) # Recovery is available for everyone vactype4.countries.append(fr_country) vactype4.countries.append(lu_country) vactype4.countries.append(us_country) vactype4.countries.append(zh_country) # Sickness vacation is available for all countries vactype5.countries.append(fr_country) vactype5.countries.append(lu_country) vactype5.countries.append(us_country) vactype5.countries.append(zh_country) # Exception vacation is available for all countries vactype6.countries.append(fr_country) vactype6.countries.append(lu_country) vactype6.countries.append(us_country) vactype6.countries.append(zh_country) common_password = u"changeme" admin = User( login=u"admin", password=common_password, email=u"*****@*****.**", firstname=u"The", lastname=u"Administrator", role=u"admin", _country=fr_country, ) admin.groups.append(admin_group) session.add(admin) session.commit()