Implement models::instance::Instance.has_admin

This commit is contained in:
Bat 2018-04-22 19:17:40 +01:00
parent a7774444fe
commit f8372f6383
1 changed files with 7 additions and 2 deletions

View File

@ -1,7 +1,8 @@
use diesel; use diesel;
use diesel::{ QueryDsl, RunQueryDsl, ExpressionMethods, PgConnection }; use diesel::{ QueryDsl, RunQueryDsl, ExpressionMethods, PgConnection };
use std::iter::Iterator; use std::iter::Iterator;
use schema::instances; use schema::{instances, users};
use models::user::User;
#[derive(Identifiable, Queryable)] #[derive(Identifiable, Queryable)]
pub struct Instance { pub struct Instance {
@ -54,6 +55,10 @@ impl Instance {
pub fn block(&self) {} pub fn block(&self) {}
pub fn has_admin(&self, conn: &PgConnection) -> bool { pub fn has_admin(&self, conn: &PgConnection) -> bool {
false users::table.filter(users::instance_id.eq(self.id))
.filter(users::is_admin.eq(true))
.load::<User>(conn)
.expect("Couldn't load admins")
.len() > 0
} }
} }