work on permissions api

This commit is contained in:
mbecker20
2023-07-03 01:11:36 -04:00
parent a197948837
commit 312f7a9003
10 changed files with 168 additions and 43 deletions

View File

@@ -281,10 +281,8 @@ pub enum Operation {
DeleteGroup,
// user
ModifyUserEnabled,
ModifyUserCreateServerPermissions,
ModifyUserCreateBuildPermissions,
ModifyUserPermissions,
UpdateUserPermissions,
UpdateUserPermissionsOnTarget,
// github webhook automation
AutoBuild,

View File

@@ -19,7 +19,7 @@ pub struct Update {
with = "hex_string_as_object_id"
)]
pub id: String,
pub target: UpdateTarget,
pub target: ResourceTarget,
pub operation: Operation,
pub logs: Vec<Log>,
pub start_ts: I64,
@@ -88,7 +88,7 @@ impl Log {
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Default, MungosIndexed)]
#[serde(tag = "type", content = "id")]
pub enum UpdateTarget {
pub enum ResourceTarget {
#[default]
System,
Build(String),

View File

@@ -16,6 +16,9 @@ pub use build::*;
mod builder;
pub use builder::*;
mod permissions;
pub use permissions::*;
//
#[typeshare]

View File

@@ -0,0 +1,27 @@
use resolver_api::derive::Request;
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
use crate::entities::{
update::{ResourceTarget, Update},
PermissionLevel,
};
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
#[response(Update)]
pub struct UpdateUserPermissionsOnTarget {
pub user_id: String,
pub permission: PermissionLevel,
pub target: ResourceTarget,
}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
#[response(Update)]
pub struct UpdateUserPermissions {
pub user_id: String,
pub enabled: Option<bool>,
pub create_servers: Option<bool>,
pub create_builds: Option<bool>,
}