Elimina la excesiva rigidez que impone SeaORM

This commit is contained in:
Manuel Cillero 2022-04-22 20:54:44 +02:00
parent d07611d044
commit 13c2e77688
7 changed files with 0 additions and 166 deletions

View file

@ -1,4 +0,0 @@
pub mod role;
pub mod role_permission;
pub mod user;
pub mod user_role;

View file

@ -1,41 +0,0 @@
use pagetop::db::entity::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "role")]
pub struct Model {
#[sea_orm(primary_key)]
pub rid : u32,
#[sea_orm(unique)]
pub name : String,
#[sea_orm(default_value = 0)]
pub weight: i32,
}
#[derive(Copy, Clone, Debug, EnumIter)]
pub enum Relation {
RolePermission,
UserRole,
}
impl RelationTrait for Relation {
fn def(&self) -> RelationDef {
match self {
Self::RolePermission => Entity::has_many(super::role_permission::Entity).into(),
Self::UserRole => Entity::has_many(super::user_role::Entity).into(),
}
}
}
impl Related<super::role_permission::Entity> for Entity {
fn to() -> RelationDef {
Relation::RolePermission.def()
}
}
impl Related<super::user_role::Entity> for Entity {
fn to() -> RelationDef {
Relation::UserRole.def()
}
}
impl ActiveModelBehavior for ActiveModel {}

View file

@ -1,35 +0,0 @@
use pagetop::db::entity::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "role_permission")]
pub struct Model {
#[sea_orm(primary_key)]
pub rid : u32,
#[sea_orm(primary_key)]
pub permission: String,
pub module : String,
}
#[derive(Copy, Clone, Debug, EnumIter)]
pub enum Relation {
Role,
}
impl RelationTrait for Relation {
fn def(&self) -> RelationDef {
match self {
Self::Role => Entity::belongs_to(super::role::Entity)
.from(Column::Rid)
.to(super::role::Column::Rid)
.into(),
}
}
}
impl Related<super::role::Entity> for Entity {
fn to() -> RelationDef {
Relation::Role.def()
}
}
impl ActiveModelBehavior for ActiveModel {}

View file

@ -1,39 +0,0 @@
use pagetop::db::entity::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "user")]
pub struct Model {
#[sea_orm(primary_key, auto_increment = false)]
pub uid : u32,
#[sea_orm(unique)]
pub name : String,
pub pass : String,
pub mail : Option<String>,
pub created : DateTimeUtc,
pub changed : DateTimeUtc,
pub access : DateTimeUtc,
pub login : DateTimeUtc,
pub status : bool,
pub timezone: Option<String>,
}
#[derive(Copy, Clone, Debug, EnumIter)]
pub enum Relation {
UserRole,
}
impl RelationTrait for Relation {
fn def(&self) -> RelationDef {
match self {
Self::UserRole => Entity::has_many(super::user_role::Entity).into(),
}
}
}
impl Related<super::user_role::Entity> for Entity {
fn to() -> RelationDef {
Relation::UserRole.def()
}
}
impl ActiveModelBehavior for ActiveModel {}

View file

@ -1,45 +0,0 @@
use pagetop::db::entity::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[sea_orm(table_name = "user_role")]
pub struct Model {
#[sea_orm(primary_key)]
pub uid: u32,
#[sea_orm(primary_key)]
pub rid: u32,
}
#[derive(Copy, Clone, Debug, EnumIter)]
pub enum Relation {
User,
Role,
}
impl RelationTrait for Relation {
fn def(&self) -> RelationDef {
match self {
Self::User => Entity::belongs_to(super::user::Entity)
.from(Column::Uid)
.to(super::user::Column::Uid)
.into(),
Self::Role => Entity::belongs_to(super::role::Entity)
.from(Column::Rid)
.to(super::role::Column::Rid)
.into(),
}
}
}
impl Related<super::user::Entity> for Entity {
fn to() -> RelationDef {
Relation::User.def()
}
}
impl Related<super::role::Entity> for Entity {
fn to() -> RelationDef {
Relation::Role.def()
}
}
impl ActiveModelBehavior for ActiveModel {}

View file

@ -2,7 +2,6 @@ use pagetop::prelude::*;
localize!("src/locales");
mod entity;
mod migration;
pub struct UserModule;