38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #! .venv/bin/python
 | |
| # Add root project dir to the python path
 | |
| import os
 | |
| import sys
 | |
| 
 | |
| parent_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
 | |
| sys.path.append(parent_dir)
 | |
| 
 | |
| from sqlalchemy.orm.exc import NoResultFound
 | |
| from atst.app import make_config, make_app
 | |
| from atst.database import db
 | |
| from atst.models import Role, Permissions
 | |
| from atst.domain.roles import ATAT_ROLES, PORTFOLIO_ROLES
 | |
| 
 | |
| 
 | |
| def seed_roles():
 | |
|     for role_info in ATAT_ROLES + PORTFOLIO_ROLES:
 | |
|         role = Role(**role_info)
 | |
|         try:
 | |
|             existing_role = db.session.query(Role).filter_by(name=role.name).one()
 | |
|             existing_role.description = role.description
 | |
|             existing_role.permissions = role.permissions
 | |
|             existing_role.display_name = role.display_name
 | |
|             db.session.add(existing_role)
 | |
|             print("Updated existing role {}".format(existing_role.name))
 | |
|         except NoResultFound:
 | |
|             db.session.add(role)
 | |
|             print("Added new role {}".format(role.name))
 | |
| 
 | |
|     db.session.commit()
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     config = make_config({"DISABLE_CRL_CHECK": True})
 | |
|     app = make_app(config)
 | |
|     with app.app_context():
 | |
|         seed_roles()
 |