промежуточный. нашел еще несколько уязвимостей в редактировнии чужих объектов.

This commit is contained in:
2025-02-22 15:18:22 +03:00
parent 8701c8ba36
commit f7973e0991
13 changed files with 48 additions and 54 deletions

31
.idea/workspace.xml generated
View File

@@ -7,29 +7,18 @@
</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 afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/GetDVMPackageCredetials.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/MachinesDatabase.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/PackageCredentials/DVMPackageCredentials.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/PackageCredentials/DVMPackagesCredentialsDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Visualizer_2.exe" beforeDir="false" afterPath="$PROJECT_DIR$/Visualizer_2.exe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" /> <change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Database/Objects/riDBObject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Database/Objects/riDBObject.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Global.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Global.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromDirectory.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromDirectory.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/NormalProperties.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromProject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestFromProject.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PauseDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PauseDVMPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestsFromFiles.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestsFromFiles.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ResumeDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ResumeDVMPackage.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/DetectSelectedTestsMinMaDim.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/DetectSelectedTestsMinMaDim.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartSelectedDVMConfigurations.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartSelectedDVMConfigurations.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ReplaceTestProject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ReplaceTestProject.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Testing/SaveCurrentConfiguration.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Testing/SaveCurrentConfiguration.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/SSH/RepositoryServerSSHPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/SSH/RepositoryServerSSHPass.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Group/GroupsDBTable.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Group/GroupsDBTable.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ShutdownServerPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/ShutdownServerPass.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Group/UI/GroupsForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Group/UI/GroupsForm.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/StartServerPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/Server/StartServerPass.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/MachineProcess/MachineProcess.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/MachineProcess/MachineProcess.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestsDatabase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/TestsDatabase.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.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,6 @@
{ {
"Email": "vmk-post@yandex.ru", "Email": "nataliku2@yandex.ru",
"Name": "M", "Name": "Test",
"ServerUserPassword": "mprit_2011", "ServerUserPassword": "mprit_2011",
"Workspace": "E:\\Tests", "Workspace": "E:\\Tests",
"ProjectsSearchDirectory": "E:\\Tests\\Downloads", "ProjectsSearchDirectory": "E:\\Tests\\Downloads",
@@ -26,9 +26,9 @@
"CheckTestingIntervalSeconds": 10, "CheckTestingIntervalSeconds": 10,
"AutoCheckTesting": true, "AutoCheckTesting": true,
"EmailOnTestingProgress": true, "EmailOnTestingProgress": true,
"lastMachineId": 13, "lastMachineId": 7,
"lastUserId": 34, "lastUserId": -1,
"lastCompilerId": 52, "lastCompilerId": -1,
"RegisterOn": false, "RegisterOn": false,
"SpacesOn": false, "SpacesOn": false,
"EmptyLinesOn": false, "EmptyLinesOn": false,

View File

@@ -1,8 +1,10 @@
package Common.Database.Objects; package Common.Database.Objects;
public class riDBObject extends iDBObject { public class riDBObject extends iDBObject {
//- //-
//todo int useraccount_id по объекту аккаунтов. сюда и права. и проверку их.
public String sender_name = ""; public String sender_name = "";
public String sender_address = ""; public String sender_address = "";
//---
public String description = ""; public String description = "";
//- //-
@Override @Override

View File

@@ -2,6 +2,7 @@ package Common.Visual;
import Common.CommonConstants; import Common.CommonConstants;
import Common.Database.Objects.DBObject; import Common.Database.Objects.DBObject;
import Common.Database.Objects.Grid.TableVisualData; import Common.Database.Objects.Grid.TableVisualData;
import Common.Database.Objects.riDBObject;
import Common.Database.Tables.DBTable; import Common.Database.Tables.DBTable;
import Common.Database.Tables.DataSet; import Common.Database.Tables.DataSet;
import Common.Database.Tables.FKBehaviour; import Common.Database.Tables.FKBehaviour;
@@ -14,6 +15,7 @@ import Common.Visual.Menus.TableMenu;
import Common.Visual.Tables.*; import Common.Visual.Tables.*;
import Common.Visual.Tables.Grid.GridAnchestor; import Common.Visual.Tables.Grid.GridAnchestor;
import Common.Visual.Windows.Dialog.DBObjectDialog; import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import javax.swing.*; import javax.swing.*;
import javax.swing.table.TableColumn; import javax.swing.table.TableColumn;
@@ -575,4 +577,9 @@ public abstract class DataSetControlForm<D extends DBObject> extends ControlForm
public Object getCurrentPK(Object nanValue){ public Object getCurrentPK(Object nanValue){
return current==null? nanValue: current.getPK(); return current==null? nanValue: current.getPK();
} }
//todo временное решение ? ->>>
public boolean canModifyCurrent(TextLog Log){
return CheckCurrent(Log) && (
!(current instanceof riDBObject) || Global.mainModule.getAccount().CheckAuthorship(((riDBObject)current).sender_address,Log));
}
} }

View File

@@ -69,8 +69,9 @@ public class CreateTestFromDirectory extends Pass<Test> {
if (args.length == 0) { if (args.length == 0) {
//-- //--
from_files_chooser = true; from_files_chooser = true;
if (!Global.testingServer.db.groups.getUI().CheckCurrent(Log)) if (!Global.testingServer.db.groups.getUI().canModifyCurrent(Log)) {
return false; return false;
}
group = Global.testingServer.db.groups.getUI().getCurrent(); group = Global.testingServer.db.groups.getUI().getCurrent();
if (!selectFiles()) if (!selectFiles())
return false; return false;

View File

@@ -4,8 +4,7 @@ import _VisualDVM.Global;
import _VisualDVM.ProjectData.Files.FileState; import _VisualDVM.ProjectData.Files.FileState;
import _VisualDVM.ProjectData.Files.ProjectFile; import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.Project.db_project_info; import _VisualDVM.ProjectData.Project.db_project_info;
import _VisualDVM.TestingSystem.Common.Group.Group; //добавить в текущую группу новый тест из текущего проекта.
//из текущего проекта.
public class CreateTestFromProject extends CreateTestFromDirectory { public class CreateTestFromProject extends CreateTestFromDirectory {
db_project_info project; db_project_info project;
@Override @Override
@@ -14,25 +13,14 @@ public class CreateTestFromProject extends CreateTestFromDirectory {
} }
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
if (args.length == 0) { if (Global.testingServer.db.groups.getUI().canModifyCurrent(Log) && Global.mainModule.Check(Log, Current.Project)) {
if (Global.testingServer.db.groups.getUI().CheckCurrent(Log) && Global.mainModule.Check(Log, Current.Project)) { project = Global.mainModule.getProject();
project = Global.mainModule.getProject(); if (super.canStart(
if (super.canStart( project.Home,
project.Home, Global.testingServer.db.groups.getUI().getCurrent())) {
Global.testingServer.db.groups.getUI().getCurrent())) { from_files_chooser = true; //чтобы опубликовал.
from_files_chooser = true; //чтобы опубликовал. return true;
return true;
}
} }
} else {
project = (db_project_info) args[0];
group = (Group) args[1];
//если проект не текущий, освежить его бд.
if (!Global.mainModule.HasProject() || !Global.mainModule.getProject().Home.equals(project.Home)) {
project.Open();
project.Close();
}
return super.canStart(project.Home, group);
} }
return false; return false;
} }

View File

@@ -18,7 +18,7 @@ public class CreateTestsFromFiles extends PublishTests {
} }
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
if (Global.testingServer.db.groups.getUI().CheckCurrent(Log)) { if (Global.testingServer.db.groups.getUI().canModifyCurrent(Log)) {
Utils.RestoreSelectedDirectory(fileChooser); Utils.RestoreSelectedDirectory(fileChooser);
Vector<File> files = fileChooser.ShowMultiDialog(); Vector<File> files = fileChooser.ShowMultiDialog();
if (files.isEmpty()) { if (files.isEmpty()) {

View File

@@ -12,10 +12,13 @@ public class DetectSelectedTestsMinMaDim extends TestingServerPass<Vector<Object
} }
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
if (!Global.testingServer.db.tests.getUI().CheckSelectedOrCurrent(Log)) if (Global.testingServer.db.groups.getUI().canModifyCurrent(Log)) {
return false; if (!Global.testingServer.db.tests.getUI().CheckSelectedOrCurrent(Log))
target=Global.testingServer.db.tests.getUI().getSelectedOrCurrentKeys(); return false;
return SendRequest(ServerCode.DetectTestsMinMaxDim, "",target); target = Global.testingServer.db.tests.getUI().getSelectedOrCurrentKeys();
return SendRequest(ServerCode.DetectTestsMinMaxDim, "", target);
}
return false;
} }
@Override @Override
protected void performDone() throws Exception { protected void performDone() throws Exception {

View File

@@ -5,6 +5,7 @@ import _VisualDVM.Passes.Server.TestingServerPass;
import _VisualDVM.Repository.Server.ServerCode; import _VisualDVM.Repository.Server.ServerCode;
import java.io.Serializable; import java.io.Serializable;
//заменить текущий тест на текущий проект.
public class ReplaceTestProject extends CreateTestFromProject { public class ReplaceTestProject extends CreateTestFromProject {
@Override @Override
public String getIconPath() { public String getIconPath() {

View File

@@ -30,7 +30,7 @@ public class ReplaceTestsFromFiles extends TestingServerPass<Vector<Test>> {
//- //-
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
if (!Global.testingServer.db.groups.getUI().CheckCurrent(Log)) if (!Global.testingServer.db.groups.getUI().canModifyCurrent(Log))
return false; return false;
group = Global.testingServer.db.groups.getUI().getCurrent(); group = Global.testingServer.db.groups.getUI().getCurrent();
//--->>> //--->>>

View File

@@ -29,7 +29,7 @@ public abstract class SaveCurrentConfiguration<C extends Configuration, S extend
protected abstract Class currentClass(); protected abstract Class currentClass();
@Override @Override
protected boolean canStart(Object... args) throws Exception { protected boolean canStart(Object... args) throws Exception {
if (!Global.testingServer.db.getTable(currentClass()).getUI().CheckCurrent(Log)) return false; if (!Global.testingServer.db.getTable(currentClass()).getUI().canModifyCurrent(Log)) return false;
target = (C) Global.testingServer.db.getTable(currentClass()).getUI().getCurrent(); target = (C) Global.testingServer.db.getTable(currentClass()).getUI().getCurrent();
//-- //--
groups = new Vector<>(); groups = new Vector<>();

View File

@@ -5,6 +5,7 @@ import Common.Database.Tables.FKCurrentObjectBehaviuor;
import Common.Database.Tables.FKDataBehaviour; import Common.Database.Tables.FKDataBehaviour;
import Common.Database.Tables.iDBTable; import Common.Database.Tables.iDBTable;
import Common.Visual.DataSetControlForm; import Common.Visual.DataSetControlForm;
import _VisualDVM.Global;
import _VisualDVM.ProjectData.LanguageName; import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Group.UI.GroupsForm; import _VisualDVM.TestingSystem.Common.Group.UI.GroupsForm;
import _VisualDVM.TestingSystem.Common.Test.Test; import _VisualDVM.TestingSystem.Common.Test.Test;
@@ -50,4 +51,5 @@ public class GroupsDBTable extends iDBTable<Group> {
} }
return null; return null;
} }
// CheckCurrent(Log) && Global.mainModule.getAccount().CheckAuthorship(getCurrent().sender_address, Log);
} }

View File

@@ -1,6 +1,7 @@
package _VisualDVM.TestingSystem.Common.Group.UI; package _VisualDVM.TestingSystem.Common.Group.UI;
import Common.Database.Tables.DataSet; import Common.Database.Tables.DataSet;
import Common.Passes.PassCode_; import Common.Passes.PassCode_;
import Common.Utils.TextLog;
import Common.Visual.Controls.MenuBarButton; import Common.Visual.Controls.MenuBarButton;
import Common.Visual.Controls.StableMenuItem; import Common.Visual.Controls.StableMenuItem;
import Common.Visual.DataSetControlForm; import Common.Visual.DataSetControlForm;