diff --git a/editoast/authz/src/model.rs b/editoast/authz/src/model.rs index b308748589c..a71d367ebd9 100644 --- a/editoast/authz/src/model.rs +++ b/editoast/authz/src/model.rs @@ -13,12 +13,12 @@ pub enum Subject { } impl Subject { - pub fn user(id: i64) -> Self { - Subject::User(User(id)) + pub fn user(user: impl Into) -> Self { + Subject::User(user.into()) } - pub fn group(id: i64) -> Self { - Subject::Group(Group(id)) + pub fn group(group: impl Into) -> Self { + Subject::Group(group.into()) } pub fn id(&self) -> i64 { @@ -65,16 +65,38 @@ impl AsRef for Subject { } #[derive( - fga::Type, fga::User, fga::Object, derive_more::FromStr, Debug, Clone, Copy, PartialEq, Eq, Hash, + fga::Type, + fga::User, + fga::Object, + derive_more::From, + derive_more::FromStr, + Debug, + Clone, + Copy, + PartialEq, + Eq, + Hash, )] pub struct User(pub i64); #[derive( - fga::Type, fga::User, fga::Object, derive_more::FromStr, Debug, Clone, Copy, PartialEq, Eq, Hash, + fga::Type, + fga::User, + fga::Object, + derive_more::From, + derive_more::FromStr, + Debug, + Clone, + Copy, + PartialEq, + Eq, + Hash, )] pub struct Group(pub i64); -#[derive(fga::Type, fga::User, fga::Object, derive_more::FromStr, Debug, Clone, Copy)] +#[derive( + fga::Type, fga::User, fga::Object, derive_more::FromStr, Debug, Clone, Copy, PartialEq, Eq, Hash, +)] pub struct Infra(pub i64); #[derive(Debug, Clone, Copy, Display, PartialEq, Eq, Hash, Serialize, Deserialize, ToSchema)]