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

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 name="ChangeListManager">
<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$/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$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.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/_VisualDVM/Global.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Global.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/PauseDVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PauseDVMPackage.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/StartSelectedDVMConfigurations.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/StartSelectedDVMConfigurations.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/SSH/RepositoryServerSSHPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/SSH/RepositoryServerSSHPass.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/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" />
<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/Common/Visual/DataSetControlForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Visual/DataSetControlForm.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/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/CreateTestsFromFiles.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/CreateTestsFromFiles.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/ReplaceTestProject.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/ReplaceTestProject.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/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/TestingSystem/Common/Group/UI/GroupsForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/Common/Group/UI/GroupsForm.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

View File

@@ -1,6 +1,6 @@
{
"Email": "vmk-post@yandex.ru",
"Name": "M",
"Email": "nataliku2@yandex.ru",
"Name": "Test",
"ServerUserPassword": "mprit_2011",
"Workspace": "E:\\Tests",
"ProjectsSearchDirectory": "E:\\Tests\\Downloads",
@@ -26,9 +26,9 @@
"CheckTestingIntervalSeconds": 10,
"AutoCheckTesting": true,
"EmailOnTestingProgress": true,
"lastMachineId": 13,
"lastUserId": 34,
"lastCompilerId": 52,
"lastMachineId": 7,
"lastUserId": -1,
"lastCompilerId": -1,
"RegisterOn": false,
"SpacesOn": false,
"EmptyLinesOn": false,

View File

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

View File

@@ -2,6 +2,7 @@ package Common.Visual;
import Common.CommonConstants;
import Common.Database.Objects.DBObject;
import Common.Database.Objects.Grid.TableVisualData;
import Common.Database.Objects.riDBObject;
import Common.Database.Tables.DBTable;
import Common.Database.Tables.DataSet;
import Common.Database.Tables.FKBehaviour;
@@ -14,6 +15,7 @@ import Common.Visual.Menus.TableMenu;
import Common.Visual.Tables.*;
import Common.Visual.Tables.Grid.GridAnchestor;
import Common.Visual.Windows.Dialog.DBObjectDialog;
import _VisualDVM.Global;
import javax.swing.*;
import javax.swing.table.TableColumn;
@@ -575,4 +577,9 @@ public abstract class DataSetControlForm<D extends DBObject> extends ControlForm
public Object getCurrentPK(Object nanValue){
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) {
//--
from_files_chooser = true;
if (!Global.testingServer.db.groups.getUI().CheckCurrent(Log))
if (!Global.testingServer.db.groups.getUI().canModifyCurrent(Log)) {
return false;
}
group = Global.testingServer.db.groups.getUI().getCurrent();
if (!selectFiles())
return false;

View File

@@ -4,8 +4,7 @@ import _VisualDVM.Global;
import _VisualDVM.ProjectData.Files.FileState;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.Project.db_project_info;
import _VisualDVM.TestingSystem.Common.Group.Group;
//из текущего проекта.
//добавить в текущую группу новый тест из текущего проекта.
public class CreateTestFromProject extends CreateTestFromDirectory {
db_project_info project;
@Override
@@ -14,8 +13,7 @@ public class CreateTestFromProject extends CreateTestFromDirectory {
}
@Override
protected boolean canStart(Object... args) throws Exception {
if (args.length == 0) {
if (Global.testingServer.db.groups.getUI().CheckCurrent(Log) && Global.mainModule.Check(Log, Current.Project)) {
if (Global.testingServer.db.groups.getUI().canModifyCurrent(Log) && Global.mainModule.Check(Log, Current.Project)) {
project = Global.mainModule.getProject();
if (super.canStart(
project.Home,
@@ -24,16 +22,6 @@ public class CreateTestFromProject extends CreateTestFromDirectory {
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;
}
@Override

View File

@@ -18,7 +18,7 @@ public class CreateTestsFromFiles extends PublishTests {
}
@Override
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);
Vector<File> files = fileChooser.ShowMultiDialog();
if (files.isEmpty()) {

View File

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

View File

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

View File

@@ -30,7 +30,7 @@ public class ReplaceTestsFromFiles extends TestingServerPass<Vector<Test>> {
//-
@Override
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;
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();
@Override
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();
//--
groups = new Vector<>();

View File

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

View File

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