memory (params): use more generic param attribute "constraint" instead of "min" and "max"

This commit is contained in:
souliane 2014-10-06 11:18:37 +02:00
commit 9378e1306a
4 changed files with 22 additions and 19 deletions

View file

@ -44,17 +44,17 @@ class Params(object):
<individual>
<category name="General" label="%(category_general)s">
<param name="Password" value="" type="password" />
<param name="%(history_param)s" label="%(label_history)s" value="20" min="0" max="100" type="int" security="0" />
<param name="%(history_param)s" label="%(history_label)s" value="20" constraint="0;100" type="int" security="0" />
</category>
<category name="Connection" label="%(category_connection)s">
<param name="JabberID" value="name@example.org/SàT" type="string" />
<param name="Password" value="" type="password" />
<param name="Priority" value="50" type="int" min="-128" max="127"/>
<param name="Priority" value="50" type="int" constraint="-128;127"/>
<param name="%(force_server_param)s" value="" type="string" />
<param name="%(force_port_param)s" value="" type="int" min="80" max="65535" />
<param name="NewAccount" label="%(label_NewAccount)s" type="button" callback_id="registerNewAccount"/>
<param name="autoconnect" label="%(label_autoconnect)s" value="true" type="bool" />
<param name="autodisconnect" label="%(label_autodisconnect)s" value="false" type="bool" />
<param name="%(force_port_param)s" value="" type="int" constraint="1;65535" />
<param name="NewAccount" label="%(new_account_label)s" type="button" callback_id="registerNewAccount"/>
<param name="autoconnect" label="%(autoconnect_label)s" value="true" type="bool" />
<param name="autodisconnect" label="%(autodisconnect_label)s" value="false" type="bool" />
</category>
<category name="Misc" label="%(category_misc)s">
<param name="Watched" value="test@Jabber.goffi.int" type="string" />
@ -65,13 +65,13 @@ class Params(object):
'category_general': D_("General"),
'category_connection': D_("Connection"),
'history_param': C.HISTORY_LIMIT,
'label_history': D_('Chat history limit'),
'label_NewAccount': D_("Register new account"),
'label_autoconnect': D_('Connect on frontend startup'),
'label_autodisconnect': D_('Disconnect on frontend closure'),
'category_misc': D_("Misc"),
'history_label': D_('Chat history limit'),
'force_server_param': C.FORCE_SERVER_PARAM,
'force_port_param': C.FORCE_PORT_PARAM,
'new_account_label': D_("Register new account"),
'autoconnect_label': D_('Connect on frontend startup'),
'autodisconnect_label': D_('Disconnect on frontend closure'),
'category_misc': D_("Misc"),
}
def load_default_params(self):
@ -755,10 +755,13 @@ class Params(object):
log.debug(_("Trying to set parameter '%(param)s' in category '%(cat)s' with an non-integer value"
% {'param': name, 'cat': category}))
return defer.succeed(None)
if node[1].hasAttribute("min"):
value = str(max(int(value), int(node[1].getAttribute("min"))))
if node[1].hasAttribute("max"):
value = str(min(int(value), int(node[1].getAttribute("max"))))
if node[1].hasAttribute("constraint"):
constraint = node[1].getAttribute("constraint")
try:
min_, max_ = [int(limit) for limit in constraint.split(";")]
except ValueError:
raise exceptions.InternalError("Invalid integer parameter constraint: %s" % constraint)
value = str(min(max(int(value), min_), max_))
log.info(_("Setting parameter (%(category)s, %(name)s) = %(value)s") %
{'category': category, 'name': name, 'value': value if type_ != 'password' else '********'})

View file

@ -51,7 +51,7 @@ class IMAP_server(object):
<params>
<general>
<category name="Mail Server">
<param name="IMAP Port" value="10143" type="int" min="143" max="65535" />
<param name="IMAP Port" value="10143" type="int" constraint="1;65535" />
</category>
</general>
</params>

View file

@ -51,7 +51,7 @@ class SMTP_server(object):
<params>
<general>
<category name="Mail Server">
<param name="SMTP Port" value="10125" type="int" min="25" max="65535" />
<param name="SMTP Port" value="10125" type="int" constraint="1;65535" />
</category>
</general>
</params>

View file

@ -444,14 +444,14 @@ class XEP_0065(object):
<general>
<category name="File Transfer">
<param name="IP" value='0.0.0.0' default_cb='yes' type="string" />
<param name="Port" value="28915" type="int" min="80" max="65535" />
<param name="Port" value="28915" type="int" constraint="1;65535" />
</category>
</general>
<individual>
<category name="File Transfer">
<param name="Proxy" value="" type="string" />
<param name="Proxy host" value="" type="string" />
<param name="Proxy port" value="" type="int" min="80" max="65535" />
<param name="Proxy port" value="" type="int" constraint="1;65535" />
</category>
</individual>
</params>