headless_lms_server/programs/seed/
seed_roles.rs1use headless_lms_models::roles::{self, RoleDomain, UserRole};
2use sqlx::{Pool, Postgres};
3
4use super::{seed_organizations::uh_cs::SeedOrganizationUhCsResult, seed_users::SeedUsersResult};
5
6pub async fn seed_roles(
7 db_pool: Pool<Postgres>,
8 seed_users_result: SeedUsersResult,
9 uh_cs_organization_result: SeedOrganizationUhCsResult,
10) -> anyhow::Result<()> {
11 info!("inserting roles");
13 let mut conn = db_pool.acquire().await?;
14 roles::insert(
15 &mut conn,
16 seed_users_result.admin_user_id,
17 UserRole::Admin,
18 RoleDomain::Global,
19 )
20 .await?;
21 roles::insert(
22 &mut conn,
23 seed_users_result.teaching_and_learning_services_user_id,
24 UserRole::TeachingAndLearningServices,
25 RoleDomain::Global,
26 )
27 .await?;
28 roles::insert(
29 &mut conn,
30 seed_users_result.teacher_user_id,
31 UserRole::Teacher,
32 RoleDomain::Organization(uh_cs_organization_result.uh_cs_organization_id),
33 )
34 .await?;
35 roles::insert(
36 &mut conn,
37 seed_users_result.assistant_user_id,
38 UserRole::Assistant,
39 RoleDomain::Organization(uh_cs_organization_result.uh_cs_organization_id),
40 )
41 .await?;
42 roles::insert(
43 &mut conn,
44 seed_users_result.assistant_user_id,
45 UserRole::Assistant,
46 RoleDomain::Course(uh_cs_organization_result.cs_intro_course_id),
47 )
48 .await?;
49 Ok(())
50}