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

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

4
.idea/workspace.xml generated
View File

@@ -7,8 +7,8 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Component/Visualiser.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/UserConnection.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/UserConnection.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/DeleteServerObjects.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/DeleteServerObjects.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -1,6 +1,7 @@
package _VisualDVM.Passes.Server; package _VisualDVM.Passes.Server;
import Common.Database.Database; import Common.Database.Database;
import Common.Database.Objects.DBObject; import Common.Database.Objects.DBObject;
import Common.Database.Objects.riDBObject;
import Common.Database.Tables.DBTable; import Common.Database.Tables.DBTable;
import _VisualDVM.Global; import _VisualDVM.Global;
import _VisualDVM.Repository.RepositoryServer; import _VisualDVM.Repository.RepositoryServer;
@@ -42,7 +43,23 @@ public class DeleteServerObjects<S extends RepositoryServer, D extends DBObject>
DBTable table = getDb().getTable(d); DBTable table = getDb().getTable(d);
if (!table.getUI().CheckSelectedOrCurrent(Log)) if (!table.getUI().CheckSelectedOrCurrent(Log))
return false; 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()); return table.getUI().ShowDeleteObjectsDialog(target.size());
} }
//Очищаем все связанные таблицы, чтобы не допустить перерисовки во время удаления объекта. //Очищаем все связанные таблицы, чтобы не допустить перерисовки во время удаления объекта.