diff --git a/plugins/date/date.py b/plugins/date/date.py index 0ea0562..17d895a 100644 --- a/plugins/date/date.py +++ b/plugins/date/date.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base @@ -8,7 +28,7 @@ class date(cryptobox.plugins.base.CryptoBoxPlugin): requestAuth = False rank = 10 - def doAction(self, store=None, year=None, month=None, day=None, hour=None, minute=None): + def doAction(self, store=None, year=0, month=0, day=0, hour=0, minute=0): import datetime if store: try: diff --git a/plugins/date/intl/en/cryptobox-server-feature-date.po b/plugins/date/intl/en/cryptobox-server-feature-date.po index da09f3a..731d368 100644 --- a/plugins/date/intl/en/cryptobox-server-feature-date.po +++ b/plugins/date/intl/en/cryptobox-server-feature-date.po @@ -4,100 +4,100 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Change date and time" -msgstr "" +msgstr "Change date and time" #: Link msgid "Set date/time" -msgstr "" +msgstr "Set date/time" #: Title.ConfigDate msgid "Date and time setting" -msgstr "" +msgstr "Date and time setting" #: Button.ConfigDate msgid "Set date and time" -msgstr "" +msgstr "Set date and time" #: Text.Date msgid "Date" -msgstr "" +msgstr "Date" #: Text.Time msgid "Time" -msgstr "" +msgstr "Time" #: Text.Months.1 msgid "January" -msgstr "" +msgstr "January" #: Text.Months.2 msgid "February" -msgstr "" +msgstr "February" #: Text.Months.3 msgid "March" -msgstr "" +msgstr "March" #: Text.Months.4 msgid "April" -msgstr "" +msgstr "April" #: Text.Months.5 msgid "May" -msgstr "" +msgstr "May" #: Text.Months.6 msgid "June" -msgstr "" +msgstr "June" #: Text.Months.7 msgid "July" -msgstr "" +msgstr "July" #: Text.Months.8 msgid "August" -msgstr "" +msgstr "August" #: Text.Months.9 msgid "September" -msgstr "" +msgstr "September" #: Text.Months.10 msgid "October" -msgstr "" +msgstr "October" #: Text.Months.11 msgid "November" -msgstr "" +msgstr "November" #: Text.Months.12 msgid "December" -msgstr "" +msgstr "December" #: SuccessMessage.DateChanged.Title msgid "Date changed" -msgstr "" +msgstr "Date changed" #: SuccessMessage.DateChanged.Text msgid "The date was changed successfully." -msgstr "" +msgstr "The date was changed successfully." #: WarningMessage.InvalidDate.Title msgid "Invalid value" -msgstr "" +msgstr "Invalid value" #: WarningMessage.InvalidDate.Text msgid "An invalid value for date or time was supplied. Please try again." -msgstr "" +msgstr "An invalid value for date or time was supplied. Please try again." diff --git a/plugins/date/root_action.py b/plugins/date/root_action.py index 609f0c3..d83d27f 100755 --- a/plugins/date/root_action.py +++ b/plugins/date/root_action.py @@ -1,4 +1,24 @@ #!/usr/bin/env python2.4 +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + ## necessary: otherwise CryptoBoxRootActions.py will refuse to execute this script PLUGIN_TYPE = "cryptobox" diff --git a/plugins/date/unittests.py b/plugins/date/unittests.py index cd94f31..ac9ea57 100644 --- a/plugins/date/unittests.py +++ b/plugins/date/unittests.py @@ -1,12 +1,34 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_get_date(self): + """retrieve the current date""" date = self._getCurrentDate() def test_change_date(self): + """set the date back and forth""" now = self._getCurrentDate() ## copy current time new_date = dict(now) @@ -22,6 +44,16 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass): self.assertEquals(now, self._getCurrentDate()) + def test_try_broken_date(self): + """expect error messages for invalid dates""" + self._setDate({"hour":12, "minute":40, "year":2004, "month":7, "day":0}) + self.cmd.find("invalid value for date") + self._setDate({"hour":12, "minute":40, "year":"x", "month":7, "day":2}) + self.cmd.find("invalid value for date") + self._setDate({"hour":12, "minute":40, "year":2004, "month":2, "day":31}) + self.cmd.find("invalid value for date") + + def _getCurrentDate(self): date_url = self.URL + "date" self.register_auth(date_url) @@ -41,13 +73,16 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def _setDate(self, date): """for now we have to use this function instead of the one below""" - date_url = self.URL + "date?store=1&year=%d&month=%d&day=%d&hour=%d&minute=%d" % (date["year"], date["month"], date["day"], date["hour"], date["minute"]) + date_url = self.URL + "date?weblang=en&store=1&year=%s&month=%s&day=%s&hour=%s&minute=%s"\ + % (str(date["year"]), str(date["month"]), str(date["day"]), + str(date["hour"]), str(date["minute"])) self.register_auth(date_url) self.cmd.go(date_url) def _setDateBroken(self, date): - """this should work, but the parsing of twill seems to be broken""" + """this should work, but the parsing of twill seems to be broken + as soon as the twill bug is fixed, we should use this function""" date_url = self.URL + "date" self.register_auth(date_url) self.cmd.go(date_url) diff --git a/plugins/disks/disks.cs b/plugins/disks/disks.cs index 66870a4..d345ac0 100644 --- a/plugins/disks/disks.cs +++ b/plugins/disks/disks.cs @@ -4,8 +4,6 @@ - - diff --git a/plugins/disks/disks.py b/plugins/disks/disks.py index 58b3550..a9f5c92 100644 --- a/plugins/disks/disks.py +++ b/plugins/disks/disks.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base class disks(cryptobox.plugins.base.CryptoBoxPlugin): @@ -13,6 +33,6 @@ class disks(cryptobox.plugins.base.CryptoBoxPlugin): def getStatus(self): - return "TODO" + return ":".join([e.getDevice() for e in self.cbox.getContainerList()]) diff --git a/plugins/disks/intl/en/cryptobox-server-feature-disks.po b/plugins/disks/intl/en/cryptobox-server-feature-disks.po index 09a844e..aff56de 100644 --- a/plugins/disks/intl/en/cryptobox-server-feature-disks.po +++ b/plugins/disks/intl/en/cryptobox-server-feature-disks.po @@ -4,28 +4,28 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Disk overview" -msgstr "" +msgstr "Disk overview" #: Link msgid "Disks" -msgstr "" +msgstr "Disks" #: Title.Disks msgid "Available disks" -msgstr "" +msgstr "Available disks" #: AdviceMessage.NoDisksAvailable.Text msgid "No available disks were found!" -msgstr "" +msgstr "No available disks were found!" diff --git a/plugins/disks/unittests.py b/plugins/disks/unittests.py index d632e0d..56316a1 100644 --- a/plugins/disks/unittests.py +++ b/plugins/disks/unittests.py @@ -1,9 +1,41 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): '''display all devices''' + self.register_auth(self.URL) self.cmd.go(self.URL + "disks?weblang=en") - self.cmd.find("Disks") + self.cmd.find("Available disks") + + + def test_is_device_in_list(self): + """check if the device-under-test is in the device list""" + self.register_auth(self.URL) + self.cmd.go(self.URL + "disks?weblang=en") + self.cmd.find("Available disks") + self.cmd.find(u'Data.Status.Plugins.disks=(.*)$', "m") + devices = self.locals["__match__"].split(":") + self.assertTrue(len(devices)>0) + self.assertTrue(("/dev/%s1" % self.device in devices) or ("/dev/%s2" % self.device in devices)) diff --git a/plugins/help/help.py b/plugins/help/help.py index 05b6337..19e1e68 100644 --- a/plugins/help/help.py +++ b/plugins/help/help.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base class help(cryptobox.plugins.base.CryptoBoxPlugin): @@ -17,7 +37,7 @@ class help(cryptobox.plugins.base.CryptoBoxPlugin): ## check for invalid characters and if the page exists in the default language if page and \ not re.search(u'\W', page) and \ - os.path.isfile(os.path.join(self.cbox.prefs["Locations"]["DocDir"], self.efault_lang, page + '.html')): + os.path.isfile(os.path.join(self.cbox.prefs["Locations"]["DocDir"], self.default_lang, page + '.html')): ## everything is ok pass else: @@ -36,10 +56,13 @@ class help(cryptobox.plugins.base.CryptoBoxPlugin): else: lang = self.default_lang self.hdf[self.hdf_prefix + "Language"] = lang + ## store the current setting for a later "getStatus" call + self.current_lang = lang + self.current_page = page return "doc" def getStatus(self): - return "TODO" + return "%s:%s" % (self.current_lang, self.current_page) diff --git a/plugins/help/intl/en/cryptobox-server-feature-help.po b/plugins/help/intl/en/cryptobox-server-feature-help.po index 90fe9ed..97ea507 100644 --- a/plugins/help/intl/en/cryptobox-server-feature-help.po +++ b/plugins/help/intl/en/cryptobox-server-feature-help.po @@ -5,19 +5,19 @@ msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" "POT-Creation-Date: 2006-11-28 05:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "User manual" -msgstr "" +msgstr "User manual" #: Link msgid "Help" -msgstr "" +msgstr "Help" diff --git a/plugins/help/unittests.py b/plugins/help/unittests.py index 94cb4b8..94fa4cc 100644 --- a/plugins/help/unittests.py +++ b/plugins/help/unittests.py @@ -1,29 +1,92 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass from twill.errors import * class unittests(cryptobox.web.testclass.WebInterfaceTestClass): - def test_help_pages(self): + def test_help_language_texts(self): '''help pages should be available in different languages''' ## check english help pages self.cmd.go(self.URL + "help?weblang=en") self.cmd.find("Table of Contents") self.cmd.find("Getting started") + (lang,page) = self._getHelpStatus() + self.assertTrue(lang == "en") + self.assertTrue(page == "CryptoBoxUser") + ## check german help pages self.cmd.go(self.URL + "help?weblang=de") self.cmd.find("Table of Contents") self.cmd.find("Wie geht es los") + (lang,page) = self._getHelpStatus() + self.assertTrue(lang == "de") + self.assertTrue(page == "CryptoBoxUser") - self.cmd.go(self.URL + "help?weblang=si") + ## check slovene help pages + self.cmd.go(self.URL + "help?weblang=sl") self.assertRaises(TwillAssertionError, self.cmd.notfind, "Table of Contents") - #TODO: add a slovene text here, as soon as the help is translated + ## add a slovene text here, as soon as the help is translated + (lang,page) = self._getHelpStatus() + ## change this to "sl" as soon as the help is translated + self.assertTrue(lang == "en") + self.assertTrue(page == "CryptoBoxUser") + ## check french help pages self.cmd.go(self.URL + "help?weblang=fr") self.assertRaises(TwillAssertionError, self.cmd.notfind, "Table of Contents") - #TODO: add a french text here, as soon as the help is translated + ## add a french text here, as soon as the help is translated + (lang,page) = self._getHelpStatus() + ## change this to "fr" as soon as the help is translated + self.assertTrue(lang == "en") + self.assertTrue(page == "CryptoBoxUser") ## test a random language - it should fall back to english self.cmd.go(self.URL + "help?weblang=foobar") self.assertRaises(TwillAssertionError, self.cmd.notfind, "Table of Contents") + (lang,page) = self._getHelpStatus() + self.assertTrue(lang == "en") + self.assertTrue(page == "CryptoBoxUser") + + + def test_help_pages(self): + """check invalid page requests""" + self.cmd.go(self.URL + "help?page=foobar") + (lang,page) = self._getHelpStatus() + self.assertTrue(page == "CryptoBoxUser") + + self.cmd.go(self.URL + "help?page=CryptoBoxUser") + (lang,page) = self._getHelpStatus() + self.assertTrue(page == "CryptoBoxUser") + + + def test_help_default_languages(self): + """check invalid page requests""" + self.cmd.go(self.URL + "help?weblang=foobar") + (lang,page) = self._getHelpStatus() + self.assertTrue(lang == "en") + + + def _getHelpStatus(self): + self.cmd.find(u'Data.Status.Plugins.help=(.*)$', "m") + return tuple(self.locals["__match__"].split(":")) diff --git a/plugins/language_selection/intl/en/cryptobox-server-feature-language_selection.po b/plugins/language_selection/intl/en/cryptobox-server-feature-language_selection.po index ead17a3..9b91857 100644 --- a/plugins/language_selection/intl/en/cryptobox-server-feature-language_selection.po +++ b/plugins/language_selection/intl/en/cryptobox-server-feature-language_selection.po @@ -5,23 +5,23 @@ msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" "POT-Creation-Date: 2006-11-28 05:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Choose interface language" -msgstr "" +msgstr "Choose interface language" #: Link msgid "Languages" -msgstr "" +msgstr "Languages" #: Title.Language msgid "Choose an interface language" -msgstr "" +msgstr "Choose an interface language" diff --git a/plugins/language_selection/language_selection.py b/plugins/language_selection/language_selection.py index d3af707..9d2bfcd 100644 --- a/plugins/language_selection/language_selection.py +++ b/plugins/language_selection/language_selection.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base @@ -13,5 +33,5 @@ class language_selection(cryptobox.plugins.base.CryptoBoxPlugin): def getStatus(self): - return "TODO" + return ":".join(self.site.langOrder) diff --git a/plugins/language_selection/unittests.py b/plugins/language_selection/unittests.py index a70f47d..2f0eb6f 100644 --- a/plugins/language_selection/unittests.py +++ b/plugins/language_selection/unittests.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): @@ -8,3 +28,13 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass): self.cmd.go(url) self.cmd.find('hoose an interface language') + + def test_check_language_list(self): + url = self.URL + "language_selection" + self.register_auth(url) + self.cmd.go(url) + self.cmd.find(u'Data.Status.Plugins.language_selection=(.*)$', "m") + langs = self.locals["__match__"].split(":") + self.assertTrue(len(langs)>1) + self.assertTrue(langs[0] == "en") + diff --git a/plugins/logs/intl/en/cryptobox-server-feature-logs.po b/plugins/logs/intl/en/cryptobox-server-feature-logs.po index cb7eec1..cd8e02b 100644 --- a/plugins/logs/intl/en/cryptobox-server-feature-logs.po +++ b/plugins/logs/intl/en/cryptobox-server-feature-logs.po @@ -4,28 +4,28 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Show the content of the log file" -msgstr "" +msgstr "Show the content of the log file" #: Link msgid "Show log file" -msgstr "" +msgstr "Show log file" #: Title.Log msgid "CryptoBox logfiles" -msgstr "" +msgstr "CryptoBox logfiles" #: Text.EmptyLog msgid "The logfile of the CryptoBox is empty." -msgstr "" +msgstr "The logfile of the CryptoBox is empty." diff --git a/plugins/logs/logs.py b/plugins/logs/logs.py index 36cd14a..5187ce8 100644 --- a/plugins/logs/logs.py +++ b/plugins/logs/logs.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base import os @@ -13,12 +33,12 @@ class logs(cryptobox.plugins.base.CryptoBoxPlugin): ## filter input try: lines = int(lines) - if lines < 0: raise(ValueError) + if lines <= 0: raise(ValueError) except ValueError: lines = 50 try: size = int(size) - if size < 0: raise(ValueError) + if size <= 0: raise(ValueError) except ValueError: size = 3000 if not pattern is None: diff --git a/plugins/logs/unittests.py b/plugins/logs/unittests.py index d63f515..fe18d6b 100644 --- a/plugins/logs/unittests.py +++ b/plugins/logs/unittests.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): @@ -16,5 +36,22 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass): self.cmd.go(log_url + "?pattern=ERROR") self.cmd.find(log_text) - ## TODO: check the filtering functions - + def test_invalid_args(self): + log_url = self.URL + "logs" + self.cmd.go(log_url + "?lines=10") + self.cmd.find('class="console"') + self.cmd.go(log_url + "?lines=0") + self.cmd.find('class="console"') + self.cmd.go(log_url + "?lines=x") + self.cmd.find('class="console"') + self.cmd.go(log_url + "?size=1000") + self.cmd.find('class="console"') + self.cmd.go(log_url + "?size=0") + self.cmd.find('class="console"') + self.cmd.go(log_url + "?size=x") + self.cmd.find('class="console"') + self.cmd.go(log_url + "?pattern=foobar") + self.cmd.find('class="console"') + self.cmd.go(log_url + u"?pattern=kfj!^(]") + self.cmd.find('class="console"') + diff --git a/plugins/network/intl/en/cryptobox-server-feature-network.po b/plugins/network/intl/en/cryptobox-server-feature-network.po index d867f29..bcda9f5 100644 --- a/plugins/network/intl/en/cryptobox-server-feature-network.po +++ b/plugins/network/intl/en/cryptobox-server-feature-network.po @@ -4,44 +4,48 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Configure network" -msgstr "" +msgstr "Configure network" #: Title.Network msgid "Network settings" -msgstr "" +msgstr "Network settings" #: Button.Network msgid "Update network settings" -msgstr "" +msgstr "Update network settings" #: Text.IP msgid "Network address" -msgstr "" +msgstr "Network address" #: WarningMessage.InvalidIP.Title msgid "Invalid value" -msgstr "" +msgstr "Invalid value" #: WarningMessage.InvalidIP.Text msgid "An invalid network address (IP) was supplied. Please try again." -msgstr "" +msgstr "An invalid network address (IP) was supplied. Please try again." #: SuccessMessage.IPChanged.Title msgid "Network address changed" -msgstr "" +msgstr "Network address changed" #: SuccessMessage.IPChanged.Text -msgid "The network address has been changed. In a few seconds you will get redirected to the new address." +msgid "" +"The network address has been changed. In a few seconds you will get " +"redirected to the new address." msgstr "" +"The network address has been changed. In a few seconds you will get " +"redirected to the new address." diff --git a/plugins/network/network.py b/plugins/network/network.py index 6a6f5ee..f1f481a 100644 --- a/plugins/network/network.py +++ b/plugins/network/network.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import subprocess import os import cryptobox.plugins.base diff --git a/plugins/network/root_action.py b/plugins/network/root_action.py index d0ec3b1..4625a0c 100755 --- a/plugins/network/root_action.py +++ b/plugins/network/root_action.py @@ -1,4 +1,24 @@ #!/usr/bin/env python2.4 +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + #TODO: add netmask and gateway diff --git a/plugins/network/unittests.py b/plugins/network/unittests.py index 5380fe9..4c2e779 100644 --- a/plugins/network/unittests.py +++ b/plugins/network/unittests.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass from network import CHANGE_IP_DELAY @@ -13,14 +33,12 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass): ## extract the current IP from the network plugin output def getCurrentIP(): self.cmd.go(self.URL + "network") - self.cmd.show() self.cmd.find(u'Data.Status.Plugins.network=([0-9\.]*)$', "m") return self.locals["__match__"] origIPtext = getCurrentIP() origIPocts = origIPtext.split(".") ## check, if the original IP is valid (contains four octets) self.assertEquals(4, len(origIPocts)) - self.cmd.echo(origIPocts) wrongIP = "192.168.123.321" def setIP((ip1, ip2, ip3, ip4)): self.cmd.go(self.URL + "network") @@ -43,3 +61,10 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass): self.assertEquals(origIPtext, getCurrentIP()) + def test_inputs(self): + self.register_auth(self.URL + "network") + self.cmd.go(self.URL + "network" + "?redirected=1") + self.cmd.notfind("problem") + self.cmd.go(self.URL + "network" + "?store=1") + self.cmd.find("invalid network address") + diff --git a/plugins/partition/intl/en/cryptobox-server-feature-partition.po b/plugins/partition/intl/en/cryptobox-server-feature-partition.po index 4286e22..bf44f59 100644 --- a/plugins/partition/intl/en/cryptobox-server-feature-partition.po +++ b/plugins/partition/intl/en/cryptobox-server-feature-partition.po @@ -4,168 +4,175 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Disk partitioning" -msgstr "" +msgstr "Disk partitioning" #: Link msgid "Partition a disk" -msgstr "" +msgstr "Partition a disk" #: Title.Partition msgid "Disk partitions" -msgstr "" +msgstr "Disk partitions" #: Button.SelectDevice msgid "Manual partitioning" -msgstr "" +msgstr "Manual partitioning" #: Button.EasySetup msgid "Automatic setup" -msgstr "" +msgstr "Automatic setup" #: Button.AddPartition msgid "Add" -msgstr "" +msgstr "Add" #: Button.DelPartition msgid "Remove" -msgstr "" +msgstr "Remove" #: Button.SavePartitions msgid "Write new partition table" -msgstr "" +msgstr "Write new partition table" #: Button.AbortPartitions msgid "Cancel" -msgstr "" +msgstr "Cancel" #: Text.FS.Type msgid "Filesystem type" -msgstr "" +msgstr "Filesystem type" #: Text.FS.Fat msgid "FAT (Windows)" -msgstr "" +msgstr "FAT (Windows)" #: Text.FS.Ext2 msgid "Ext2" -msgstr "" +msgstr "Ext2" #: Text.FS.Ext3 msgid "Ext3" -msgstr "" +msgstr "Ext3" #: Text.FS.Reiser msgid "Reiser" -msgstr "" +msgstr "Reiser" #: Text.PartNum msgid "Id" -msgstr "" +msgstr "Id" #: Text.PartType msgid "Type" -msgstr "" +msgstr "Type" #: Text.Size msgid "Size (MB)" -msgstr "" +msgstr "Size (MB)" #: Text.SelectDevice msgid "Choose a disk for partitioning" -msgstr "" +msgstr "Choose a disk for partitioning" #: Text.ProgressInfo msgid "Progress of formatting:" -msgstr "" +msgstr "Progress of formatting:" #: Text.CreateConfigPartition msgid "Automatically creating a configuration partition." -msgstr "" +msgstr "Automatically creating a configuration partition." #: Text.RemovalContainers msgid "These disks will be destroyed, if you continue" -msgstr "" +msgstr "These disks will be destroyed, if you continue" #: AdviceMessage.DeviceDataIsLost.Text -msgid "If you continue, you will destroy all data on the choosen disk. Please be VERY careful!" +msgid "" +"If you continue, you will destroy all data on the choosen disk. Please be " +"VERY careful!" msgstr "" +"If you continue, you will destroy all data on the choosen disk. Please be " +"VERY careful!" #: SuccessMessage.Partitioned.Title msgid "Partitioning complete" -msgstr "" +msgstr "Partitioning complete" #: SuccessMessage.Partitioned.Text msgid "The disk was partitioned successfully." -msgstr "" +msgstr "The disk was partitioned successfully." #: SuccessMessage.EasySetup.Title msgid "Initialization completed" -msgstr "" +msgstr "Initialization completed" #: SuccessMessage.EasySetup.Text msgid "Automatic initialization was finished successfully." -msgstr "" +msgstr "Automatic initialization was finished successfully." #: WarningMessage.NoDisksAvailable.Title msgid "No disks found" -msgstr "" +msgstr "No disks found" #: WarningMessage.NoDisksAvailable.Text -msgid "No suitable disks found - please check your configuration and hardware setup." +msgid "" +"No suitable disks found - please check your configuration and hardware setup." msgstr "" +"No suitable disks found - please check your configuration and hardware setup." #: WarningMessage.PartitioningFailed.Title msgid "Partitioning failed" -msgstr "" +msgstr "Partitioning failed" #: WarningMessage.PartitioningFailed.Text msgid "The partitioning of the device failed for some reason - sorry!" -msgstr "" +msgstr "The partitioning of the device failed for some reason - sorry!" #: WarningMessage.FormattingFailed.Title msgid "Formatting failed" -msgstr "" +msgstr "Formatting failed" #: WarningMessage.FormattingFailed.Text msgid "The formatting of the filesystems of the device failed - sorry!" -msgstr "" +msgstr "The formatting of the filesystems of the device failed - sorry!" #: WarningMessage.DiskIsBusy.Title msgid "This disk is busy" -msgstr "" +msgstr "This disk is busy" #: WarningMessage.DiskIsBusy.Text msgid "Please deactivate all containers of this disk before partitioning." -msgstr "" +msgstr "Please deactivate all containers of this disk before partitioning." #: WarningMessage.DiskIsBusy.Link.Text msgid "Show all disks" -msgstr "" +msgstr "Show all disks" #: WarningMessage.PartitionTooBig.Title msgid "Invalid size" -msgstr "" +msgstr "Invalid size" #: WarningMessage.PartitionTooBig.Text msgid "The container size you entered exceeded the available size of the disk." msgstr "" +"The container size you entered exceeded the available size of the disk." #: WarningMessage.PartitionTooSmall.Text msgid "The minimum size of a container is 10 megabytes." -msgstr "" +msgstr "The minimum size of a container is 10 megabytes." #: WarningMessage.DiskIsBusy.Link.Rel msgid "disks" -msgstr "" +msgstr "disks" diff --git a/plugins/partition/partition.py b/plugins/partition/partition.py index cf5c3c9..43c2518 100644 --- a/plugins/partition/partition.py +++ b/plugins/partition/partition.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import subprocess import os import logging diff --git a/plugins/partition/root_action.py b/plugins/partition/root_action.py index 4cb4758..0b54124 100755 --- a/plugins/partition/root_action.py +++ b/plugins/partition/root_action.py @@ -1,4 +1,24 @@ #!/usr/bin/env python2.4 +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + ## necessary: otherwise CryptoBoxRootActions.py will refuse to execute this script PLUGIN_TYPE = "cryptobox" diff --git a/plugins/partition/unittests.py b/plugins/partition/unittests.py index 2c2fbd2..696c67a 100644 --- a/plugins/partition/unittests.py +++ b/plugins/partition/unittests.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): diff --git a/plugins/plugin_manager/intl/en/cryptobox-server-feature-plugin_manager.po b/plugins/plugin_manager/intl/en/cryptobox-server-feature-plugin_manager.po index 4b46258..1953141 100644 --- a/plugins/plugin_manager/intl/en/cryptobox-server-feature-plugin_manager.po +++ b/plugins/plugin_manager/intl/en/cryptobox-server-feature-plugin_manager.po @@ -5,71 +5,71 @@ msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" "POT-Creation-Date: 2006-11-28 05:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Plugin Manager" -msgstr "" +msgstr "Plugin Manager" #: Link msgid "Manage plugins" -msgstr "" +msgstr "Manage plugins" #: Title.VolumePlugins msgid "Volume plugins" -msgstr "" +msgstr "Volume plugins" #: Title.SystemPlugins msgid "System plugins" -msgstr "" +msgstr "System plugins" #: Button.SaveSettings msgid "Save settings" -msgstr "" +msgstr "Save settings" #: Button.Up msgid "move up" -msgstr "" +msgstr "move up" #: Button.Down msgid "move down" -msgstr "" +msgstr "move down" #: Text.PluginName msgid "Plugin" -msgstr "" +msgstr "Plugin" #: Text.PluginRank msgid "Order" -msgstr "" +msgstr "Order" #: Text.RequestsAuth msgid "Requires admin?" -msgstr "" +msgstr "Requires admin?" #: Text.InMenu msgid "Main menu" -msgstr "" +msgstr "Main menu" #: Text.InPreferences msgid "Preferences" -msgstr "" +msgstr "Preferences" #: Text.InVolumeRegister msgid "Register" -msgstr "" +msgstr "Register" #: Text.InVolumeProperties msgid "Properties" -msgstr "" +msgstr "Properties" #: Text.WhereVisible msgid "Where visible?" -msgstr "" +msgstr "Where visible?" diff --git a/plugins/plugin_manager/plugin_manager.py b/plugins/plugin_manager/plugin_manager.py index 19d2c62..bb5a0e7 100644 --- a/plugins/plugin_manager/plugin_manager.py +++ b/plugins/plugin_manager/plugin_manager.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base import cryptobox.plugins.manage diff --git a/plugins/plugin_manager/unittests.py b/plugins/plugin_manager/unittests.py index c545e86..8252461 100644 --- a/plugins/plugin_manager/unittests.py +++ b/plugins/plugin_manager/unittests.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): @@ -8,3 +28,53 @@ class unittests(cryptobox.web.testclass.WebInterfaceTestClass): self.cmd.go(url) self.cmd.find('Plugin Manager') + + def test_set_options(self): + url = self.URL + "plugin_manager" + self.register_auth(url) + self.cmd.go(url + u"?plugin_name=t/-!") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?plugin_name=foobar") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?plugin_name=disks&action=up") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?plugin_name=disks&action=down") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&dis/ks_listed") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=50") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=x") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_auth=1") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=50&disks_auth=1") + self.cmd.find('Plugin Manager') + + + def test_move_up(self): + ## TODO: if we want to be perfect, then we should check the change of the rank + url = self.URL + "plugin_manager" + self.register_auth(url) + self.cmd.go(url + u"?plugin_name=disks&action=up") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=0") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?plugin_name=disks&action=up") + self.cmd.find('Plugin Manager') + + + def test_move_down(self): + ## TODO: if we want to be perfect, then we should check the change of the rank + url = self.URL + "plugin_manager" + self.register_auth(url) + self.cmd.go(url + u"?plugin_name=disks&action=down") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?store=1&disks_listed&disks_visible_menu=1&disks_rank=100") + self.cmd.find('Plugin Manager') + self.cmd.go(url + u"?plugin_name=disks&action=down") + self.cmd.find('Plugin Manager') + + diff --git a/plugins/shutdown/intl/en/cryptobox-server-feature-shutdown.po b/plugins/shutdown/intl/en/cryptobox-server-feature-shutdown.po index e3f6eb4..ce19fe1 100644 --- a/plugins/shutdown/intl/en/cryptobox-server-feature-shutdown.po +++ b/plugins/shutdown/intl/en/cryptobox-server-feature-shutdown.po @@ -4,72 +4,76 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Shutdown or reboot the computer" -msgstr "" +msgstr "Shutdown or reboot the computer" #: Link msgid "Shutdown" -msgstr "" +msgstr "Shutdown" #: Title.Shutdown msgid "Shutdown computer" -msgstr "" +msgstr "Shutdown computer" #: Title.ProgressShutdown msgid "The CryptoBox is shutting down" -msgstr "" +msgstr "The CryptoBox is shutting down" #: Title.ProgressReboot msgid "The CryptoBox is rebooting" -msgstr "" +msgstr "The CryptoBox is rebooting" #: Button.Shutdown msgid "Poweroff" -msgstr "" +msgstr "Poweroff" #: Button.Reboot msgid "Reboot" -msgstr "" +msgstr "Reboot" #: SuccessMessage.Shutdown.Title msgid "Shutting down the system" -msgstr "" +msgstr "Shutting down the system" #: SuccessMessage.Shutdown.Text -msgid "If the computer does not turn off itself within a minute, then you should plug it off manually." +msgid "" +"If the computer does not turn off itself within a minute, then you should " +"plug it off manually." msgstr "" +"If the computer does not turn off itself within a minute, then you should " +"plug it off manually." #: SuccessMessage.Reboot.Title msgid "Rebooting the system" -msgstr "" +msgstr "Rebooting the system" #: SuccessMessage.Reboot.Text msgid "This may take a while (depending on your hardware) ..." -msgstr "" +msgstr "This may take a while (depending on your hardware) ..." #: WarningMessage.ShutdownFailed.Title msgid "Shutdown failed" -msgstr "" +msgstr "Shutdown failed" #: WarningMessage.ShutdownFailed.Text msgid "Shutting down of the system failed for some reason - sorry!" -msgstr "" +msgstr "Shutting down of the system failed for some reason - sorry!" #: WarningMessage.RebootFailed.Title msgid "Reboot failed" -msgstr "" +msgstr "Reboot failed" #: WarningMessage.RebootFailed.Text msgid "Reboot of the system failed for some reason - sorry!" -msgstr "" +msgstr "Reboot of the system failed for some reason - sorry!" diff --git a/plugins/shutdown/root_action.py b/plugins/shutdown/root_action.py index 9aa553b..5259d75 100755 --- a/plugins/shutdown/root_action.py +++ b/plugins/shutdown/root_action.py @@ -1,4 +1,24 @@ #!/usr/bin/env python2.4 +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + ## necessary: otherwise CryptoBoxRootActions.py will refuse to execute this script PLUGIN_TYPE = "cryptobox" diff --git a/plugins/shutdown/shutdown.py b/plugins/shutdown/shutdown.py index ca38bc0..f240cc7 100644 --- a/plugins/shutdown/shutdown.py +++ b/plugins/shutdown/shutdown.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base REDIRECT_DELAY = 180 diff --git a/plugins/shutdown/unittests.py b/plugins/shutdown/unittests.py index 5edf587..2d506f9 100644 --- a/plugins/shutdown/unittests.py +++ b/plugins/shutdown/unittests.py @@ -1,11 +1,33 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): + """just read the form - I do not know of a way how to check success""" url = self.URL + "shutdown" self.register_auth(url) self.cmd.go(url) - self.cmd.find('shutdown\?type=reboot') - self.cmd.find('shutdown\?type=shutdown') + self.cmd.find('shutdown') + self.cmd.find('type=reboot') + self.cmd.find('type=shutdown') diff --git a/plugins/system_preferences/intl/en/cryptobox-server-feature-system_preferences.po b/plugins/system_preferences/intl/en/cryptobox-server-feature-system_preferences.po index 739dc01..54dc4ca 100644 --- a/plugins/system_preferences/intl/en/cryptobox-server-feature-system_preferences.po +++ b/plugins/system_preferences/intl/en/cryptobox-server-feature-system_preferences.po @@ -4,20 +4,20 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "System preferences" -msgstr "" +msgstr "System preferences" #: Link msgid "Preferences" -msgstr "" +msgstr "Preferences" diff --git a/plugins/system_preferences/system_preferences.py b/plugins/system_preferences/system_preferences.py index 68d9154..6cd0da8 100644 --- a/plugins/system_preferences/system_preferences.py +++ b/plugins/system_preferences/system_preferences.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base class system_preferences(cryptobox.plugins.base.CryptoBoxPlugin): @@ -12,6 +32,6 @@ class system_preferences(cryptobox.plugins.base.CryptoBoxPlugin): def getStatus(self): - return "TODO" + return ":".join([p.getName() for p in self.site.pluginList.getPlugins()]) diff --git a/plugins/system_preferences/unittests.py b/plugins/system_preferences/unittests.py index 5e410d7..b904f19 100644 --- a/plugins/system_preferences/unittests.py +++ b/plugins/system_preferences/unittests.py @@ -1,8 +1,36 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): - def test_preferences_overview(self): - self.cmd.go(self.URL + "system_preferences?weblang=en") + def test_read_form(self): + self.cmd.go(self.URL + "system_preferences") self.cmd.find("Preferences") + + def test_check_plugins(self): + self.cmd.go(self.URL + "system_preferences") + self.cmd.find(u'Data.Status.Plugins.system_preferences=(.*)$', "m") + plugins = self.locals["__match__"].split(":") + self.assertTrue(len(plugins) > 1) + self.assertTrue("disks" in plugins) + diff --git a/plugins/user_manager/intl/en/cryptobox-server-feature-user_manager.po b/plugins/user_manager/intl/en/cryptobox-server-feature-user_manager.po index d01ffd5..27086ec 100644 --- a/plugins/user_manager/intl/en/cryptobox-server-feature-user_manager.po +++ b/plugins/user_manager/intl/en/cryptobox-server-feature-user_manager.po @@ -4,88 +4,88 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "User Manager" -msgstr "" +msgstr "User Manager" #: Link msgid "Manage users" -msgstr "" +msgstr "Manage users" #: Title.AddUser msgid "Add new user" -msgstr "" +msgstr "Add new user" #: Title.DelUser msgid "Remove user" -msgstr "" +msgstr "Remove user" #: Title.ChangePassword msgid "Change password" -msgstr "" +msgstr "Change password" #: Button.DelUser msgid "Remove" -msgstr "" +msgstr "Remove" #: Text.NewUser msgid "Name of the new user" -msgstr "" +msgstr "Name of the new user" #: Text.DelUser msgid "User to remove" -msgstr "" +msgstr "User to remove" #: Text.ChangePasswordUser msgid "Change user's password" -msgstr "" +msgstr "Change user's password" #: SuccessMessage.UserAdded.Title msgid "User added" -msgstr "" +msgstr "User added" #: SuccessMessage.UserAdded.Text msgid "The new user was added successfully." -msgstr "" +msgstr "The new user was added successfully." #: SuccessMessage.UserRemoved.Title msgid "User removed" -msgstr "" +msgstr "User removed" #: SuccessMessage.UserRemoved.Text msgid "The user was removed successfully." -msgstr "" +msgstr "The user was removed successfully." #: SuccessMessage.PasswordChanged.Title msgid "Password changed" -msgstr "" +msgstr "Password changed" #: SuccessMessage.PasswordChanged.Text msgid "The password was changed successfully." -msgstr "" +msgstr "The password was changed successfully." #: WarningMessage.InvalidUserName.Title msgid "Invalid username" -msgstr "" +msgstr "Invalid username" #: WarningMessage.InvalidUserName.Text msgid "The choosen username is invalid: only letters and digits are allowed." -msgstr "" +msgstr "The choosen username is invalid: only letters and digits are allowed." #: WarningMessage.UserAlreadyExists.Title msgid "User exists" -msgstr "" +msgstr "User exists" #: WarningMessage.UserAlreadyExists.Text msgid "The choosen username does already exist. Please choose another one." -msgstr "" +msgstr "The choosen username does already exist. Please choose another one." diff --git a/plugins/user_manager/language.hdf b/plugins/user_manager/language.hdf index 3d99c44..fb54995 100644 --- a/plugins/user_manager/language.hdf +++ b/plugins/user_manager/language.hdf @@ -44,6 +44,11 @@ WarningMessage { Text = The choosen username is invalid: only letters and digits are allowed. } + NeverRemoveReservedUser { + Title = Reserved user + Text = You may not remove a reserved user. Sorry! + } + UserAlreadyExists { Title = User exists Text = The choosen username does already exist. Please choose another one. diff --git a/plugins/user_manager/unittests.py b/plugins/user_manager/unittests.py index 4560715..86f6023 100644 --- a/plugins/user_manager/unittests.py +++ b/plugins/user_manager/unittests.py @@ -1,27 +1,194 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass ## this user may not be removed from user_manager import RESERVED_USERS class unittests(cryptobox.web.testclass.WebInterfaceTestClass): + def test_read_users(self): + """does the 'admin' user exist?""" cur_users = self._getUsers() - # self.cmd.showforms() + self.cmd.find("Manage users") + self.assertTrue("admin" in cur_users) - def _addUser(self, user, password): - self._gotPage() - ## TODO: finish + def test_test_wrong_credentials(self): + """check if the user_manager is protected""" + url = self.URL + "user_manager" + self.register_auth(url,"foo","bar") + self.cmd.go(url) + self.cmd.notfind("Manage users") + + + def test_add_existing_user(self): + """adding an existing user should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self._add_user("admin","foo","foo") + self.cmd.find("The choosen username does already exist") - def _gotoPage(self): + def test_add_invalid_username(self): + """adding an invalid username should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self._add_user("foo/bar","foo","foo") + self.cmd.find("Invalid username") + self.assertFalse("foo/bar" in self._getUsers()) + + + def test_add_without_password(self): + """adding a user without password should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self.assertFalse("foo" in self._getUsers()) + self._add_user("foo","","foo") + self.cmd.find("Missing new password") + self.assertFalse("foo" in self._getUsers()) + + + def test_add_with_different_passwords(self): + """adding a user with different passwords should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self.assertFalse("foo" in self._getUsers()) + self._add_user("foo","bar","foo") + self.cmd.find("Different passwords") + self.assertFalse("foo" in self._getUsers()) + + + def test_change_pw_for_invalid_user(self): + """changing a password of a non existing user should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self.assertFalse("barfoo" in self._getUsers()) + self.cmd.go(url + "?store=change_password&user=foobar&new_pw=foo&new_pw2=foo") + self.cmd.notfind("Password changed") + + + def test_change_pw_without_password(self): + """changing a password without a new password should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self.assertFalse("foo" in self._getUsers()) + self._add_user("foo","bar","bar") + self.assertTrue("foo" in self._getUsers()) + self._change_password("foo","","foo") + self.cmd.find("Missing new password") + self._del_user("foo") + self.assertFalse("foo" in self._getUsers()) + + + def test_change_pw_wit_different_passwords(self): + """changing a password while supplying different passwords should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self.assertFalse("foo" in self._getUsers()) + self._add_user("foo","bar","bar") + self.assertTrue("foo" in self._getUsers()) + self._change_password("foo","bar","foo") + self.cmd.find("Different passwords") + self._del_user("foo") + self.assertFalse("foo" in self._getUsers()) + + + def _remove_reserved_user(self): + """removing a reserved user should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self.assertTrue("admin" in self._getUsers()) + self._del_user("admin") + self.cmd.find("may not remove a reserved user") + self.assertTrue("admin" in self._getUsers()) + + + def _remove_non_existing_user(self): + """removing a non-existing user should fail""" + url = self.URL + "user_manager" + self.register_auth(url) + self.assertFalse("barfoo" in self._getUsers()) + self._del_user("barfoo") + self.cmd.notfind("User removed") + + + def test_manage_users(self): + """add a new user, change its password and remove the user afterwards""" + url = self.URL + "user_manager" + self.register_auth(url) + ## remove the user that should be added - just in case a previous run was unclean + ## check its existence before + if "foobar" in self._getUsers(): self._del_user("foobar") + ## add a new user + self._add_user("foobar","foo","foo") + self.cmd.find("User added") + users = self._getUsers() + self.assertTrue("foobar" in users) + ## change the password of the new user + self.register_auth(url,"foobar","foo") + self._change_password("foobar","bar","bar") + self.cmd.find("Password changed") + ## remove the new user + self.register_auth(url,"foobar","bar") + self._del_user("foobar") + self.cmd.find("User removed") + users = self._getUsers() + self.assertFalse("foobar" in users) + + + def test_invalid_input(self): + """check all combinations of invalid input""" + url = self.URL + "user_manager" + self.register_auth(url) + self.cmd.go(url + "?store=foobar") + + + def _add_user(self, username, pw, pw2): + self.cmd.go(self.URL + "user_manager") + self.cmd.formvalue("add_user","user",username) + self.cmd.formvalue("add_user","new_pw",pw) + self.cmd.formvalue("add_user","new_pw2",pw2) + self.cmd.submit() + + + def _del_user(self, username): + self.cmd.go(self.URL + "user_manager") + self.cmd.formvalue("del_user","user",username) + self.cmd.submit() + + + def _change_password(self, username, pw, pw2): + self.cmd.go(self.URL + "user_manager") + self.cmd.formvalue("change_password","user",username) + self.cmd.formvalue("change_password","new_pw",pw) + self.cmd.formvalue("change_password","new_pw2",pw2) + self.cmd.submit() + + + def _getUsers(self): url = self.URL + "user_manager" self.register_auth(url) self.cmd.go(url) - + self.cmd.find("Data.Status.Plugins.user_manager=([\w:]+)") + return self.locals["__match__"].split(":") - def _getUsers(self): - self._gotoPage() - self.cmd.find("Data.Status.Plugins.user_manager=([\w/]+)") - return self.locals["__match__"].split("/") diff --git a/plugins/user_manager/user_manager.py b/plugins/user_manager/user_manager.py index c762621..556d241 100644 --- a/plugins/user_manager/user_manager.py +++ b/plugins/user_manager/user_manager.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base RESERVED_USERS = [ "admin" ] @@ -48,9 +68,10 @@ class user_manager(cryptobox.plugins.base.CryptoBoxPlugin): elif store == "del_user": if user in RESERVED_USERS: self.cbox.log.info("user_manager: tried to remove reserved user (%s)" % user) + self.hdf["Data.Warning"] = "NeverRemoveReservedUser" elif user in adminDict.keys(): del adminDict[user] - self.hdf["Data.Success"] = "Plugins.user_manager.UserAdded" + self.hdf["Data.Success"] = "Plugins.user_manager.UserRemoved" try: self.cbox.prefs.userDB.write() except IOError: @@ -64,7 +85,7 @@ class user_manager(cryptobox.plugins.base.CryptoBoxPlugin): def getStatus(self): - return "/".join(self.cbox.prefs.userDB["admins"].keys()) + return ":".join(self.cbox.prefs.userDB["admins"].keys()) def __cleanHDF(self): diff --git a/plugins/volume_automount/intl/en/cryptobox-server-feature-volume_automount.po b/plugins/volume_automount/intl/en/cryptobox-server-feature-volume_automount.po index f0173a3..666ae48 100644 --- a/plugins/volume_automount/intl/en/cryptobox-server-feature-volume_automount.po +++ b/plugins/volume_automount/intl/en/cryptobox-server-feature-volume_automount.po @@ -4,56 +4,56 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Automatic activation" -msgstr "" +msgstr "Automatic activation" #: Title.AutoMountVolume msgid "Activate during startup" -msgstr "" +msgstr "Activate during startup" #: Button.AutoMountOn msgid "Enable automatic activation" -msgstr "" +msgstr "Enable automatic activation" #: Button.AutoMountOff msgid "Disable automatic activation" -msgstr "" +msgstr "Disable automatic activation" #: Text.AutoIsOn msgid "Currently automatic activation is enabled" -msgstr "" +msgstr "Currently automatic activation is enabled" #: Text.AutoIsOff msgid "Currently automatic activation is disabled" -msgstr "" +msgstr "Currently automatic activation is disabled" #: SuccessMessage.AutoMountEnabled.Title msgid "Automatic activation enabled" -msgstr "" +msgstr "Automatic activation enabled" #: SuccessMessage.AutoMountEnabled.Text msgid "This volume will get activated during startup" -msgstr "" +msgstr "This volume will get activated during startup" #: SuccessMessage.AutoMountDisabled.Title msgid "Automatic activation disabled" -msgstr "" +msgstr "Automatic activation disabled" #: SuccessMessage.AutoMountDisabled.Text msgid "This volume will not get activated during startup" -msgstr "" +msgstr "This volume will not get activated during startup" #: AdviceMessage.NoAutoMountForEncryptedVolumes.Text msgid "Automatic activation is not possible for encrypted volumes." -msgstr "" +msgstr "Automatic activation is not possible for encrypted volumes." diff --git a/plugins/volume_automount/unittests.py b/plugins/volume_automount/unittests.py index 0aeedba..c10422a 100644 --- a/plugins/volume_automount/unittests.py +++ b/plugins/volume_automount/unittests.py @@ -1,9 +1,29 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): - url = self.URL + "volume_automount?weblang=en&device=%2Fdev%2Floop1" + url = self.URL + "volume_automount?weblang=en&device=%2Fdev%2F" + self.device + "1" self.register_auth(url) self.cmd.go(url) self.cmd.find('Activate') diff --git a/plugins/volume_automount/volume_automount.py b/plugins/volume_automount/volume_automount.py index bbfb01c..c0df4f2 100644 --- a/plugins/volume_automount/volume_automount.py +++ b/plugins/volume_automount/volume_automount.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base from cryptobox.core.exceptions import * diff --git a/plugins/volume_chpasswd/intl/en/cryptobox-server-feature-volume_chpasswd.po b/plugins/volume_chpasswd/intl/en/cryptobox-server-feature-volume_chpasswd.po index 850ab4a..03a08d3 100644 --- a/plugins/volume_chpasswd/intl/en/cryptobox-server-feature-volume_chpasswd.po +++ b/plugins/volume_chpasswd/intl/en/cryptobox-server-feature-volume_chpasswd.po @@ -4,60 +4,66 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Change volume password" -msgstr "" +msgstr "Change volume password" #: Link msgid "Password" -msgstr "" +msgstr "Password" #: Title.ChangePassword msgid "Change the password of this volume" -msgstr "" +msgstr "Change the password of this volume" #: Button.ChangePassword msgid "Change password" -msgstr "" +msgstr "Change password" #: Button.FormatContainer msgid "Format volume" -msgstr "" +msgstr "Format volume" #: AdviceMessage.FormatForEncryptionSupport.Text -msgid "This volume is not encrypted. If you want to turn on encryption, then you have to format the volume. Beware: this will destroy all data of this container." +msgid "" +"This volume is not encrypted. If you want to turn on encryption, then you " +"have to format the volume. Beware: this will destroy all data of this " +"container." msgstr "" +"This volume is not encrypted. If you want to turn on encryption, then you " +"have to format the volume. Beware: this will destroy all data of this " +"container." #: AdviceMessage.FormatForEncryptionSupport.Link.Text msgid "Format this volume" -msgstr "" +msgstr "Format this volume" #: AdviceMessage.SuccessMessage.PasswordChange.Title msgid "Password changed" -msgstr "" +msgstr "Password changed" #: AdviceMessage.SuccessMessage.PasswordChange.Text msgid "The password of this volume was changed successfully." -msgstr "" +msgstr "The password of this volume was changed successfully." #: AdviceMessage.WarningMessage.PasswordChange.Title msgid "Could not change password" -msgstr "" +msgstr "Could not change password" #: AdviceMessage.WarningMessage.PasswordChange.Text msgid "The password of this volume could not be changed - sorry!" -msgstr "" +msgstr "The password of this volume could not be changed - sorry!" #: AdviceMessage.FormatForEncryptionSupport.Link.Rel msgid "volume_format_fs" -msgstr "" +msgstr "volume_format_fs" diff --git a/plugins/volume_chpasswd/unittests.py b/plugins/volume_chpasswd/unittests.py index d566e0d..55871d9 100644 --- a/plugins/volume_chpasswd/unittests.py +++ b/plugins/volume_chpasswd/unittests.py @@ -1,9 +1,29 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): - url = self.URL + "volume_chpasswd?weblang=en&device=%2Fdev%2Floop1" + url = self.URL + "volume_chpasswd?weblang=en&device=%2Fdev%2F" + self.device + "1" self.register_auth(url) self.cmd.go(url) self.cmd.find('hange') diff --git a/plugins/volume_chpasswd/volume_chpasswd.py b/plugins/volume_chpasswd/volume_chpasswd.py index 7fba294..f307368 100644 --- a/plugins/volume_chpasswd/volume_chpasswd.py +++ b/plugins/volume_chpasswd/volume_chpasswd.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base from cryptobox.core.exceptions import * diff --git a/plugins/volume_details/intl/en/cryptobox-server-feature-volume_details.po b/plugins/volume_details/intl/en/cryptobox-server-feature-volume_details.po index 6affb8f..53326fb 100644 --- a/plugins/volume_details/intl/en/cryptobox-server-feature-volume_details.po +++ b/plugins/volume_details/intl/en/cryptobox-server-feature-volume_details.po @@ -4,64 +4,64 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Technical details of a volume" -msgstr "" +msgstr "Technical details of a volume" #: Link msgid "Details" -msgstr "" +msgstr "Details" #: Title.Details msgid "Technical details" -msgstr "" +msgstr "Technical details" #: Text.DeviceName msgid "Name of device" -msgstr "" +msgstr "Name of device" #: Text.Status msgid "Status" -msgstr "" +msgstr "Status" #: Text.StatusActive msgid "active" -msgstr "" +msgstr "active" #: Text.StatusPassive msgid "passive" -msgstr "" +msgstr "passive" #: Text.EncryptionStatus msgid "Encryption" -msgstr "" +msgstr "Encryption" #: Text.Yes msgid "Yes" -msgstr "" +msgstr "Yes" #: Text.No msgid "No" -msgstr "" +msgstr "No" #: Text.Size.All msgid "Space of volume" -msgstr "" +msgstr "Space of volume" #: Text.Size.Avail msgid "Available space of volume" -msgstr "" +msgstr "Available space of volume" #: Text.Size.Used msgid "Used space of volume" -msgstr "" +msgstr "Used space of volume" diff --git a/plugins/volume_details/unittests.py b/plugins/volume_details/unittests.py index ba49db9..8835883 100644 --- a/plugins/volume_details/unittests.py +++ b/plugins/volume_details/unittests.py @@ -1,9 +1,29 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): - url = self.URL + "volume_details?weblang=en&device=%2Fdev%2Floop1" + url = self.URL + "volume_details?weblang=en&device=%2Fdev%2F" + self.device + "1" self.register_auth(url) self.cmd.go(url) self.cmd.find('Technical details') diff --git a/plugins/volume_details/volume_details.py b/plugins/volume_details/volume_details.py index 0b4a26a..2694a6e 100644 --- a/plugins/volume_details/volume_details.py +++ b/plugins/volume_details/volume_details.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base diff --git a/plugins/volume_format_fs/intl/en/cryptobox-server-feature-volume_format_fs.po b/plugins/volume_format_fs/intl/en/cryptobox-server-feature-volume_format_fs.po index df38971..8fac256 100644 --- a/plugins/volume_format_fs/intl/en/cryptobox-server-feature-volume_format_fs.po +++ b/plugins/volume_format_fs/intl/en/cryptobox-server-feature-volume_format_fs.po @@ -4,104 +4,106 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Create filesystems" -msgstr "" +msgstr "Create filesystems" #: Link msgid "Format" -msgstr "" +msgstr "Format" #: Title.Format msgid "Initializing filesystem" -msgstr "" +msgstr "Initializing filesystem" #: Button.Format msgid "Initialize filesystem" -msgstr "" +msgstr "Initialize filesystem" #: Text.Confirm msgid "Yes, I know what I am doing!" -msgstr "" +msgstr "Yes, I know what I am doing!" #: Text.FSType msgid "Filesystem type" -msgstr "" +msgstr "Filesystem type" #: Text.IsEncrypted msgid "Encryption" -msgstr "" +msgstr "Encryption" #: Text.Yes msgid "Yes" -msgstr "" +msgstr "Yes" #: Text.No msgid "No" -msgstr "" +msgstr "No" #: AdviceMessage.FormatWarning.Text msgid "All data of the selected filesystem will get lost!" -msgstr "" +msgstr "All data of the selected filesystem will get lost!" #: AdviceMessage.UnmountBeforeInit.Text msgid "You must deactivate this volume before you may initialize it." -msgstr "" +msgstr "You must deactivate this volume before you may initialize it." #: AdviceMessage.UnmountBeforeInit.Link.Text msgid "Deactive volume now" -msgstr "" +msgstr "Deactive volume now" #: AdviceMessage.UnmountBeforeInit.Link.Attr1.name msgid "action" -msgstr "" +msgstr "action" #: AdviceMessage.UnmountBeforeInit.Link.Attr1.value msgid "umount" -msgstr "" +msgstr "umount" #: AdviceMessage.UnmountBeforeInit.Link.Attr2.name msgid "redirect" -msgstr "" +msgstr "redirect" #: AdviceMessage.UnmountBeforeInit.Link.Attr2.value msgid "volume_format_fs" -msgstr "" +msgstr "volume_format_fs" #: SuccessMessage.FormatSuccess.Title msgid "Formatting successful" -msgstr "" +msgstr "Formatting successful" #: SuccessMessage.FormatSuccess.Text msgid "The selected filesystem was successfully formatted." -msgstr "" +msgstr "The selected filesystem was successfully formatted." #: WarningMessage.FormatNotConfirmed.Title msgid "Confirmation missing" -msgstr "" +msgstr "Confirmation missing" #: WarningMessage.FormatNotConfirmed.Text msgid "You did not confirm this action by activating the checkbox." -msgstr "" +msgstr "You did not confirm this action by activating the checkbox." #: WarningMessage.FormatFailed.Title msgid "Formatting failed" -msgstr "" +msgstr "Formatting failed" #: WarningMessage.FormatFailed.Text -msgid "Formatting of the selected filesystem failed for unknown reasons - sorry!" +msgid "" +"Formatting of the selected filesystem failed for unknown reasons - sorry!" msgstr "" +"Formatting of the selected filesystem failed for unknown reasons - sorry!" #: AdviceMessage.UnmountBeforeInit.Link.Rel msgid "volume_mount" -msgstr "" +msgstr "volume_mount" diff --git a/plugins/volume_format_fs/unittests.py b/plugins/volume_format_fs/unittests.py index 88f5516..12d3938 100644 --- a/plugins/volume_format_fs/unittests.py +++ b/plugins/volume_format_fs/unittests.py @@ -1,9 +1,29 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): - url = self.URL + "volume_format_fs?weblang=en&device=%2Fdev%2Floop1" + url = self.URL + "volume_format_fs?weblang=en&device=%2Fdev%2F" + self.device + "1" self.register_auth(url) self.cmd.go(url) self.cmd.find('Initializing filesystem') diff --git a/plugins/volume_format_fs/volume_format_fs.py b/plugins/volume_format_fs/volume_format_fs.py index e1da9a3..f7e1364 100644 --- a/plugins/volume_format_fs/volume_format_fs.py +++ b/plugins/volume_format_fs/volume_format_fs.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base from cryptobox.core.exceptions import * import cryptobox.core.container as cbxContainer diff --git a/plugins/volume_mount/intl/en/cryptobox-server-feature-volume_mount.po b/plugins/volume_mount/intl/en/cryptobox-server-feature-volume_mount.po index d84e4cb..f901576 100644 --- a/plugins/volume_mount/intl/en/cryptobox-server-feature-volume_mount.po +++ b/plugins/volume_mount/intl/en/cryptobox-server-feature-volume_mount.po @@ -5,95 +5,101 @@ msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" "POT-Creation-Date: 2006-11-28 05:03+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Mount and umount volumes" -msgstr "" +msgstr "Mount and umount volumes" #: Link msgid "Activation" -msgstr "" +msgstr "Activation" #: Title.Mount msgid "Activate volume" -msgstr "" +msgstr "Activate volume" #: Title.Umount msgid "Deactivate volume" -msgstr "" +msgstr "Deactivate volume" #: SuccessMessage.MountDone.Title msgid "Encrypted filesystem activated" -msgstr "" +msgstr "Encrypted filesystem activated" #: SuccessMessage.MountDone.Text msgid "The encrypted filesystem is now available." -msgstr "" +msgstr "The encrypted filesystem is now available." #: SuccessMessage.UmountDone.Title msgid "Encrypted filesystem deactivated" -msgstr "" +msgstr "Encrypted filesystem deactivated" #: SuccessMessage.UmountDone.Text msgid "The encrypted filesystem is now secured from all forms of access." -msgstr "" +msgstr "The encrypted filesystem is now secured from all forms of access." #: WarningMessage.MountFailed.Title msgid "Activation failed" -msgstr "" +msgstr "Activation failed" #: WarningMessage.MountFailed.Text msgid "The volume could not be activated for some reason. Sorry!" -msgstr "" +msgstr "The volume could not be activated for some reason. Sorry!" #: WarningMessage.MountCryptoFailed.Text msgid "Maybe you entered the wrong password?" -msgstr "" +msgstr "Maybe you entered the wrong password?" #: WarningMessage.InvalidContainerType.Title msgid "Unknown format" -msgstr "" +msgstr "Unknown format" #: WarningMessage.InvalidContainerType.Text -msgid "The type of this volume ist not known. Maybe you want to initialize itfirst?" +msgid "" +"The type of this volume ist not known. Maybe you want to initialize itfirst?" msgstr "" +"The type of this volume ist not known. Maybe you want to initialize itfirst?" #: WarningMessage.InvalidContainerType.Link.Text msgid "Format volume" -msgstr "" +msgstr "Format volume" #: WarningMessage.UmountFailed.Title msgid "Deactivation failed" -msgstr "" +msgstr "Deactivation failed" #: WarningMessage.UmountFailed.Text -msgid "The volume could not be deactivated. Probably some files are still in use. In case of emergency just shut down the CryptoBox!" +msgid "" +"The volume could not be deactivated. Probably some files are still in use. " +"In case of emergency just shut down the CryptoBox!" msgstr "" +"The volume could not be deactivated. Probably some files are still in use. " +"In case of emergency just shut down the CryptoBox!" #: WarningMessage.IsAlreadyMounted.Title msgid "Already active" -msgstr "" +msgstr "Already active" #: WarningMessage.IsAlreadyMounted.Text msgid "The volume is already active." -msgstr "" +msgstr "The volume is already active." #: WarningMessage.IsNotMounted.Title msgid "Inactive" -msgstr "" +msgstr "Inactive" #: WarningMessage.IsNotMounted.Text msgid "The volume is currently not active." -msgstr "" +msgstr "The volume is currently not active." #: WarningMessage.InvalidContainerType.Link.Rel msgid "volume_format_fs" -msgstr "" +msgstr "volume_format_fs" diff --git a/plugins/volume_mount/unittests.py b/plugins/volume_mount/unittests.py index 4840fa7..609258f 100644 --- a/plugins/volume_mount/unittests.py +++ b/plugins/volume_mount/unittests.py @@ -1,9 +1,29 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): - url = self.URL + "volume_mount?weblang=en&device=%2Fdev%2Floop1" + url = self.URL + "volume_mount?weblang=en&device=%2Fdev%2F" + self.device + "1" self.register_auth(url) self.cmd.go(url) self.cmd.find('ctivate volume') diff --git a/plugins/volume_mount/volume_mount.py b/plugins/volume_mount/volume_mount.py index 52a9480..1136348 100644 --- a/plugins/volume_mount/volume_mount.py +++ b/plugins/volume_mount/volume_mount.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base from cryptobox.core.exceptions import * import cryptobox.core.container as cbxContainer diff --git a/plugins/volume_props/intl/en/cryptobox-server-feature-volume_props.po b/plugins/volume_props/intl/en/cryptobox-server-feature-volume_props.po index b9b0ce1..8f59c5c 100644 --- a/plugins/volume_props/intl/en/cryptobox-server-feature-volume_props.po +++ b/plugins/volume_props/intl/en/cryptobox-server-feature-volume_props.po @@ -4,24 +4,24 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Volume properties" -msgstr "" +msgstr "Volume properties" #: Link msgid "Properties" -msgstr "" +msgstr "Properties" #: AdviceMessage.NoPropertyPlugins.Text msgid "No volume property plugins are available." -msgstr "" +msgstr "No volume property plugins are available." diff --git a/plugins/volume_props/unittests.py b/plugins/volume_props/unittests.py index fe235c6..1f8d802 100644 --- a/plugins/volume_props/unittests.py +++ b/plugins/volume_props/unittests.py @@ -1,9 +1,29 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): - url = self.URL + "volume_props?weblang=en&device=%2Fdev%2Floop1" + url = self.URL + "volume_props?weblang=en&device=%2Fdev%2F" + self.device + "1" self.register_auth(url) self.cmd.go(url) self.cmd.find('Properties') diff --git a/plugins/volume_props/volume_props.py b/plugins/volume_props/volume_props.py index 9c82140..9e9a7af 100644 --- a/plugins/volume_props/volume_props.py +++ b/plugins/volume_props/volume_props.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base import cryptobox.plugins.manage from cryptobox.core.exceptions import * diff --git a/plugins/volume_rename/intl/en/cryptobox-server-feature-volume_rename.po b/plugins/volume_rename/intl/en/cryptobox-server-feature-volume_rename.po index 3b5c4e0..6016346 100644 --- a/plugins/volume_rename/intl/en/cryptobox-server-feature-volume_rename.po +++ b/plugins/volume_rename/intl/en/cryptobox-server-feature-volume_rename.po @@ -4,92 +4,96 @@ msgid "" msgstr "" "Project-Id-Version: CryptoBox-Server 0.3\n" "Report-Msgid-Bugs-To: translate@cryptobox.org\n" -"POT-Creation-Date: 2006-11-28 05:04+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2006-11-28 05:03+0100\n" +"PO-Revision-Date: 2006-11-29 19:31+0100\n" +"Last-Translator: Lars Kruse \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Translate Toolkit 0.10.1\n" +"X-Generator: Pootle 0.10.1\n" #: Name msgid "Rename volume" -msgstr "" +msgstr "Rename volume" #: Link msgid "Rename" -msgstr "" +msgstr "Rename" #: Title.ChangeVolumeName msgid "Change the name of this volume" -msgstr "" +msgstr "Change the name of this volume" #: Button.ContainerNameSet msgid "Change name" -msgstr "" +msgstr "Change name" #: AdviceMessage.NoRenameIfActive.Text msgid "You can not rename a volume while it is active." -msgstr "" +msgstr "You can not rename a volume while it is active." #: AdviceMessage.NoRenameIfActive.Link.Text msgid "Deactivate volume now" -msgstr "" +msgstr "Deactivate volume now" #: AdviceMessage.NoRenameIfActive.Link.Attr1.name msgid "action" -msgstr "" +msgstr "action" #: AdviceMessage.NoRenameIfActive.Link.Attr1.value msgid "umount" -msgstr "" +msgstr "umount" #: AdviceMessage.NoRenameIfActive.Link.Attr2.name msgid "redirect" -msgstr "" +msgstr "redirect" #: AdviceMessage.NoRenameIfActive.Link.Attr2.value msgid "volume_rename" -msgstr "" +msgstr "volume_rename" #: SuccessMessage.VolumeNameChanged.Title msgid "Name changed" -msgstr "" +msgstr "Name changed" #: SuccessMessage.VolumeNameChanged.Text msgid "The name of this volume was changed successfully." -msgstr "" +msgstr "The name of this volume was changed successfully." #: WarningMessage.NoRenameIfActive.Title msgid "Failed to rename the volume" -msgstr "" +msgstr "Failed to rename the volume" #: WarningMessage.NoRenameIfActive.Text msgid "You may not rename a volume while it is active." -msgstr "" +msgstr "You may not rename a volume while it is active." #: WarningMessage.InvalidVolumeName.Title msgid "Changing of container's name failed" -msgstr "" +msgstr "Changing of container's name failed" #: WarningMessage.InvalidVolumeName.Text msgid "The supplied new name of the container was invalid. Please try again!" -msgstr "" +msgstr "The supplied new name of the container was invalid. Please try again!" #: WarningMessage.SetVolumeNameFailed.Text -msgid "Could not change the name of the container. Take a look at the log files for details." +msgid "" +"Could not change the name of the container. Take a look at the log files for " +"details." msgstr "" +"Could not change the name of the container. Take a look at the log files for " +"details." #: WarningMessage.VolumeNameIsInUse.Title msgid "Could not change volume name" -msgstr "" +msgstr "Could not change volume name" #: WarningMessage.VolumeNameIsInUse.Text msgid "The new name is already in use by another volume." -msgstr "" +msgstr "The new name is already in use by another volume." #: AdviceMessage.NoRenameIfActive.Link.Rel msgid "volume_mount" -msgstr "" +msgstr "volume_mount" diff --git a/plugins/volume_rename/unittests.py b/plugins/volume_rename/unittests.py index 3325dd5..97b5a72 100644 --- a/plugins/volume_rename/unittests.py +++ b/plugins/volume_rename/unittests.py @@ -1,9 +1,29 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.web.testclass class unittests(cryptobox.web.testclass.WebInterfaceTestClass): def test_read_form(self): - url = self.URL + "volume_rename?weblang=en&device=%2Fdev%2Floop1" + url = self.URL + "volume_rename?weblang=en&device=%2Fdev%2F" + self.device + "1" self.register_auth(url) self.cmd.go(url) self.cmd.find('name') diff --git a/plugins/volume_rename/volume_rename.py b/plugins/volume_rename/volume_rename.py index 0cdef71..60fc65f 100644 --- a/plugins/volume_rename/volume_rename.py +++ b/plugins/volume_rename/volume_rename.py @@ -1,3 +1,23 @@ +# +# Copyright 2006 sense.lab e.V. +# +# This file is part of the CryptoBox. +# +# The CryptoBox is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# The CryptoBox is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the CryptoBox; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + import cryptobox.plugins.base from cryptobox.core.exceptions import *