moved "Rank" attribute from language file to plugin code
added plugin "plugin_manager" added plugin "user_manager"
This commit is contained in:
parent
ee82f91a64
commit
11c2873934
28 changed files with 368 additions and 21 deletions
15
pythonrewrite/plugins/plugin_manager/lang/en.hdf
Normal file
15
pythonrewrite/plugins/plugin_manager/lang/en.hdf
Normal file
|
@ -0,0 +1,15 @@
|
|||
Name = Plugin Manager
|
||||
Link = Plugin Manager
|
||||
|
||||
Title.PluginManager = Plugin Manager
|
||||
|
||||
Button.SaveSettings = Save settings
|
||||
|
||||
Text {
|
||||
PluginName = Plugin
|
||||
PluginRank = Priority
|
||||
PluginEnabled = Enabled?
|
||||
RequestsAuth = Requires admin?
|
||||
VolumePlugins = Volume plugins
|
||||
SystemPlugins = System plugins
|
||||
}
|
64
pythonrewrite/plugins/plugin_manager/plugin_list.cs
Normal file
64
pythonrewrite/plugins/plugin_manager/plugin_list.cs
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?cs # $Id$ ?>
|
||||
|
||||
<style type="text/css">
|
||||
table.plugin_list {
|
||||
text-align:center;
|
||||
align:center;
|
||||
}
|
||||
|
||||
table.plugin_list td, table.plugin_list th {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<h1><?cs var:html_escape(Lang.Plugins.plugin_manager.Title.PluginManager) ?></h1>
|
||||
|
||||
|
||||
<?cs call:print_form_header("plugins/plugin_manager") ?>
|
||||
|
||||
<h2><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.SystemPlugins) ?></h2>
|
||||
<p>
|
||||
<table class="plugin_list" align="center">
|
||||
<tr>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.PluginName) ?></th>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.PluginRank) ?></th>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.PluginEnabled) ?></th>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.RequestsAuth) ?></th>
|
||||
</tr>
|
||||
<?cs each:x = Settings.PluginList ?><?cs if:x.Types.system
|
||||
?><input type="hidden" name="<?cs var:name(x) ?>_listed" value="1" /><tr>
|
||||
<td style="text-align:left"><?cs var:html_escape(name(x)) ?></td>
|
||||
<td><input style="text-align:right" type="text" size="3" name="<?cs var:name(x) ?>_rank" value="<?cs var:html_escape(x.Rank) ?>" /></td>
|
||||
<td><input type="checkbox" name="<?cs var:name(x) ?>_enabled" <?cs if:x.Enabled ?>checked="checked"<?cs /if ?> /></td>
|
||||
<td><input type="checkbox" name="<?cs var:name(x) ?>_auth" <?cs if:x.RequestAuth ?>checked="checked"<?cs /if ?> /></td>
|
||||
</tr><?cs /if ?><?cs /each ?>
|
||||
</table></p>
|
||||
|
||||
|
||||
<h2><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.VolumePlugins) ?></h2>
|
||||
<p>
|
||||
<table class="plugin_list" align="center">
|
||||
<tr>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.PluginName) ?></th>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.PluginRank) ?></th>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.PluginEnabled) ?></th>
|
||||
<th><?cs var:html_escape(Lang.Plugins.plugin_manager.Text.RequestsAuth) ?></th>
|
||||
</tr>
|
||||
<?cs each:x = Settings.PluginList ?><?cs if:x.Types.volume
|
||||
?><input type="hidden" name="<?cs var:name(x) ?>_listed" value="1" /><tr>
|
||||
<td style="text-align:left"><?cs var:html_escape(name(x)) ?></td>
|
||||
<td><input style="text-align:right" type="text" size="3" name="<?cs var:name(x) ?>_rank" value="<?cs var:html_escape(x.Rank) ?>" /></td>
|
||||
<td><input type="checkbox" name="<?cs var:name(x) ?>_enabled" <?cs if:x.Enabled ?>checked="checked"<?cs /if ?> /></td>
|
||||
<td><input type="checkbox" name="<?cs var:name(x) ?>_auth" <?cs if:x.RequestAuth ?>checked="checked"<?cs /if ?> /></td>
|
||||
</tr><?cs /if ?><?cs /each ?>
|
||||
</table></p>
|
||||
|
||||
<p>
|
||||
<input type="hidden" name="store" value="1" />
|
||||
|
||||
<button type="submit"><?cs var:html_escape(Lang.Plugins.plugin_manager.Button.SaveSettings) ?></button>
|
||||
</p>
|
||||
|
||||
</form>
|
52
pythonrewrite/plugins/plugin_manager/plugin_manager.py
Normal file
52
pythonrewrite/plugins/plugin_manager/plugin_manager.py
Normal file
|
@ -0,0 +1,52 @@
|
|||
import CryptoBoxPlugin
|
||||
|
||||
|
||||
class plugin_manager(CryptoBoxPlugin.CryptoBoxPlugin):
|
||||
|
||||
pluginCapabilities = [ "system" ]
|
||||
requestAuth = True
|
||||
rank = 90
|
||||
|
||||
def doAction(self, store=None, **args):
|
||||
import re
|
||||
if store:
|
||||
for key in args.keys():
|
||||
if key.endswith("_listed"):
|
||||
if not re.search(u'\W',key):
|
||||
self.__setConfig(key[:-7], args)
|
||||
else:
|
||||
self.cbox.log.info("plugin_manager: invalid plugin name (%s)" % str(key[:-7]))
|
||||
try:
|
||||
self.cbox.prefs.pluginConf.write()
|
||||
except IOError:
|
||||
self.cbox.log.warn("failed to write plugin configuration")
|
||||
return "plugin_list"
|
||||
|
||||
|
||||
def getStatus(self):
|
||||
return "no status"
|
||||
|
||||
|
||||
def __setConfig(self, name, args):
|
||||
setting = {}
|
||||
setting["enabled"] = False
|
||||
try:
|
||||
if args[name + "_enabled"]:
|
||||
setting["enabled"] = True
|
||||
except KeyError:
|
||||
pass
|
||||
setting["rank"] = "80"
|
||||
try:
|
||||
r = int(args[name + "_rank"])
|
||||
if r>=0 and r<=100:
|
||||
setting["rank"] = r
|
||||
except KeyError, ValueError:
|
||||
pass
|
||||
setting["requestAuth"] = False
|
||||
try:
|
||||
if args[name + "_auth"]:
|
||||
setting["requestAuth"] = True
|
||||
except KeyError, ValueError:
|
||||
pass
|
||||
self.cbox.prefs.pluginConf[name] = setting
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue