исправление безопасности. промежуточный.

This commit is contained in:
2025-02-06 18:31:18 +03:00
parent 6e0e51beff
commit 20e82075b7
11 changed files with 41 additions and 25 deletions

View File

@@ -20,7 +20,12 @@ public class Pass<T> {
public PassState state = PassState.Inactive; //текущее состояние прохода.
public Semaphore animation_sem;
//--------------
public boolean ui_visible = true;
public Vector<PassControl> controls = new Vector<>();
public void addControl(PassControl control_in){
control_in.setVisible(ui_visible);
controls.add(control_in);
}
public TextLog Log; //внутренний журнал прохода.
protected boolean interrupt;
protected SwingWorker dispatcher = null;
@@ -74,8 +79,9 @@ public class Pass<T> {
control.setEnabled(flag);
}
public void setControlsVisible(boolean flag) {
ui_visible =flag;
for (PassControl control : controls)
control.setVisible(flag);
control.setVisible(ui_visible);
}
public void setControlsToolTipText(String text) {
for (PassControl control : controls)

View File

@@ -16,7 +16,7 @@ public class PassButton extends MenuBarButton implements PassControl {
setIcon(pass.getIconPath());
}
addActionListener(pass.getControlAction());
pass.controls.add(this);
pass.addControl(this);
}
public PassButton(Pass pass) {
this(pass, false);

View File

@@ -1,4 +1,5 @@
package Common.Visual.Controls;
import Common.Passes.Pass;
public interface PassControl {
void setIcon(String icon_path);
void setEnabled(boolean flag);

View File

@@ -8,7 +8,7 @@ public class PassMenuItem extends VisualiserMenuItem implements PassControl {
setToolTipText(pass.getDescription());
if (pass.getIconPath() != null) setIcon(pass.getIconPath());
addActionListener(pass.getControlAction());
pass.controls.add(this);
pass.addControl(this);
}
@Override
public void setIcon(String icon_path) {

View File

@@ -7,7 +7,7 @@ public class StablePassMenuItem extends StableMenuItem implements PassControl {
setToolTipText(pass.getDescription());
if (pass.getIconPath() != null) setIcon(pass.getIconPath());
addActionListener(pass.getControlAction());
pass.controls.add(this);
pass.addControl(this);
}
@Override
public void setIcon(String icon_path) {

View File

@@ -34,7 +34,8 @@ public class MainModule extends MainModule_<GlobalDatabase, MainUI> {
//
PassCode.ShutdownTestingServer,
PassCode.StartTestingServer,
PassCode.PublishTestingServer
PassCode.PublishTestingServer,
PassCode.CreateTestsGroupFromSelectedVersions
);
public MainModule() throws Exception {
super(GlobalDatabase.class, MainUI.class);
@@ -147,6 +148,7 @@ public class MainModule extends MainModule_<GlobalDatabase, MainUI> {
}
public void SetDeveloperPassesAccess() {
SetUserPassesAccess();
getPass(PassCode.CreateTestsGroupFromSelectedVersions).setControlsVisible(true);
getPass(PassCode.DownloadAllBugReportsArchives).setControlsVisible(true);
}
public void SetAdminPassesAccess() {

View File

@@ -24,6 +24,7 @@ public interface CallbackWindow extends VisualizerForm {
void ClearBugReportCommentAdditionText();
void FocusRecipients();
void SwitchScreen(boolean small);
void setUdefinedRights();
void setUserRights();
void setAdminRights();
}

View File

@@ -366,6 +366,15 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
Global.mainModule.getUI().getMainWindow().SwitchTestingTabs(true);
}
@Override
public void setUdefinedRights(){
Global.mainModule.SetUserPassesAccess();
UI.Clear(accountPanel);
accountPanel.add(new CallbackWelcomeForm().content);
Global.mainModule.getUI().getMainWindow().SwitchTestingTabs(false);
Global.mainModule.getUI().getTestingMenuBar().showServerAdminLabel(false);
adminLabel.setVisible(false);
}
@Override
public void setUserRights() {
LockMyOnly();
Global.mainModule.SetUserPassesAccess();
@@ -391,17 +400,16 @@ public class CallbackForm implements FormWithSplitters, CallbackWindow {
lAccountName.setText(Utils_.Brackets(Global.mainModule.getAccount().name));
lAccountMail.setText(Utils_.Brackets(Global.mainModule.getAccount().email));
lAccountRole.setText(Utils_.Brackets(Global.mainModule.getAccount().role.getDescription()));
System.out.println("ROLE IS "+Global.mainModule.getAccount().role);
switch (Global.mainModule.getAccount().role) {
case Undefined:
/// UI.Clear(accountPanel);
// accountPanel.add(new CallbackWelcomeForm().content);
// UI.getMainWindow().SwitchTestingTabs(false);
// break;
setUdefinedRights();
break;
case User:
//видит только свои баги.
// EnableBugreports();
// setUserRights();
// break;
EnableBugreports();
setUserRights();
break;
case Developer:
EnableBugreports();
setDeveloperRights();

View File

@@ -218,7 +218,6 @@ public class MainForm extends Form implements MainWindow {
public void SwitchTestingTabs(boolean flag) {
globalTabs.setEnabledAt(3, flag);
globalTabs.setEnabledAt(4, flag);
// globalTabs.setEnabledAt(4, flag);
}
@Override
public TestingWindow getTestingWindow() {