moved "Rank" attribute from language file to plugin code

added plugin "plugin_manager"
added plugin "user_manager"
This commit is contained in:
lars 2006-10-11 15:50:24 +00:00
parent ee82f91a64
commit 11c2873934
28 changed files with 368 additions and 21 deletions

View 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
}

View 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>

View 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