chore(ci): clear Drone CI
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
ZhenYi 2026-04-14 23:52:07 +08:00
parent 59441f305b
commit 28156bdda4
4 changed files with 2 additions and 93 deletions

View File

@ -3,6 +3,8 @@
kind: pipeline
type: kubernetes
name: default
clone:
disable: true
trigger:
event:

View File

@ -1,93 +0,0 @@
use crate::AppModules;
use crate::errors::AppError;
use context::Context;
use models::active_enums::MemberRole;
use models::project::{project_history_names, project_members, projects};
use models::repos::repo;
use sea_orm::*;
use uuid::Uuid;
impl AppModules {
pub async fn find_project_by_name(&self, name: String) -> Result<projects::Model, AppError> {
match projects::Entity::find()
.filter(projects::Column::Name.eq(name.clone()))
.one(&self.db.reader())
.await
.ok()
.flatten()
{
Some(project) => Ok(project),
None => match project_history_names::Entity::find()
.filter(project_history_names::Column::HistoryName.eq(name))
.one(&self.db.reader())
.await
.ok()
.flatten()
{
Some(project) => self.find_project_by_uid(project.project_uid).await,
None => Err(AppError::ProjectNotFound),
},
}
}
pub async fn find_project_by_uid(&self, uid: Uuid) -> Result<projects::Model, AppError> {
projects::Entity::find_by_id(uid)
.one(&self.db.reader())
.await
.ok()
.flatten()
.ok_or(AppError::ProjectNotFound)
}
pub async fn check_project_permission(
&self,
project_id: &Uuid,
user_id: Uuid,
required_scopes: &[MemberRole],
) -> Result<(), AppError> {
let member = project_members::Entity::find()
.filter(project_members::Column::ProjectId.eq(*project_id))
.filter(project_members::Column::UserId.eq(user_id))
.one(&self.db.reader())
.await?;
if let Some(member) = member {
for scope in required_scopes {
if &member.scope == scope {
return Ok(());
}
}
}
Err(AppError::NoPower)
}
pub async fn project_context_role(
&self,
context: &Context,
project_name: String,
) -> Result<MemberRole, AppError> {
let user_uid = context.user().ok_or(AppError::Unauthorized)?;
let project = self.find_project_by_name(project_name).await?;
let members = project_members::Entity::find()
.filter(project_members::Column::ProjectId.eq(project.uid))
.filter(project_members::Column::UserId.eq(user_uid))
.one(&self.db.reader())
.await
.map_err(|_| AppError::InternalError)?
.map(|m| m.scope);
members.ok_or(AppError::Unauthorized)
}
pub async fn find_repo_by_name(
&self,
project_uid: Uuid,
repo_name: &str,
) -> Result<repo::Model, AppError> {
repo::Entity::find()
.filter(repo::Column::ProjectUid.eq(project_uid))
.filter(repo::Column::RepoName.eq(repo_name))
.one(&self.db.reader())
.await?
.ok_or(AppError::NotFound(format!("Repository '{}' not found", repo_name)))
}
}