This commit is contained in:
병준 박 2022-08-08 00:59:34 +00:00
parent f2d52a39f5
commit 6fe18fc3db
14 changed files with 79 additions and 83 deletions

View File

@ -0,0 +1,4 @@
DROP UNIQUE INDEX uidx_sites_url;
DROP TRIGGER tg_sites_updated_at;
DROP TABLE sites;

View File

@ -1,4 +1,4 @@
CREATE TABLE IF NOT EXISTS member_sites (
CREATE TABLE IF NOT EXISTS sites (
id UUID DEFAULT uuid_generate_v4(),
url TEXT NOT NULL,
show BOOLEAN NOT NULL DEFAULT TRUE,
@ -10,11 +10,11 @@ CREATE TABLE IF NOT EXISTS member_sites (
UNIQUE (url)
);
CREATE UNIQUE INDEX uidx_member_sites_url ON member_sites (url);
CREATE UNIQUE INDEX uidx_sites_url ON sites (url);
-- trigger (updated_at)
CREATE TRIGGER tg_member_sites_updated_at
CREATE TRIGGER tg_sites_updated_at
BEFORE UPDATE
ON member_sites
ON sites
FOR EACH ROW
EXECUTE PROCEDURE update_updated_at_column();

View File

@ -1,4 +0,0 @@
DROP UNIQUE INDEX uidx_member_sites_url;
DROP TRIGGER tg_member_sites_updated_at;
DROP TABLE member_sites;

View File

@ -3,7 +3,7 @@ CREATE TYPE member_state AS ENUM ('normal', 'pending', 'withdrawal', 'dormancy',
CREATE TABLE IF NOT EXISTS members (
id UUID DEFAULT uuid_generate_v4(),
member_site_id UUID NOT NULL,
site_id UUID NOT NULL,
member_class_id UUID NOT NULL,
member_level_id UUID NOT NULL,
username TEXT NOT NULL,
@ -21,9 +21,9 @@ CREATE TABLE IF NOT EXISTS members (
deleted_at BIGINT,
PRIMARY KEY (id),
UNIQUE (username),
CONSTRAINT fk_members_member_site_id
FOREIGN KEY(member_site_id)
REFERENCES member_sites(id),
CONSTRAINT fk_members_site_id
FOREIGN KEY(site_id)
REFERENCES sites(id),
CONSTRAINT fk_members_member_class_id
FOREIGN KEY(member_class_id)
REFERENCES member_classes(id),

View File

@ -70,9 +70,9 @@ INSERT INTO role_resource_actions (role_id, resource_action_id) VALUES ('b6a2b66
-- identity.signout
INSERT INTO role_resource_actions (role_id, resource_action_id) VALUES ('b6a2b662-e21e-44e7-a96c-dacd86f9d6b8', '37b99823-188b-4b30-afb7-815a7e79662b');
INSERT INTO sites (id, url, show) VALUES ('d7cbae26-53b6-4cb1-85a4-66b956cbe1d4', '*', false);
INSERT INTO sites (id, url, show) VALUES ('8429a7ab-b9de-400b-a209-28ff46e22bec', '127.0.0.1', true);
INSERT INTO member_sites (id, url, show) VALUES ('d7cbae26-53b6-4cb1-85a4-66b956cbe1d4', '*', false);
INSERT INTO member_sites (id, url, show) VALUES ('8429a7ab-b9de-400b-a209-28ff46e22bec', '127.0.0.1', true);
INSERT INTO member_levels (id, name, sort_order, show) VALUES ('c238463f-949d-49eb-92ab-dca7a09371db', 'LEVEL0', 0, false);
INSERT INTO member_levels (id, name, sort_order, show) VALUES ('c56231ac-2120-4a81-a30a-5d41fafb6c57', 'LEVEL1', 1, true);
@ -92,7 +92,7 @@ INSERT INTO member_classes (id, name, parent_id, show) VALUES ('4598f07a-86d1-42
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -104,7 +104,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -116,7 +116,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -128,7 +128,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -140,7 +140,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -152,7 +152,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -164,7 +164,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -176,7 +176,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -188,7 +188,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -205,7 +205,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -217,7 +217,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -229,7 +229,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -241,7 +241,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -257,7 +257,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -269,7 +269,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -281,7 +281,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -293,7 +293,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -310,7 +310,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -322,7 +322,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -334,7 +334,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -346,7 +346,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -363,7 +363,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -375,7 +375,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -387,7 +387,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (
@ -399,7 +399,7 @@ INSERT INTO members(
INSERT INTO members(
id,
member_site_id, member_class_id, member_level_id,
site_id, member_class_id, member_level_id,
username, password, nickname, mobile_phone_number,
state
) VALUES (

View File

@ -8,7 +8,7 @@ pub struct Member {
///
pub id: uuid::Uuid,
///
pub member_site_id: uuid::Uuid,
pub site_id: uuid::Uuid,
///
pub member_class_id: uuid::Uuid,
///
@ -46,7 +46,7 @@ pub struct Member {
#[table_name = "members"]
pub struct NewMember {
///
pub member_site_id: uuid::Uuid,
pub site_id: uuid::Uuid,
///
pub member_class_id: uuid::Uuid,
///
@ -68,7 +68,7 @@ pub struct NewMember {
#[table_name = "members"]
pub struct ModifyMember {
///
pub member_site_id: Option<uuid::Uuid>,
pub site_id: Option<uuid::Uuid>,
///
pub member_level_id: Option<uuid::Uuid>,
///
@ -99,7 +99,7 @@ pub struct ModifyMember4DeletedAt {
#[derive(Debug, Clone)]
pub struct FindAll {
///
pub member_site_id: Option<uuid::Uuid>,
pub site_id: Option<uuid::Uuid>,
///
pub member_class_id: Option<uuid::Uuid>,
///

View File

@ -105,8 +105,8 @@ impl Repository {
let mut q = members::table.into_boxed();
if let Some(sp) = find_all.member_site_id {
q = q.filter(dsl::member_site_id.eq(sp));
if let Some(sp) = find_all.site_id {
q = q.filter(dsl::site_id.eq(sp));
}
if let Some(sp) = find_all.member_class_id {
q = q.filter(dsl::member_class_id.eq(sp));
@ -148,8 +148,8 @@ impl Repository {
let mut q = members::table.into_boxed();
if let Some(sp) = find_all.member_site_id {
q = q.filter(dsl::member_site_id.eq(sp));
if let Some(sp) = find_all.site_id {
q = q.filter(dsl::site_id.eq(sp));
}
if let Some(sp) = find_all.member_class_id {
q = q.filter(dsl::member_class_id.eq(sp));

View File

@ -21,7 +21,7 @@ table! {
///
id -> Uuid,
///
member_site_id -> Uuid,
site_id -> Uuid,
///
member_class_id -> Uuid,
///

View File

@ -4,8 +4,8 @@ pub mod member_level;
pub mod member_permission;
pub mod member_role;
pub mod member_session;
pub mod member_site;
pub mod resource;
pub mod resource_action;
pub mod role;
pub mod role_resource_action;
pub mod site;

View File

@ -1,10 +1,10 @@
use super::schema::member_sites;
use super::schema::sites;
use beteran_common_rust as bcr;
///
#[derive(Eq, Hash, Identifiable, Queryable, PartialEq, Debug, Clone)]
#[table_name = "member_sites"]
pub struct MemberSite {
#[table_name = "sites"]
pub struct Site {
///
pub id: uuid::Uuid,
///

View File

@ -1,6 +1,6 @@
//!
//!
use super::{models, schema::member_sites};
use super::{models, schema::sites};
use beteran_common_rust as bcr;
use diesel::prelude::*;
use diesel::result::Error;
@ -10,7 +10,7 @@ pub struct Repository {}
impl std::fmt::Debug for Repository {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("Repository of member_sites").finish()
f.debug_struct("Repository of sites").finish()
}
}
@ -27,14 +27,10 @@ impl Repository {
}
///
pub fn select(
&self,
conn: &diesel::PgConnection,
id: uuid::Uuid,
) -> Result<models::MemberSite, Error> {
member_sites::table
pub fn select(&self, conn: &diesel::PgConnection, id: uuid::Uuid) -> Result<models::Site, Error> {
sites::table
.find(id as uuid::Uuid)
.first::<models::MemberSite>(conn)
.first::<models::Site>(conn)
}
///
@ -42,12 +38,12 @@ impl Repository {
&self,
conn: &diesel::PgConnection,
url: &str,
) -> Result<Option<models::MemberSite>, Error> {
use member_sites::dsl;
) -> Result<Option<models::Site>, Error> {
use sites::dsl;
match member_sites::table
match sites::table
.filter(dsl::url.eq(url))
.first::<models::MemberSite>(conn)
.first::<models::Site>(conn)
{
Ok(m) => Ok(Some(m)),
Err(e) => match e {
@ -63,10 +59,10 @@ impl Repository {
conn: &diesel::PgConnection,
find_all: models::FindAll,
) -> Result<i64, Error> {
let mut q = member_sites::table.into_boxed();
let mut q = sites::table.into_boxed();
if let Some(sp) = find_all.url_like {
q = q.filter(member_sites::dsl::url.like(sp));
q = q.filter(sites::dsl::url.like(sp));
}
q.count().get_result(conn)
@ -77,11 +73,11 @@ impl Repository {
&self,
conn: &diesel::PgConnection,
find_all: models::FindAll,
) -> Result<Vec<models::MemberSite>, Error> {
let mut q = member_sites::table.into_boxed();
) -> Result<Vec<models::Site>, Error> {
let mut q = sites::table.into_boxed();
if let Some(sp) = find_all.url_like {
q = q.filter(member_sites::dsl::url.like(sp));
q = q.filter(sites::dsl::url.like(sp));
}
if let Some(p) = find_all.pagination {
@ -97,31 +93,31 @@ impl Repository {
match s {
bcr::models::pagination::Sort::ASC(property) => match property.as_str() {
"url" => {
q = q.order_by(member_sites::url.asc());
q = q.order_by(sites::url.asc());
}
"created_at" => {
q = q.order_by(member_sites::created_at.asc());
q = q.order_by(sites::created_at.asc());
}
"updated_at" => {
q = q.order_by(member_sites::updated_at.asc());
q = q.order_by(sites::updated_at.asc());
}
"deleted_at" => {
q = q.order_by(member_sites::deleted_at.asc());
q = q.order_by(sites::deleted_at.asc());
}
_ => {}
},
bcr::models::pagination::Sort::DESC(property) => match property.as_str() {
"url" => {
q = q.order_by(member_sites::url.desc());
q = q.order_by(sites::url.desc());
}
"created_at" => {
q = q.order_by(member_sites::created_at.desc());
q = q.order_by(sites::created_at.desc());
}
"updated_at" => {
q = q.order_by(member_sites::updated_at.desc());
q = q.order_by(sites::updated_at.desc());
}
"deleted_at" => {
q = q.order_by(member_sites::deleted_at.desc());
q = q.order_by(sites::deleted_at.desc());
}
_ => {}
},
@ -129,6 +125,6 @@ impl Repository {
}
}
q.load::<models::MemberSite>(conn)
q.load::<models::Site>(conn)
}
}

View File

@ -3,7 +3,7 @@
table! {
///
member_sites(id) {
sites(id) {
///
id -> Uuid,
///

View File

@ -16,7 +16,7 @@ pub struct Service<'a> {
queue_broker: String,
pool: Pool<ConnectionManager<PgConnection>>,
member_repository: repositories::member::repository::Repository,
member_site_repository: repositories::member_site::repository::Repository,
member_site_repository: repositories::site::repository::Repository,
member_session_repository: repositories::member_session::repository::Repository,
argon2_config: argon2::Config<'a>,
captcha_salt: String,
@ -44,7 +44,7 @@ impl Service<'_> {
queue_broker,
pool,
member_repository: repositories::member::repository::Repository::new(),
member_site_repository: repositories::member_site::repository::Repository::new(),
member_site_repository: repositories::site::repository::Repository::new(),
member_session_repository: repositories::member_session::repository::Repository::new(),
argon2_config: argon2::Config::default(),
captcha_salt,
@ -544,7 +544,7 @@ impl Service<'_> {
}
};
if m.member_site_id != ms.id {
if m.site_id != ms.id {
return Err(bcr::error::rpc::Error::InvalidParams(
bcr::error::rpc::InvalidParams {
message: "invalid site_url".to_string(),