headless_lms_server/programs/seed/
seed_roles.rs

1use 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    // roles
12    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}