diff --git a/src/apps/v1/users/users_repository.rs b/src/apps/v1/users/users_repository.rs index 897da9b..ffb72cd 100644 --- a/src/apps/v1/users/users_repository.rs +++ b/src/apps/v1/users/users_repository.rs @@ -1,6 +1,5 @@ use super::{ - UsersActiveInactiveSchema, UsersItemDto, UsersItemDtoRaw, UsersSchema, - UsersSetNewPasswordSchema, + UsersActiveInactiveSchema, UsersItemDtoRaw, UsersSchema, UsersSetNewPasswordSchema, }; use crate::{ get_id, make_thing, query_list_with_meta, AppState, MetaRequestDto, ResourceEnum, @@ -20,7 +19,7 @@ impl<'a> UsersRepository<'a> { pub async fn query_user_list( &self, meta: MetaRequestDto, - ) -> Result>> { + ) -> Result>> { let db = &self.state.surrealdb_ws; let mut conditions = vec!["is_deleted = false".to_string()]; @@ -84,14 +83,8 @@ impl<'a> UsersRepository<'a> { ) .await?; - let converted = raw_result - .data - .into_iter() - .map(UsersItemDto::from) - .collect(); - Ok(ResponseListSuccessDto { - data: converted, + data: raw_result.data, meta: raw_result.meta, }) } diff --git a/src/bin/seed_roles_permissions.rs b/src/bin/seed_roles_permissions.rs new file mode 100644 index 0000000..833bdd3 --- /dev/null +++ b/src/bin/seed_roles_permissions.rs @@ -0,0 +1,59 @@ +use najm_course_api::{get_iso_date, make_thing, Env}; +use std::error::Error; +use surrealdb::{engine::remote::ws::Ws, opt::auth::Root, Surreal}; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let env = Env::new(); + let db = Surreal::new::(env.surrealdb_url).await?; + + db.signin(Root { + username: &env.surrealdb_username, + password: &env.surrealdb_password, + }) + .await?; + + db.use_ns(env.surrealdb_namespace) + .use_db(env.surrealdb_dbname) + .await?; + + let role_permissions = vec![ + ( + "50133429-f4b1-4249-9f97-7b86e6ee9d86", // Staf + vec![ + "7c15e31d-36e2-49f9-97db-138c03fb0cf6", // Read List Users + "319ee593-ff0a-4f29-bbaf-9feb3174a3a6", // Read Detail Users + ], + ), + ( + "f6b03f25-e416-4893-ac88-caaa690afb07", // Admin + vec![ + "023e2dfe-93c3-4008-94a8-b5dff403f73b", // Create Users + "96df0689-2ae9-4894-bf00-837c19415e5c", // Delete Users + "98b3dc4c-0124-461f-afcd-166637c5e6e8", // Update Users + "319ee593-ff0a-4f29-bbaf-9feb3174a3a6", // Read Detail Users + "7c15e31d-36e2-49f9-97db-138c03fb0cf6", // Read List Users + "9164ca6e-c7e3-4238-a15f-f36ab9577e7e", // Read List Roles + "319ee593-ff0a-4f29-bbaf-9feb3174a3a2", // Create Roles + "a00d5608-4c48-4542-845c-dfe004687022", // Update Roles + "35b0d992-65c8-4b62-b030-e6e0320e4048", // Delete Roles + ], + ), + ]; + for (role_id, permission_ids) in role_permissions { + let permission_refs: Vec<_> = permission_ids + .into_iter() + .map(|perm_id| make_thing("app_permissions", perm_id)) + .collect(); + + db.query("UPDATE type::thing('app_roles', $role_id) SET permissions = $permissions, updated_at = $updated_at") + .bind(("role_id", role_id)) + .bind(("permissions", permission_refs)) + .bind(("updated_at", get_iso_date())) + .await?; + println!("✅ Updated permissions for role ID: {}", role_id); + } + println!("✅ Semua roles telah diperbarui dengan permissions di SurrealDB!"); + + Ok(()) +} diff --git a/src/bin/test_babi.rs b/src/bin/test_babi.rs deleted file mode 100644 index da40f3a..0000000 --- a/src/bin/test_babi.rs +++ /dev/null @@ -1,25 +0,0 @@ -use najm_course_api::{Env, UsersItemDto, UsersItemDtoRaw}; -use surrealdb::{engine::remote::ws::Ws, opt::auth::Root, Surreal}; - -#[tokio::main] -async fn main() -> anyhow::Result<()> { - let env = Env::new(); - let db = Surreal::new::(env.surrealdb_url).await?; - db.signin(Root { - username: &env.surrealdb_username, - password: &env.surrealdb_password, - }) - .await?; - db.use_ns(env.surrealdb_namespace) - .use_db(env.surrealdb_dbname) - .await?; - - let raw_users: Vec = db.select("app_users").await?; - let users: Vec = raw_users.into_iter().map(Into::into).collect(); - - for user in users { - println!("{:?}", user); - } - - Ok(()) -}