From ddd7d91c0627e365cff61c08e05d2b56f868f39f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 24 Jul 2024 09:09:31 +0800 Subject: [PATCH] 'commit' --- .../DataShare/Model/DataShareModel.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/dsideal/QingLong/DataShare/Model/DataShareModel.java b/src/main/java/com/dsideal/QingLong/DataShare/Model/DataShareModel.java index cda0122b..a30f2a31 100644 --- a/src/main/java/com/dsideal/QingLong/DataShare/Model/DataShareModel.java +++ b/src/main/java/com/dsideal/QingLong/DataShare/Model/DataShareModel.java @@ -86,14 +86,23 @@ public class DataShareModel { * @param table_names */ public void share(int system_id, String table_names) { - //记录PG权限 + //系统的数据库账号 + String user_name = getSystemById(system_id).getStr("user_name"); + //1、回收原来共享表的写权限 + for (Record r : getShareTable(system_id)) {//原来有哪些共享表? + String table_name = r.getStr("table_name"); + PgUtil.revokeUserPrivilege(user_name, table_name, PgUtil.WRITE); + } + //2、重新分配共享表的写权限 for (String s : table_names.split(",")) { - PgUtil.grantUserPrivilege(getSystemById(system_id).getStr("user_name"), s, PgUtil.WRITE); + PgUtil.grantUserPrivilege(user_name, s, PgUtil.WRITE); } - //删除旧数据 + //3、原来订阅这个系统有第三方系统有哪些,它们的用户都需要取消对原来表的读授权 + + //4、删除旧数据 String sql = "delete from t_datashare_table where system_id=?"; Db.update(sql, system_id); - //保存新数据 + //5、保存新数据 for (String s : table_names.split(",")) { Record record = new Record(); record.set("system_id", system_id);