From 904126191e55e6d6b13c10923071fcd89aeead20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20=C3=96ZT=C3=9CRK?= <76204082+iamsedatozturk@users.noreply.github.com> Date: Thu, 12 Jun 2025 10:55:35 +0300 Subject: [PATCH] =?UTF-8?q?Tenant=20Connection=20String=20D=C3=BCzenlemele?= =?UTF-8?q?ri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/README.md | 31 ------ .../Seeds/SeederData.json | 16 +++- ui/dev-dist/sw.js | 2 +- .../TenantsConnectionString.tsx | 94 ++++++++++++++++--- 4 files changed, 96 insertions(+), 47 deletions(-) diff --git a/api/README.md b/api/README.md index f70d657a..33ca42ba 100644 --- a/api/README.md +++ b/api/README.md @@ -111,34 +111,3 @@ username=system%40sozsoft.com - Proje build olmuyorsa hatalar çözülür - Yeni migration eklenir (varsa). Migration boş çıkıyorsa kaldırılır. (Örn dotnet ef migrations add Abp902 ve dotnet ef migrations remove) - Migration boş değilse çalıştırılır (dotnet ef database update) - -# PostgreSQL Komutları -- FDW eklentisini yükle (sadece 1 kez gerekir) -``` -CREATE EXTENSION IF NOT EXISTS postgres_fdw; -``` - -- Uzak veritabanı için bağlantı tanımı yap -``` -CREATE SERVER kurs_server - FOREIGN DATA WRAPPER postgres_fdw - OPTIONS ( - host 'Ip_Adress', - dbname 'DbName', - port '5432' - ); -``` - -- Uzak veritabanı için kullanıcı eşlemesi -``` -CREATE USER MAPPING FOR sa - SERVER kurs_server - OPTIONS (user 'user', password 'password'); -``` - -- Uzak schema'dan tabloyu kendi veritabanına import et -``` -IMPORT FOREIGN SCHEMA public - FROM SERVER kurs_server - INTO public; -``` diff --git a/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json b/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json index 25117af8..d08aa7d5 100644 --- a/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json +++ b/api/src/Kurs.Platform.DbMigrator/Seeds/SeederData.json @@ -617,13 +617,13 @@ "key": "App.AuditLogs", "en": "Audit Logs", "tr": "Denetim Geçmişi" - }, + }, { "resourceName": "Platform", "key": "App.EntityChanges", "en": "Entity Changes", "tr": "Varlık Değişiklikleri" - }, + }, { "resourceName": "Platform", "key": "AccessDenied", @@ -816,6 +816,18 @@ "en": "Users Moved", "tr": "Kullanıcılar Taşındı" }, + { + "resourceName": "Platform", + "key": "Abp.Identity.CreateUser", + "en": "Create User", + "tr": "Kullanıcı Oluştur" + }, + { + "resourceName": "Platform", + "key": "Abp.Identity.UserCreating", + "en": "User Creating", + "tr": "Kullanıcı Oluşturuluyor..." + }, { "resourceName": "Platform", "key": "Abp.Identity.OrganizationUnit.Delete", diff --git a/ui/dev-dist/sw.js b/ui/dev-dist/sw.js index cedf9d3d..38383cf2 100644 --- a/ui/dev-dist/sw.js +++ b/ui/dev-dist/sw.js @@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict'; "revision": "3ca0b8505b4bec776b69afdba2768812" }, { "url": "index.html", - "revision": "0.05gfa4u7tj8" + "revision": "0.tgk2t9rlh7" }], {}); workbox.cleanupOutdatedCaches(); workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { diff --git a/ui/src/views/admin/tenant-management/TenantsConnectionString.tsx b/ui/src/views/admin/tenant-management/TenantsConnectionString.tsx index 738bcaad..4faa7f63 100644 --- a/ui/src/views/admin/tenant-management/TenantsConnectionString.tsx +++ b/ui/src/views/admin/tenant-management/TenantsConnectionString.tsx @@ -5,6 +5,7 @@ import { FormItem, Input, Notification, + Select, Tabs, toast, } from '@/components/ui' @@ -17,21 +18,26 @@ import { postSeedTenantData, putTenantDefaultConnectionString, } from '@/proxy/admin/tenant/tenant.service' +import { DataSourceTypeEnum } from '@/proxy/form' import { useLocalization } from '@/utils/hooks/useLocalization' -import { Field, Form, Formik, FormikHelpers } from 'formik' +import { Field, FieldProps, Form, Formik, FormikHelpers } from 'formik' import { Suspense, useEffect, useRef, useState } from 'react' import * as Yup from 'yup' +import { dataSourceTypeOptions } from '../listForm/edit/options' export interface ConnectionStringDto { id: string name: string value: string isNew?: boolean + dataSourceType?: number } const schemaCs = Yup.object().shape({ id: Yup.string().required(), name: Yup.string().required(), + dataSourceType: Yup.number().required(), + value: Yup.string().required(), }) const schemaSeed = Yup.object().shape({ @@ -67,7 +73,7 @@ function TenantConnectionString({ if (response.data.length == 0) { isNew = true - value = 'User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=' + name + ';' + value = '' } else { isNew = false value = response.data @@ -78,6 +84,7 @@ function TenantConnectionString({ name: 'Default', value, isNew, + ...(value && { dataSourceType: value.startsWith('Server') ? 1 : 2 }), }) setLoading(false) } @@ -138,7 +145,9 @@ function TenantConnectionString({ placement: 'top-center', }, ) - onDialogClose() + + await fetchDataTenants() + //onDialogClose() } catch (error) { toast.push( @@ -165,8 +174,6 @@ function TenantConnectionString({ setLoading(true) setSubmitting(true) - setLoading(true) - try { await postSeedTenantData(values) toast.push( @@ -207,7 +214,9 @@ function TenantConnectionString({ Connection String - Create DB / Seed Data + {connectionString.isNew + ? translate('::Abp.Account.SignUp') + : translate('::AbpTenantManagement.Tenants.DatabaseSeed')} @@ -224,7 +233,7 @@ function TenantConnectionString({
@@ -239,7 +248,55 @@ function TenantConnectionString({ + + {({ field, form }: FieldProps) => ( +