запрет на удаление чужих объектов тестирования

This commit is contained in:
2025-02-06 19:44:59 +03:00
parent 467c9b5b31
commit 16c307103f
2 changed files with 20 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
package _VisualDVM.Passes.Server;
import Common.Database.Database;
import Common.Database.Objects.DBObject;
import Common.Database.Objects.riDBObject;
import Common.Database.Tables.DBTable;
import _VisualDVM.Global;
import _VisualDVM.Repository.RepositoryServer;
@@ -42,7 +43,23 @@ public class DeleteServerObjects<S extends RepositoryServer, D extends DBObject>
DBTable table = getDb().getTable(d);
if (!table.getUI().CheckSelectedOrCurrent(Log))
return false;
target = table.getUI().getSelectedOrCurrentKeys();
Vector<D> selected_or_current_objects = table.getUI().getSelectedOrCurrent();
Vector<Object> res = new Vector<>(); //ключи объектов после фильтрации.
Vector<Object> forbidden = new Vector<>();
for (D object: selected_or_current_objects){
if (object instanceof riDBObject){
riDBObject r = (riDBObject) object;
if (Global.mainModule.getAccount().CheckAuthorship(r.sender_address,null))
res.add(r.getPK());
else
forbidden.add(r.getPK());
}
}
if (!forbidden.isEmpty()){
Log.Writeln_("У вас нет прав на удаление "+forbidden.size()+" объектов!");
return false;
}
target = res;
return table.getUI().ShowDeleteObjectsDialog(target.size());
}
//Очищаем все связанные таблицы, чтобы не допустить перерисовки во время удаления объекта.