fix: seeder roles permissions
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
use super::{
|
use super::{
|
||||||
UsersActiveInactiveSchema, UsersItemDto, UsersItemDtoRaw, UsersSchema,
|
UsersActiveInactiveSchema, UsersItemDtoRaw, UsersSchema, UsersSetNewPasswordSchema,
|
||||||
UsersSetNewPasswordSchema,
|
|
||||||
};
|
};
|
||||||
use crate::{
|
use crate::{
|
||||||
get_id, make_thing, query_list_with_meta, AppState, MetaRequestDto, ResourceEnum,
|
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(
|
pub async fn query_user_list(
|
||||||
&self,
|
&self,
|
||||||
meta: MetaRequestDto,
|
meta: MetaRequestDto,
|
||||||
) -> Result<ResponseListSuccessDto<Vec<UsersItemDto>>> {
|
) -> Result<ResponseListSuccessDto<Vec<UsersItemDtoRaw>>> {
|
||||||
let db = &self.state.surrealdb_ws;
|
let db = &self.state.surrealdb_ws;
|
||||||
|
|
||||||
let mut conditions = vec!["is_deleted = false".to_string()];
|
let mut conditions = vec!["is_deleted = false".to_string()];
|
||||||
@@ -84,14 +83,8 @@ impl<'a> UsersRepository<'a> {
|
|||||||
)
|
)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
let converted = raw_result
|
|
||||||
.data
|
|
||||||
.into_iter()
|
|
||||||
.map(UsersItemDto::from)
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
Ok(ResponseListSuccessDto {
|
Ok(ResponseListSuccessDto {
|
||||||
data: converted,
|
data: raw_result.data,
|
||||||
meta: raw_result.meta,
|
meta: raw_result.meta,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<dyn Error>> {
|
||||||
|
let env = Env::new();
|
||||||
|
let db = Surreal::new::<Ws>(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(())
|
||||||
|
}
|
||||||
@@ -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::<Ws>(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<UsersItemDtoRaw> = db.select("app_users").await?;
|
|
||||||
let users: Vec<UsersItemDto> = raw_users.into_iter().map(Into::into).collect();
|
|
||||||
|
|
||||||
for user in users {
|
|
||||||
println!("{:?}", user);
|
|
||||||
}
|
|
||||||
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user