kgdxpr 1 year ago
commit 751ed426a5

@ -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);

Loading…
Cancel
Save