mirror of
https://github.com/igniterealtime/Spark.git
synced 2025-12-01 12:27:58 +00:00
SPARK-1827 - Shouldn't allow broadcast to selected users when it is disabled in Client Control (#252)
* SPARK-1758 - Do not show UNFILED group if it's empty * SPARK-1822 - Add additional default properties to control GUI settings * SPARK-1822 - Add additional default properties to control GUI settings * SPARK-1516 - Spark should not let open profile edit by clicking the avatar if profile changing is disabled * SPARK-1827 - Shouldn't allow broadcast to selected users when it is disabled in Client Control * SPARK-1822 - Add additional default properties to control GUI settings
This commit is contained in:
@ -109,12 +109,9 @@ DISABLE_AVATAR_TAB = false
|
|||||||
# If true, disable the "Plugins" menu item
|
# If true, disable the "Plugins" menu item
|
||||||
DISABLE_PLUGINS_MENU_ITEM = false
|
DISABLE_PLUGINS_MENU_ITEM = false
|
||||||
|
|
||||||
# If true, disable the option to transfer files
|
# If true, disable the option to transfer files and images
|
||||||
DISABLE_FILE_XFER = false
|
DISABLE_FILE_XFER = false
|
||||||
|
|
||||||
# If true, disable the option to take screenshots
|
|
||||||
DISABLE_SCREENSHOTS = false
|
|
||||||
|
|
||||||
# If true, disable the option to remove contacts and groups in roster
|
# If true, disable the option to remove contacts and groups in roster
|
||||||
DISABLE_REMOVALS = false
|
DISABLE_REMOVALS = false
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.jivesoftware.spark.filetransfer;
|
package org.jivesoftware.spark.filetransfer;
|
||||||
|
|
||||||
import org.jivesoftware.resource.Default;
|
|
||||||
import org.jivesoftware.resource.Res;
|
import org.jivesoftware.resource.Res;
|
||||||
import org.jivesoftware.spark.SparkManager;
|
import org.jivesoftware.spark.SparkManager;
|
||||||
import org.jivesoftware.spark.ui.ChatRoom;
|
import org.jivesoftware.spark.ui.ChatRoom;
|
||||||
@ -55,29 +54,23 @@ public class ChatRoomTransferDecorator implements KeyListener, FileDropListener,
|
|||||||
private ChatRoomButton sendScreenShotButton;
|
private ChatRoomButton sendScreenShotButton;
|
||||||
|
|
||||||
public ChatRoomTransferDecorator(final ChatRoom chatRoom) {
|
public ChatRoomTransferDecorator(final ChatRoom chatRoom) {
|
||||||
this.chatRoom = chatRoom;
|
this.chatRoom = chatRoom;
|
||||||
|
|
||||||
chatRoom.addFileDropListener(this);
|
chatRoom.addFileDropListener(this);
|
||||||
chatRoom.getChatInputEditor().addKeyListener(this);
|
chatRoom.getChatInputEditor().addKeyListener(this);
|
||||||
chatRoom.addClosingListener(this);
|
chatRoom.addClosingListener(this);
|
||||||
|
|
||||||
// See if we should disable the ability to transfer files
|
sendFileButton = UIComponentRegistry.getButtonFactory().createSendFileButton();
|
||||||
if (!Default.getBoolean("DISABLE_FILE_XFER")) {
|
sendFileButton.setToolTipText(Res.getString("message.send.file.to.user"));
|
||||||
sendFileButton = UIComponentRegistry.getButtonFactory().createSendFileButton();
|
|
||||||
sendFileButton.setToolTipText(Res.getString("message.send.file.to.user"));
|
|
||||||
|
|
||||||
chatRoom.addChatRoomButton(sendFileButton);
|
chatRoom.addChatRoomButton(sendFileButton);
|
||||||
sendFileButton.addActionListener(this);
|
sendFileButton.addActionListener(this);
|
||||||
}
|
|
||||||
|
|
||||||
// See if we should disable the ability to take screenshots
|
sendScreenShotButton = UIComponentRegistry.getButtonFactory().createScreenshotButton();
|
||||||
if (!Default.getBoolean("DISABLE_SCREENSHOTS")) {
|
sendScreenShotButton.setToolTipText(Res.getString("message.send.picture"));
|
||||||
sendScreenShotButton = UIComponentRegistry.getButtonFactory().createScreenshotButton();
|
|
||||||
sendScreenShotButton.setToolTipText(Res.getString("message.send.picture"));
|
|
||||||
|
|
||||||
chatRoom.addChatRoomButton(sendScreenShotButton);
|
chatRoom.addChatRoomButton(sendScreenShotButton);
|
||||||
sendScreenShotButton.addActionListener(this);
|
sendScreenShotButton.addActionListener(this);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void keyTyped(KeyEvent e) {
|
public void keyTyped(KeyEvent e) {
|
||||||
|
|||||||
@ -138,10 +138,9 @@ public class SparkTransferManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private SparkTransferManager() {
|
private SparkTransferManager() {
|
||||||
boolean enabled = Enterprise.containsFeature(Enterprise.FILE_TRANSFER_FEATURE);
|
|
||||||
if (!enabled) {
|
// See if we should disable the option to transfer files and images
|
||||||
return;
|
if (Default.getBoolean("DISABLE_FILE_XFER") || !Enterprise.containsFeature(Enterprise.FILE_TRANSFER_FEATURE)) return;
|
||||||
}
|
|
||||||
|
|
||||||
SparkManager.getConnection().addConnectionListener(new ConnectionListener() {
|
SparkManager.getConnection().addConnectionListener(new ConnectionListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -1505,11 +1505,11 @@ moveToOffline(moveToOfflineContactItem);
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// See if we should disable the option to transfer files
|
// See if we should disable the option to transfer files and images
|
||||||
if (!Default.getBoolean("DISABLE_FILE_XFER")) {
|
if (!Default.getBoolean("DISABLE_FILE_XFER") && Enterprise.containsFeature(Enterprise.FILE_TRANSFER_FEATURE)) {
|
||||||
sendAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.DOCUMENT_16x16));
|
sendAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.DOCUMENT_16x16));
|
||||||
sendAction.putValue(Action.NAME, Res.getString("menuitem.send.a.file"));
|
sendAction.putValue(Action.NAME, Res.getString("menuitem.send.a.file"));
|
||||||
if ((item.getPresence() != null) && Enterprise.containsFeature(Enterprise.FILE_TRANSFER_FEATURE)) popup.add(sendAction);
|
if (item.getPresence() != null) popup.add(sendAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
popup.addSeparator();
|
popup.addSeparator();
|
||||||
@ -1670,11 +1670,10 @@ moveToOffline(moveToOfflineContactItem);
|
|||||||
final JPopupMenu popup = new JPopupMenu();
|
final JPopupMenu popup = new JPopupMenu();
|
||||||
final JMenuItem sendMessagesMenu = new JMenuItem(Res.getString("menuitem.send.a.message"), SparkRes.getImageIcon(SparkRes.SMALL_MESSAGE_IMAGE));
|
final JMenuItem sendMessagesMenu = new JMenuItem(Res.getString("menuitem.send.a.message"), SparkRes.getImageIcon(SparkRes.SMALL_MESSAGE_IMAGE));
|
||||||
|
|
||||||
|
|
||||||
fireContextMenuListenerPopup(popup, items);
|
fireContextMenuListenerPopup(popup, items);
|
||||||
|
|
||||||
// See if we should disable all "Broadcast" menu items
|
// See if we should disable all "Broadcast" menu items
|
||||||
if (!Default.getBoolean("DISABLE_BROADCAST_MENU_ITEM")) popup.add(sendMessagesMenu);
|
if (!Default.getBoolean("DISABLE_BROADCAST_MENU_ITEM") && Enterprise.containsFeature(Enterprise.BROADCAST_FEATURE)) popup.add(sendMessagesMenu);
|
||||||
|
|
||||||
sendMessagesMenu.addActionListener( e1 -> sendMessages(items) );
|
sendMessagesMenu.addActionListener( e1 -> sendMessages(items) );
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -103,10 +103,8 @@ public class BroadcastPlugin extends SparkTabHandler implements Plugin, StanzaLi
|
|||||||
private Set<ChatRoom> broadcastRooms = new HashSet<>();
|
private Set<ChatRoom> broadcastRooms = new HashSet<>();
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
boolean enabled = Enterprise.containsFeature(Enterprise.BROADCAST_FEATURE);
|
// See if we should disable all "Broadcast" menu items
|
||||||
if (!enabled) {
|
if (Default.getBoolean("DISABLE_BROADCAST_MENU_ITEM") || !Enterprise.containsFeature(Enterprise.BROADCAST_FEATURE)) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add as ContainerDecoratr
|
// Add as ContainerDecoratr
|
||||||
SparkManager.getChatManager().addSparkTabHandler(this);
|
SparkManager.getChatManager().addSparkTabHandler(this);
|
||||||
@ -118,10 +116,9 @@ public class BroadcastPlugin extends SparkTabHandler implements Plugin, StanzaLi
|
|||||||
final JMenu actionsMenu = SparkManager.getMainWindow().getMenuByName(Res.getString("menuitem.actions"));
|
final JMenu actionsMenu = SparkManager.getMainWindow().getMenuByName(Res.getString("menuitem.actions"));
|
||||||
JMenuItem broadcastMenu = new JMenuItem(Res.getString("title.broadcast.message"), SparkRes.getImageIcon(SparkRes.MEGAPHONE_16x16));
|
JMenuItem broadcastMenu = new JMenuItem(Res.getString("title.broadcast.message"), SparkRes.getImageIcon(SparkRes.MEGAPHONE_16x16));
|
||||||
ResourceUtils.resButton(broadcastMenu, Res.getString("title.broadcast.message"));
|
ResourceUtils.resButton(broadcastMenu, Res.getString("title.broadcast.message"));
|
||||||
|
|
||||||
// See if we should disable all "Broadcast" menu items
|
actionsMenu.add(broadcastMenu);
|
||||||
if (!Default.getBoolean("DISABLE_BROADCAST_MENU_ITEM")) actionsMenu.add(broadcastMenu);
|
|
||||||
|
|
||||||
broadcastMenu.addActionListener( e -> broadcastToRoster() );
|
broadcastMenu.addActionListener( e -> broadcastToRoster() );
|
||||||
|
|
||||||
// Register with action menu
|
// Register with action menu
|
||||||
@ -175,8 +172,7 @@ public class BroadcastPlugin extends SparkTabHandler implements Plugin, StanzaLi
|
|||||||
broadcastMessageAction.putValue(Action.NAME, Res.getString("menuitem.broadcast.to.group"));
|
broadcastMessageAction.putValue(Action.NAME, Res.getString("menuitem.broadcast.to.group"));
|
||||||
broadcastMessageAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.MEGAPHONE_16x16));
|
broadcastMessageAction.putValue(Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.MEGAPHONE_16x16));
|
||||||
|
|
||||||
// See if we should disable all "Broadcast" menu items
|
popup.add(broadcastMessageAction);
|
||||||
if (!Default.getBoolean("DISABLE_BROADCAST_MENU_ITEM")) popup.add(broadcastMessageAction);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,7 @@ import org.jivesoftware.spark.ui.ContactList;
|
|||||||
import org.jivesoftware.spark.util.SwingWorker;
|
import org.jivesoftware.spark.util.SwingWorker;
|
||||||
import org.jivesoftware.spark.util.UIComponentRegistry;
|
import org.jivesoftware.spark.util.UIComponentRegistry;
|
||||||
import org.jivesoftware.spark.util.log.Log;
|
import org.jivesoftware.spark.util.log.Log;
|
||||||
|
import org.jivesoftware.sparkimpl.plugin.manager.Enterprise;
|
||||||
import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
|
import org.jivesoftware.sparkimpl.settings.local.LocalPreferences;
|
||||||
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
|
import org.jivesoftware.sparkimpl.settings.local.SettingsManager;
|
||||||
|
|
||||||
@ -157,7 +158,7 @@ public class ContactListAssistantPlugin implements Plugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Clean up the extra separator if "Broadcast" menu items are disabled
|
// Clean up the extra separator if "Broadcast" menu items are disabled
|
||||||
if (!Default.getBoolean("DISABLE_BROADCAST_MENU_ITEM")) popup.addSeparator();
|
if (!Default.getBoolean("DISABLE_BROADCAST_MENU_ITEM") && Enterprise.containsFeature(Enterprise.BROADCAST_FEATURE)) popup.addSeparator();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -215,10 +215,9 @@ public class VCardManager {
|
|||||||
* Adds VCard capabilities to menus and other components in Spark.
|
* Adds VCard capabilities to menus and other components in Spark.
|
||||||
*/
|
*/
|
||||||
private void initializeUI() {
|
private void initializeUI() {
|
||||||
boolean enabled = Enterprise.containsFeature(Enterprise.VCARD_FEATURE);
|
|
||||||
if (!enabled) {
|
// See if we should disable the "Edit my profile" option under "File"
|
||||||
return;
|
if (Default.getBoolean("DISABLE_EDIT_PROFILE") || !Enterprise.containsFeature(Enterprise.VCARD_FEATURE)) return;
|
||||||
}
|
|
||||||
|
|
||||||
// Add Actions Menu
|
// Add Actions Menu
|
||||||
final JMenu contactsMenu = SparkManager.getMainWindow().getMenuByName(Res.getString("menuitem.contacts"));
|
final JMenu contactsMenu = SparkManager.getMainWindow().getMenuByName(Res.getString("menuitem.contacts"));
|
||||||
@ -229,8 +228,7 @@ public class VCardManager {
|
|||||||
|
|
||||||
int size = contactsMenu.getMenuComponentCount();
|
int size = contactsMenu.getMenuComponentCount();
|
||||||
|
|
||||||
// See if we should disable the "Edit my profile" option under "File"
|
communicatorMenu.insert(editProfileMenu, 1);
|
||||||
if (!Default.getBoolean("DISABLE_EDIT_PROFILE")) communicatorMenu.insert(editProfileMenu, 1);
|
|
||||||
|
|
||||||
editProfileMenu.addActionListener( e -> {
|
editProfileMenu.addActionListener( e -> {
|
||||||
SwingWorker vcardLoaderWorker = new SwingWorker() {
|
SwingWorker vcardLoaderWorker = new SwingWorker() {
|
||||||
|
|||||||
Reference in New Issue
Block a user