/hg/icedtea-web: Temporary Permissions options made multi-select...
aazores at icedtea.classpath.org
aazores at icedtea.classpath.org
Tue Jun 3 13:52:39 UTC 2014
changeset d87ee4e6e81a in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d87ee4e6e81a
author: Andrew Azores <aazores at redhat.com>
date: Tue Jun 03 09:52:23 2014 -0400
Temporary Permissions options made multi-selectable
2014-06-03 Lukasz Dracz <ldracz at redhat.com>
Changed Temporary Permissions from menu items to check box menu items
* netx/net/sourceforge/jnlp/security/dialogs/TemporaryPermissionsButton.java
(TemporaryPermissionsListener.actionPerformed): Added behaviour to add
or remove permissions from a new collection of permissions based on
whether the item is checked or not
(TemporaryPermissionsButton.TemporaryPermissionsButton): Added action
listener and applied the new collection of permissions for when the
sandbox button is pressed
diffstat:
ChangeLog | 11 ++
netx/net/sourceforge/jnlp/security/dialogs/TemporaryPermissionsButton.java | 47 +++++++--
2 files changed, 44 insertions(+), 14 deletions(-)
diffs (138 lines):
diff -r ea0ccfeeed06 -r d87ee4e6e81a ChangeLog
--- a/ChangeLog Mon Jun 02 13:56:57 2014 -0400
+++ b/ChangeLog Tue Jun 03 09:52:23 2014 -0400
@@ -1,3 +1,14 @@
+2014-06-03 Lukasz Dracz <ldracz at redhat.com>
+
+ Changed Temporary Permissions from menu items to check box menu items
+ * netx/net/sourceforge/jnlp/security/dialogs/TemporaryPermissionsButton.java
+ (TemporaryPermissionsListener.actionPerformed): Added behaviour to add
+ or remove permissions from a new collection of permissions based on
+ whether the item is checked or not
+ (TemporaryPermissionsButton.TemporaryPermissionsButton): Added action
+ listener and applied the new collection of permissions for when the
+ sandbox button is pressed
+
2014-06-02 Andrew Azores <aazores at redhat.com>
PolicyEditor file I/O made asynchronous with a progress indicator
diff -r ea0ccfeeed06 -r d87ee4e6e81a netx/net/sourceforge/jnlp/security/dialogs/TemporaryPermissionsButton.java
--- a/netx/net/sourceforge/jnlp/security/dialogs/TemporaryPermissionsButton.java Mon Jun 02 13:56:57 2014 -0400
+++ b/netx/net/sourceforge/jnlp/security/dialogs/TemporaryPermissionsButton.java Tue Jun 03 09:52:23 2014 -0400
@@ -48,8 +48,12 @@
import java.net.URL;
import java.security.Permission;
import java.util.Collection;
+import java.util.HashSet;
+import java.util.Objects;
+import javax.swing.AbstractButton;
import javax.swing.JButton;
+import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
@@ -67,14 +71,24 @@
private PolicyEditorWindow policyEditorWindow = null;
private final JNLPFile file;
private final SecurityDelegate securityDelegate;
+ private final Collection<Permission> temporaryPermissions = new HashSet<>();
public TemporaryPermissionsButton(final JNLPFile file, final SecurityDelegate securityDelegate, final JButton linkedButton) {
super("\u2630");
+ Objects.requireNonNull(file);
+ Objects.requireNonNull(securityDelegate);
+ Objects.requireNonNull(linkedButton);
this.menu = createPolicyPermissionsMenu();
this.linkedButton = linkedButton;
this.file = file;
this.securityDelegate = securityDelegate;
+ linkedButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ securityDelegate.addPermissions(temporaryPermissions);
+ }
+ });
addMouseListener(new PolicyEditorPopupListener(this));
}
@@ -88,47 +102,47 @@
policyMenu.addSeparator();
- final JMenuItem noFileAccess = new JMenuItem(R("STempPermNoFile"));
+ final JCheckBoxMenuItem noFileAccess = new JCheckBoxMenuItem(R("STempPermNoFile"));
noFileAccess.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.noFileAccess()));
policyMenu.add(noFileAccess);
- final JMenuItem noNetworkAccess = new JMenuItem(R("STempPermNoNetwork"));
+ final JCheckBoxMenuItem noNetworkAccess = new JCheckBoxMenuItem(R("STempPermNoNetwork"));
noNetworkAccess.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.noNetworkAccess()));
policyMenu.add(noNetworkAccess);
- final JMenuItem noFileOrNetwork = new JMenuItem(R("STempNoFileOrNetwork"));
+ final JCheckBoxMenuItem noFileOrNetwork = new JCheckBoxMenuItem(R("STempNoFileOrNetwork"));
noFileOrNetwork.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.noFileOrNetworkAccess()));
policyMenu.add(noFileOrNetwork);
policyMenu.addSeparator();
- final JMenuItem allFileAccessOnly = new JMenuItem(R("STempAllFileAndPropertyAccess"));
+ final JCheckBoxMenuItem allFileAccessOnly = new JCheckBoxMenuItem(R("STempAllFileAndPropertyAccess"));
allFileAccessOnly.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.allFileAccessAndProperties()));
policyMenu.add(allFileAccessOnly);
- final JMenuItem readLocalFilesAndProperties = new JMenuItem(R("STempReadLocalFilesAndProperties"));
+ final JCheckBoxMenuItem readLocalFilesAndProperties = new JCheckBoxMenuItem(R("STempReadLocalFilesAndProperties"));
readLocalFilesAndProperties.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.readLocalFilesAndProperties()));
policyMenu.add(readLocalFilesAndProperties);
- final JMenuItem reflectionOnly = new JMenuItem(R("STempReflectionOnly"));
+ final JCheckBoxMenuItem reflectionOnly = new JCheckBoxMenuItem(R("STempReflectionOnly"));
reflectionOnly.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.reflectionOnly()));
policyMenu.add(reflectionOnly);
policyMenu.addSeparator();
- final JMenuItem allMedia = new JMenuItem(R("STempAllMedia"));
+ final JCheckBoxMenuItem allMedia = new JCheckBoxMenuItem(R("STempAllMedia"));
allMedia.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.allMedia()));
policyMenu.add(allMedia);
- final JMenuItem soundOnly = new JMenuItem(R("STempSoundOnly"));
+ final JCheckBoxMenuItem soundOnly = new JCheckBoxMenuItem(R("STempSoundOnly"));
soundOnly.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.audioOnly()));
policyMenu.add(soundOnly);
- final JMenuItem clipboardOnly = new JMenuItem(R("STempClipboardOnly"));
+ final JCheckBoxMenuItem clipboardOnly = new JCheckBoxMenuItem(R("STempClipboardOnly"));
clipboardOnly.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.clipboardOnly()));
policyMenu.add(clipboardOnly);
- final JMenuItem printOnly = new JMenuItem(R("STempPrintOnly"));
+ final JCheckBoxMenuItem printOnly = new JCheckBoxMenuItem(R("STempPrintOnly"));
printOnly.addActionListener(new TemporaryPermissionsListener(TemporaryPermissions.printOnly()));
policyMenu.add(printOnly);
@@ -144,11 +158,16 @@
@Override
public void actionPerformed(final ActionEvent e) {
- securityDelegate.addPermissions(permissions);
- menu.setVisible(false);
- if (linkedButton != null) {
- linkedButton.doClick();
+ if (!linkedButton.isEnabled()) {
+ return;
}
+ AbstractButton checkBox = (AbstractButton) e.getSource();
+ if (checkBox.isSelected()) {
+ temporaryPermissions.addAll(permissions);
+ } else {
+ temporaryPermissions.removeAll(permissions);
+ }
+ menu.setVisible(true);
}
}
More information about the distro-pkg-dev
mailing list