diff options
Diffstat (limited to 'src/FbCommandFactory.cc')
-rw-r--r-- | src/FbCommandFactory.cc | 19 |
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 | ||
203 | FbTk::Command *FbCommandFactory::stringToCommand(const std::string &command, | 203 | FbTk::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); |