aboutsummaryrefslogtreecommitdiff
path: root/src/FbCommandFactory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/FbCommandFactory.cc')
-rw-r--r--src/FbCommandFactory.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/FbCommandFactory.cc b/src/FbCommandFactory.cc
index 2e19700..bf008ad 100644
--- a/src/FbCommandFactory.cc
+++ b/src/FbCommandFactory.cc
@@ -201,12 +201,12 @@ FbCommandFactory::FbCommandFactory() {
201} 201}
202 202
203FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command, 203FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command,
204 const std::string &arguments) { 204 const std::string &arguments, bool trusted) {
205 using namespace FbCommands; 205 using namespace FbCommands;
206 // 206 //
207 // WM commands 207 // WM commands
208 // 208 //
209 if (command == "restart") 209 if (command == "restart" && trusted)
210 return new RestartFluxboxCmd(arguments); 210 return new RestartFluxboxCmd(arguments);
211 else if (command == "reconfigure" || command == "reconfig") 211 else if (command == "reconfigure" || command == "reconfig")
212 return new ReconfigureFluxboxCmd(); 212 return new ReconfigureFluxboxCmd();
@@ -218,11 +218,12 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command,
218 return new KeyModeCmd(arguments); 218 return new KeyModeCmd(arguments);
219 else if (command == "saverc") 219 else if (command == "saverc")
220 return new SaveResources(); 220 return new SaveResources();
221 else if (command == "execcommand" || command == "execute" || command == "exec") 221 else if (command == "execcommand" || command == "execute" || command == "exec") {
222 if (!trusted) return 0;
222 return new ExecuteCmd(arguments); // execute command on key screen 223 return new ExecuteCmd(arguments); // execute command on key screen
223 else if (command == "exit" || command == "quit") 224 } else if (command == "exit" || command == "quit")
224 return new ExitFluxboxCmd(); 225 return new ExitFluxboxCmd();
225 else if (command == "setenv" || command == "export") { 226 else if ((command == "setenv" || command == "export") && trusted) {
226 227
227 string name = arguments; 228 string name = arguments;
228 FbTk::StringUtil::removeFirstWhitespace(name); 229 FbTk::StringUtil::removeFirstWhitespace(name);
@@ -244,9 +245,9 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command,
244 } 245 }
245 else if (command == "commanddialog") // run specified fluxbox command 246 else if (command == "commanddialog") // run specified fluxbox command
246 return new CommandDialogCmd(); 247 return new CommandDialogCmd();
247 else if (command == "bindkey") 248 else if (command == "bindkey" && trusted)
248 return new BindKeyCmd(arguments); 249 return new BindKeyCmd(arguments);
249 else if (command == "setresourcevalue") { 250 else if (command == "setresourcevalue" && trusted) {
250 // we need to parse arguments as: 251 // we need to parse arguments as:
251 // <remove whitespace here><resname><one whitespace><value> 252 // <remove whitespace here><resname><one whitespace><value>
252 string name = arguments; 253 string name = arguments;
@@ -628,7 +629,7 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command,
628 } 629 }
629 c= FbTk::StringUtil::toLower(cmd); 630 c= FbTk::StringUtil::toLower(cmd);
630 631
631 FbTk::Command* fbcmd= stringToCommand(c,a); 632 FbTk::Command* fbcmd= stringToCommand(c,a,trusted);
632 if (fbcmd) { 633 if (fbcmd) {
633 FbTk::RefCount<FbTk::Command> rfbcmd(fbcmd); 634 FbTk::RefCount<FbTk::Command> rfbcmd(fbcmd);
634 macro->add(rfbcmd); 635 macro->add(rfbcmd);
@@ -665,7 +666,7 @@ FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command,
665 } 666 }
666 c= FbTk::StringUtil::toLower(cmd); 667 c= FbTk::StringUtil::toLower(cmd);
667 668
668 FbTk::Command* fbcmd= stringToCommand(c,a); 669 FbTk::Command* fbcmd= stringToCommand(c,a,trusted);
669 if (fbcmd) { 670 if (fbcmd) {
670 FbTk::RefCount<FbTk::Command> rfbcmd(fbcmd); 671 FbTk::RefCount<FbTk::Command> rfbcmd(fbcmd);
671 macro->add(rfbcmd); 672 macro->add(rfbcmd);