You can subscribe to this list here.
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(84) |
Oct
(70) |
Nov
(164) |
Dec
(71) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2012 |
Jan
(52) |
Feb
(77) |
Mar
(70) |
Apr
(58) |
May
(81) |
Jun
(74) |
Jul
(87) |
Aug
(30) |
Sep
(45) |
Oct
(37) |
Nov
(51) |
Dec
(31) |
2013 |
Jan
(47) |
Feb
(29) |
Mar
(40) |
Apr
(33) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <gem...@li...> - 2011-11-21 15:51:58
|
Revision: 255 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=255&view=rev Author: mennodekker Date: 2011-11-21 15:51:49 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Modified Paths: -------------- trunk/library/classes/Gems/TabForm.php trunk/library/classes/Gems/Tracker/Token/TokenSelect.php Modified: trunk/library/classes/Gems/TabForm.php =================================================================== --- trunk/library/classes/Gems/TabForm.php 2011-11-21 13:02:57 UTC (rev 254) +++ trunk/library/classes/Gems/TabForm.php 2011-11-21 15:51:49 UTC (rev 255) @@ -57,7 +57,7 @@ */ public function addElement($element, $name = null, $options = null) { - if ($this->currentTab) { + if ($this->currentTab && !($element instanceof Zend_Form_Element_Hidden)) { return $this->currentTab->addElement($element, $name, $options); } else { return parent::addElement($element, $name, $options); Modified: trunk/library/classes/Gems/Tracker/Token/TokenSelect.php =================================================================== --- trunk/library/classes/Gems/Tracker/Token/TokenSelect.php 2011-11-21 13:02:57 UTC (rev 254) +++ trunk/library/classes/Gems/Tracker/Token/TokenSelect.php 2011-11-21 15:51:49 UTC (rev 255) @@ -100,7 +100,9 @@ */ public function andReceptionCodes($fields = '*') { - $this->sql_select->join('gems__reception_codes', 'gto_reception_code = grc_id_reception_code'); + $this->sql_select->join('gems__reception_codes', + 'gto_reception_code = grc_id_reception_code', + $fields); return $this; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 13:03:08
|
Revision: 254 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=254&view=rev Author: michieltcs Date: 2011-11-21 13:02:57 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Update translations Modified Paths: -------------- trunk/library/languages/default-nl.mo trunk/library/languages/default-nl.po Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2011-11-21 12:06:59 UTC (rev 253) +++ trunk/library/languages/default-nl.po 2011-11-21 13:02:57 UTC (rev 254) @@ -1,4385 +1,4414 @@ -msgid "" -msgstr "" -"Project-Id-Version: Pulse NL\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-16 19:10+0100\n" -"PO-Revision-Date: \n" -"Last-Translator: Matijs de Jong <mj...@ma...>\n" -"Language-Team: Erasmus MGZ <mat...@ma...>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-Language: Dutch\n" -"X-Poedit-Country: NETHERLANDS\n" -"X-Poedit-SourceCharset: iso-8859-1\n" -"X-Poedit-Basepath: ../\n" -"X-Poedit-KeywordsList: plural:1,2\n" -"X-Poedit-SearchPath-0: .\n" - -#: classes/GemsEscort.php:201 -#, php-format -msgid "Path %s not writable" -msgstr "Path %s niet schrijfbaar" - -#: classes/GemsEscort.php:876 -#, php-format -msgid "User: %s" -msgstr "Login: %s" - -#: classes/GemsEscort.php:900 -msgid "version" -msgstr "versie" - -#: classes/GemsEscort.php:1330 -msgid "Take note: your session has expired, your inputs where not saved. Please check the input data and try again" -msgstr "Let op: uw sessie is verlopen, uw invoer is niet opgeslagen. Controleer de gegevens en probeer a.u.b. opnieuw." - -#: classes/GemsEscort.php:1454 -msgid "Please check back later." -msgstr "Probeer het later opnieuw." - -#: classes/GemsEscort.php:1456 -#: classes/GemsEscort.php:1460 -#: classes/GemsEscort.php:1461 -msgid "System is in maintenance mode" -msgstr "Systeem is in onderhoudsmodus" - -#: classes/GemsEscort.php:1470 -msgid "No access to site." -msgstr "Geen toegang tot website." - -#: classes/GemsEscort.php:1472 -#: classes/GemsEscort.php:1508 -msgid "You have no access to this site." -msgstr "U heeft geen toegang tot deze website." - -#: classes/GemsEscort.php:1488 -msgid "No access to page" -msgstr "Geen toegang tot pagina" - -#: classes/GemsEscort.php:1490 -#, php-format -msgid "Access to this page is not allowed for current role: %s." -msgstr "U heeft geen toegang tot deze pagina. Uw huidige rol is: %s." - -#: classes/GemsEscort.php:1495 -#: classes/GemsEscort.php:1506 -msgid "You are no longer logged in." -msgstr "U bent niet meer ingelogd." - -#: classes/GemsEscort.php:1496 -msgid "You must login to access this page." -msgstr "U moet ingelogd zijn voor toegang tot deze pagina." - -#: classes/Gems/AccessLog.php:239 -msgid "Database needs to be updated!" -msgstr "Database dient ververst te worden!" - -#: classes/Gems/Auth.php:228 -msgid "Combination of organization, username and password not found." -msgstr "Combinatie van organisatie, gebruikersnaam en wachtwoord niet gevonden." - -#: classes/Gems/Html.php:154 -msgid "<< First" -msgstr "<< Eerste" - -#: classes/Gems/Html.php:155 -msgid "< Previous" -msgstr "< Terug" - -#: classes/Gems/Html.php:156 -msgid "Next >" -msgstr "Verder >" - -#: classes/Gems/Html.php:157 -msgid "Last >>" -msgstr "Laatste >>" - -#: classes/Gems/Html.php:158 -msgid " | " -msgstr " | " - -#: classes/Gems/Html.php:162 -msgid "to" -msgstr "tot" - -#: classes/Gems/Html.php:163 -msgid "of" -msgstr "van" - -#: classes/Gems/Menu.php:139 -#, php-format -msgid "About %s" -msgstr "Over %s" - -#: classes/Gems/Menu.php:143 -msgid "Reporting bugs" -msgstr "Meld een bug" - -#: classes/Gems/Menu.php:146 -msgid "Support" -msgstr "Ondersteuning" - -#: classes/Gems/Menu.php:166 -msgid "Project setup" -msgstr "Projectinfo" - -#: classes/Gems/Menu.php:169 -msgid "Database" -msgstr "Database" - -#: classes/Gems/Menu.php:173 -msgid "Content" -msgstr "Inhoud" - -#: classes/Gems/Menu.php:176 -msgid "Execute" -msgstr "Uitvoeren" - -#: classes/Gems/Menu.php:181 -msgid "Patches" -msgstr "Patches" - -#: classes/Gems/Menu.php:182 -msgid "Execute new" -msgstr "Nieuwe aanmaken" - -#: classes/Gems/Menu.php:184 -msgid "Refresh translateables" -msgstr "Ververs vertaalbaren" - -#: classes/Gems/Menu.php:186 -msgid "Run SQL" -msgstr "SQL uitvoeren" - -#: classes/Gems/Menu.php:189 -msgid "Reception codes" -msgstr "Ontvangst codes" - -#: classes/Gems/Menu.php:192 -msgid "Consents" -msgstr "Toestemmingen" - -#: classes/Gems/Menu.php:195 -msgid "Roles" -msgstr "Rollen" - -#: classes/Gems/Menu.php:196 -#: classes/Gems/Menu.php:345 -msgid "Assigned" -msgstr "Toegewezen" - -#: classes/Gems/Menu.php:197 -msgid "Privileges" -msgstr "Priviléges" - -#: classes/Gems/Menu.php:200 -msgid "Groups" -msgstr "Groepen" - -#: classes/Gems/Menu.php:203 -msgid "Organizations" -msgstr "Organisaties" - -#: classes/Gems/Menu.php:206 -msgid "Staff" -msgstr "Medewerkers" - -#: classes/Gems/Menu.php:209 -msgid "Logging" -msgstr "Logboek" - -#: classes/Gems/Menu.php:213 -msgid "Maintenance" -msgstr "Onderhoud" - -#: classes/Gems/Menu.php:218 -msgid "Upgrade" -msgstr "Upgrade" - -#: classes/Gems/Menu.php:219 -#: classes/Gems/Menu.php:318 -msgid "Show" -msgstr "Toon" - -#: classes/Gems/Menu.php:220 -msgid "Execute all" -msgstr "Alles uitvoeren" - -#: classes/Gems/Menu.php:221 -msgid "Execute this" -msgstr "Dit uitvoeren" - -#: classes/Gems/Menu.php:222 -msgid "Execute from here" -msgstr "Uitvoeren vanaf hier" - -#: classes/Gems/Menu.php:223 -msgid "Execute to here" -msgstr "Uitvoeren tot hier" - -#: classes/Gems/Menu.php:235 -#, php-format -msgid "Stand-alone privilige: %s" -msgstr "Zelfstandig privilege: %s" - -#: classes/Gems/Menu.php:242 -msgid "Logon" -msgstr "Login" - -#: classes/Gems/Menu.php:243 -msgid "Lost password" -msgstr "Wachtwoord zoek" - -#: classes/Gems/Menu.php:244 -msgid "Your account" -msgstr "Uw account" - -#: classes/Gems/Menu.php:245 -msgid "Activity overview" -msgstr "Activiteiten overzicht" - -#: classes/Gems/Menu.php:246 -msgid "Change password" -msgstr "Uw wachtwoord" - -#: classes/Gems/Menu.php:247 -#: classes/Gems/Menu.php:287 -#: classes/Gems/Menu.php:322 -msgid "Token" -msgstr "Kenmerk" - -#: classes/Gems/Menu.php:248 -msgid "Logoff" -msgstr "Uitloggen" - -#: classes/Gems/Menu.php:283 -msgid "Track" -msgstr "Traject" - -#: classes/Gems/Menu.php:290 -#: classes/Gems/Menu.php:310 -#: classes/Gems/Menu.php:341 -msgid "Add" -msgstr "Voeg toe" - -#: classes/Gems/Menu.php:294 -#: classes/Gems/Menu.php:377 -msgid "Preview" -msgstr "Preview" - -#: classes/Gems/Menu.php:301 -msgid "Tracks" -msgstr "Trajecten" - -#: classes/Gems/Menu.php:314 -msgid "Assignments" -msgstr "Toewijzingen" - -#: classes/Gems/Menu.php:326 -msgid "Edit" -msgstr "Wijzig" - -#: classes/Gems/Menu.php:330 -msgid "Delete" -msgstr "Verwijder" - -#: classes/Gems/Menu.php:335 -msgid "Surveys" -msgstr "Vragenlijsten" - -#: classes/Gems/Menu.php:367 -msgid "Fill in" -msgstr "Vul in" - -#: classes/Gems/Menu.php:371 -msgid "Print PDF" -msgstr "Print PDF" - -#: classes/Gems/Menu.php:374 -msgid "E-Mail now!" -msgstr "Email nu!" - -#: classes/Gems/Menu.php:380 -msgid "Answers" -msgstr "Antwoorden" - -#: classes/Gems/Menu.php:518 -msgid "Respondents" -msgstr "Patiënten" - -#: classes/Gems/Menu.php:521 -msgid "Overview" -msgstr "Overzicht" - -#: classes/Gems/Menu.php:528 -msgid "Project" -msgstr "Project" - -#: classes/Gems/Menu.php:531 -msgid "Setup" -msgstr "Beheer" - -#: classes/Gems/Menu.php:534 -msgid "Mail" -msgstr "Email" - -#: classes/Gems/Menu.php:537 -msgid "Track Builder" -msgstr "Traject bouwer" - -#: classes/Gems/Menu.php:546 -msgid "Contact" -msgstr "Contact" - -#: classes/Gems/Menu.php:559 -msgid "Changelog" -msgstr "Changelog" - -#: classes/Gems/Model.php:190 -msgid "Respondent nr" -msgstr "Patiënt nr" - -#: classes/Gems/Model.php:191 -msgid "Opened" -msgstr "Bekeken" - -#: classes/Gems/Model.php:192 -msgid "Consent" -msgstr "Toestemming" - -#: classes/Gems/Model.php:194 -msgid "E-Mail" -msgstr "Email" - -#: classes/Gems/Model.php:199 -msgid "Gender" -msgstr "Geslacht" - -#: classes/Gems/Model.php:200 -msgid "First name" -msgstr "Voornaam" - -#: classes/Gems/Model.php:201 -msgid "Surname prefix" -msgstr "Tussenvoegsel" - -#: classes/Gems/Model.php:202 -msgid "Last name" -msgstr "Achternaam" - -#: classes/Gems/Model.php:204 -msgid "Name" -msgstr "Naam" - -#: classes/Gems/Model.php:207 -msgid "Street" -msgstr "Straat" - -#: classes/Gems/Model.php:208 -msgid "Zipcode" -msgstr "Postcode" - -#: classes/Gems/Model.php:209 -msgid "City" -msgstr "Stad" - -#: classes/Gems/Model.php:211 -msgid "Phone" -msgstr "Telefoon" - -#: classes/Gems/Model.php:213 -msgid "Birthday" -msgstr "Geboren op" - -#: classes/Gems/Tracker.php:732 -msgid "Checks performed" -msgstr "Controle uitgevoerd" - -#: classes/Gems/UpgradesAbstract.php:164 -msgid "Already at max. level." -msgstr "Al op het hoogste niveau." - -#: classes/Gems/UpgradesAbstract.php:171 -#, php-format -msgid "Trying upgrade for %s from level %s to level %s" -msgstr "Probeert upgrade voor %s van niveau %s naar niveau %s uit te voeren" - -#: classes/Gems/UpgradesAbstract.php:179 -#, php-format -msgid "Trying upgrade for %s to level %s: %s" -msgstr "Probeert upgrade voor %s naar niveau %s: %s" - -#: classes/Gems/Controller/BrowseEditAction.php:344 -#, php-format -msgid "New %s..." -msgstr "Nieuw %s..." - -#: classes/Gems/Controller/BrowseEditAction.php:376 -#, php-format -msgid "Delete %s" -msgstr "Verwijder %s" - -#: classes/Gems/Controller/BrowseEditAction.php:380 -#, php-format -msgid "%2$u %1$s deleted" -msgstr "%2$u %1$s verwijderd" - -#: classes/Gems/Controller/BrowseEditAction.php:394 -#, php-format -msgid "Edit %s" -msgstr "Bewerk %s" - -#: classes/Gems/Controller/BrowseEditAction.php:491 -msgid "Free search text" -msgstr "Vrije zoek tekst" - -#: classes/Gems/Controller/BrowseEditAction.php:562 -msgid "Search" -msgstr "Zoeken" - -#: classes/Gems/Controller/BrowseEditAction.php:578 -#, php-format -msgid "No %s found" -msgstr "Geen %s gevonden" - -#: classes/Gems/Controller/BrowseEditAction.php:651 -#, php-format -msgid "No %s found." -msgstr "Geen %s gevonden." - -#: classes/Gems/Controller/BrowseEditAction.php:766 -msgid "Are you sure?" -msgstr "Weet u het zeker?" - -#: classes/Gems/Controller/BrowseEditAction.php:782 -msgid "Yes" -msgstr "Ja" - -#: classes/Gems/Controller/BrowseEditAction.php:783 -msgid "No" -msgstr "Nee" - -#: classes/Gems/Controller/BrowseEditAction.php:836 -#, php-format -msgid "Unknown %s requested" -msgstr "Onjuist %s verzoek" - -#: classes/Gems/Controller/BrowseEditAction.php:859 -#, php-format -msgid "New %1$s..." -msgstr "Nieuwe %1$s..." - -#: classes/Gems/Controller/BrowseEditAction.php:867 -msgid "Save" -msgstr "Opslaan" - -#: classes/Gems/Controller/BrowseEditAction.php:903 -#, php-format -msgid "%2$u %1$s saved" -msgstr "%2$u %1$s opgeslagen" - -#: classes/Gems/Controller/BrowseEditAction.php:906 -msgid "No changes to save." -msgstr "Geen verandering om op te slaan." - -#: classes/Gems/Controller/BrowseEditAction.php:915 -msgid "Input error! No changes saved!" -msgstr "Invoer fout! Veranderingen niet opgeslagen!" - -#: classes/Gems/Controller/BrowseEditAction.php:943 -#, php-format -msgid "Show %s" -msgstr "Toon %s" - -#: classes/Gems/Controller/BrowseEditAction.php:950 -#, php-format -msgid "Unknown %s." -msgstr "%s is onbekend." - -#: classes/Gems/Controller/ModelActionAbstract.php:97 -#: classes/Gems/Default/AskAction.php:150 -#: classes/Gems/Default/DatabaseAction.php:524 -msgid "Cancel" -msgstr "Annuleren" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:181 -msgid "No data found." -msgstr "Geen gegevens gevonden." - -#: classes/Gems/Default/AskAction.php:128 -#, php-format -msgid "Welcome %s," -msgstr "Welkom %s," - -#: classes/Gems/Default/AskAction.php:131 -#, php-format -msgid "Thank you for answering the survey for token %s." -msgstr "Dank u voor het invullen van de vragenlijst voor kenmerk %s." - -#: classes/Gems/Default/AskAction.php:132 -msgid "Please click the button below to answer the next survey." -msgstr "Klik op de onderstaande knop om de volgende vragenlijst in te vullen." - -#: classes/Gems/Default/AskAction.php:137 -#, php-format -msgid "Please click the button below to answer the survey for token %s." -msgstr "Klik op de onderstaande knop om de vragenlijst behorende bij kenmerk %s in te vullen." - -#: classes/Gems/Default/AskAction.php:141 -#, php-format -msgid "Wait one second to open the survey automatically or click on Cancel to stop." -msgid_plural "Wait %d seconds to open the survey automatically or click on Cancel to stop." -msgstr[0] "Over één seconde start de vragenlijst automatisch. Klik op annuleren om dit te onderbreken." -msgstr[1] "Over %d seconden start de vragenlijst automatisch. Klik op annuleren om dit te onderbreken." - -#: classes/Gems/Default/AskAction.php:156 -#, php-format -msgid "After this survey there is one other survey we would like you to answer." -msgid_plural "After this survey there are another %d surveys we would like you to answer." -msgstr[0] "Na deze vragenlijst hebben we nog één andere vragenlijst voor u." -msgstr[1] "Na deze vragenlijst hebben we nog %d andere vragenlijsten voor u." - -#: classes/Gems/Default/AskAction.php:166 -#, php-format -msgid "The survey for token %s is no longer active." -msgstr "De vragenlijst voor kenmerk %s is niet meer in gebruik." - -#: classes/Gems/Default/AskAction.php:170 -#, php-format -msgid "The token %s does not exist." -msgstr "Het kenmerk %s bestaat niet." - -#: classes/Gems/Default/AskAction.php:172 -#, php-format -msgid "Thank you for answering. At the moment we have no further surveys for you to take." -msgstr "Dank u voor uw antwoorden. Op dit moment hebben we geen vragenlijsten meer voor u." - -#: classes/Gems/Default/AskAction.php:174 -#, php-format -msgid "The survey for token %s has been answered and no further surveys are open." -msgstr "De vragenlijst met het kenmerk %s is beantwoord en er staan verder geen vragenlijsten open." - -#: classes/Gems/Default/AskAction.php:181 -#, php-format -msgid "The token %s does not exist (any more)." -msgstr "Het kenmerk %s bestaat niet (meer)." - -#: classes/Gems/Default/AskAction.php:198 -#, php-format -msgid "Enter your %s token" -msgstr "Voer uw %s kenmerk in" - -#: classes/Gems/Default/AskAction.php:203 -#, php-format -msgid "Enter tokens as %s." -msgstr "Kenmerk invoeren als %s." - -#: classes/Gems/Default/AskAction.php:213 -msgid "OK" -msgstr "OK" - -#: classes/Gems/Default/AskAction.php:229 -msgid "Tokens identify a survey that was assigned to you personally." -msgstr "Elk kenmerk verwijst naar een specifiek aan u toegekende vragenlijst." - -#: classes/Gems/Default/AskAction.php:229 -msgid "Entering the token and pressing OK will open that survey." -msgstr "Vul uw kenmerk in en druk op OK om die vragenlijst te openen." - -#: classes/Gems/Default/AskAction.php:233 -msgid "After answering the survey you will be logged off automatically." -msgstr "Na het invullen wordt u automatisch uitgelogd." - -#: classes/Gems/Default/AskAction.php:235 -msgid "After answering the survey you will return to the respondent overview screen." -msgstr "Na het invullen van de vragenlijst komt u terug in het patient scherm." - -#: classes/Gems/Default/AskAction.php:242 -msgid "A token consists of two groups of four letters and numbers, separated by an optional hyphen. Tokens are case insensitive." -msgstr "Een kenmerk bestaat uit twee groepen van vier cijfers en letters met een (niet verplicht) streepje ertussen. Hoofdletters of gewone letters maakt niets uit." - -#: classes/Gems/Default/AskAction.php:243 -msgid "The number zero and the letter O are treated as the same; the same goes for the number one and the letter L." -msgstr "Er wordt geen verschil gemaakt tussen het getal nul en de letter O en ook niet tussen het getal één en de letter L." - -#: classes/Gems/Default/ConsentAction.php:68 -#: classes/Gems/Default/GroupAction.php:87 -msgid "Description" -msgstr "Omschrijving" - -#: classes/Gems/Default/ConsentAction.php:70 -#: classes/Gems/Default/DatabaseAction.php:167 -msgid "Order" -msgstr "Volgorde" - -#: classes/Gems/Default/ConsentAction.php:71 -msgid "Determines order of presentation in interface." -msgstr "Bepaald de presentatie volgorde." - -#: classes/Gems/Default/ConsentAction.php:73 -msgid "Consent code" -msgstr "Consent code" - -#: classes/Gems/Default/ConsentAction.php:75 -msgid "Internal code, not visible to users, copied with the token information to the source." -msgstr "Interne code, niet zichtbaar voor gebruikers maar wordt met de token informatie aan de bron doorgegeven." - -#: classes/Gems/Default/ConsentAction.php:92 -msgid "respondent consent" -msgid_plural "respondent consents" -msgstr[0] "patiënt toestemming" -msgstr[1] "patiënt toestemmingen" - -#: classes/Gems/Default/ConsentAction.php:97 -msgid "Respondent consents" -msgstr "Patiënt toestemming" - -#: classes/Gems/Default/ContactAction.php:71 -#, php-format -msgid "%s is a web application." -msgstr "%s is een web applicatie." - -#: classes/Gems/Default/ContactAction.php:76 -#, php-format -msgid "The %s project is run by: " -msgstr "%s is een project van: " - -#: classes/Gems/Default/ContactAction.php:82 -#, php-format -msgid "%s is a collaboration of these organizations:" -msgstr "Deze organisaties werken samen voor het %s project:" - -#: classes/Gems/Default/ContactAction.php:103 -#, php-format -msgid "The %s project" -msgstr "Het %s project" - -#: classes/Gems/Default/ContactAction.php:106 -msgid "Information on this application" -msgstr "Information over deze website" - -#: classes/Gems/Default/ContactAction.php:107 -msgid "Links concerning this web application:" -msgstr "Links met informatie over deze website:" - -#: classes/Gems/Default/CronAction.php:148 -msgid "Cron jobs turned off." -msgstr "Cron opdrachten uitgezet." - -#: classes/Gems/Default/CronAction.php:218 -msgid "No mails sent." -msgstr "Geen mail verzonden." - -#: classes/Gems/Default/CronAction.php:221 -msgid "On this test system all mail will be delivered to the from address." -msgstr "Op dit test systeem worden alle emails gestuurd naar het \"van\" adres." - -#: classes/Gems/Default/DatabaseAction.php:64 -#, php-format -msgid "Executed %2$s creation script %1$s:" -msgstr "Uitvoerresultaat %2$s script %1$s:" - -#: classes/Gems/Default/DatabaseAction.php:74 -#, php-format -msgid "%d record(s) returned as result set %d in step %d of %d." -msgstr "%d rij(en) in resultaat %d in stap %d van %d." - -#: classes/Gems/Default/DatabaseAction.php:78 -#, php-format -msgid "%d record(s) updated in step %d of %d." -msgstr "In stap %2$d van %3$d zijn %1$d rij(en) aangepast." - -#: classes/Gems/Default/DatabaseAction.php:81 -#, php-format -msgid "Script ran step %d of %d succesfully." -msgstr "Stap %d van %d in het script met succes uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:84 -msgid " in step " -msgstr " in stap " - -#: classes/Gems/Default/DatabaseAction.php:89 -#, php-format -msgid "No script for %1$s." -msgstr "Geen script voor %1$s:" - -#: classes/Gems/Default/DatabaseAction.php:133 -#, php-format -msgid "No rows in %s." -msgstr "Geen gegevens in %s." - -#: classes/Gems/Default/DatabaseAction.php:162 -msgid "Type" -msgstr "Type" - -#: classes/Gems/Default/DatabaseAction.php:166 -msgid "Group" -msgstr "Groep" - -#: classes/Gems/Default/DatabaseAction.php:168 -msgid "Location" -msgstr "Locatie" - -#: classes/Gems/Default/DatabaseAction.php:171 -msgid "Status" -msgstr "Status" - -#: classes/Gems/Default/DatabaseAction.php:172 -msgid "created" -msgstr "bestaat" - -#: classes/Gems/Default/DatabaseAction.php:173 -msgid "not created" -msgstr "niet aanwezig" - -#: classes/Gems/Default/DatabaseAction.php:174 -msgid "unknown" -msgstr "onbekend" - -#: classes/Gems/Default/DatabaseAction.php:177 -msgid "Script" -msgstr "Script" - -#: classes/Gems/Default/DatabaseAction.php:179 -msgid "Changed on" -msgstr "Veranderd op" - -#: classes/Gems/Default/DatabaseAction.php:198 -msgid "This database object does not exist. You cannot delete it." -msgstr "Dit database object bestaat. Het kan dus ook niet verwijderd worden." - -#: classes/Gems/Default/DatabaseAction.php:203 -#, php-format -msgid "Drop %s" -msgstr "Verwijder %s" - -#: classes/Gems/Default/DatabaseAction.php:211 -#, php-format -msgid "There are %d rows in the table." -msgstr "Er zijn %d rijen in deze tabel." - -#: classes/Gems/Default/DatabaseAction.php:213 -#, php-format -msgid "Drop table with %d rows" -msgstr "Tabel met %d rijen aan data verwijderen" - -#: classes/Gems/Default/DatabaseAction.php:214 -msgid "Are you really sure?" -msgstr "Weet u het heel erg zeker?" - -#: classes/Gems/Default/DatabaseAction.php:230 -#, php-format -msgid "%1$s %2$s dropped" -msgstr "%1$s %2$s verwijderd" - -#: classes/Gems/Default/DatabaseAction.php:235 -msgid " during statement " -msgstr " tijdens het commando " - -#: classes/Gems/Default/DatabaseAction.php:246 -#, php-format -msgid "%s no longer exists in the database." -msgstr "%s bestaat niet meer in de database." - -#: classes/Gems/Default/DatabaseAction.php:249 -#, php-format -msgid "%s does not yet exist in the database." -msgstr "%s bestaat nog niet in de database." - -#: classes/Gems/Default/DatabaseAction.php:252 -#, php-format -msgid "%s object does exist." -msgstr "%s object bestaat." - -#: classes/Gems/Default/DatabaseAction.php:270 -msgid "Object is not a table." -msgstr "Niet een tabel object." - -#: classes/Gems/Default/DatabaseAction.php:293 -msgid "Structure" -msgstr "Structuur" - -#: classes/Gems/Default/DatabaseAction.php:302 -msgid "database object" -msgid_plural "database objects" -msgstr[0] "database object" -msgstr[1] "database objects" - -#: classes/Gems/Default/DatabaseAction.php:307 -msgid "Database object overview" -msgstr "Database object overzicht" - -#: classes/Gems/Default/DatabaseAction.php:316 -#: classes/Gems/Default/DatabaseAction.php:360 -msgid "Level" -msgstr "Niveau" - -#: classes/Gems/Default/DatabaseAction.php:317 -#: classes/Gems/Default/DatabaseAction.php:361 -msgid "Subtype" -msgstr "Subtype" - -#: classes/Gems/Default/DatabaseAction.php:319 -msgid "To be executed" -msgstr "Uit te voeren" - -#: classes/Gems/Default/DatabaseAction.php:320 -#: classes/Gems/Default/DatabaseAction.php:364 -msgid "Executed" -msgstr "Uitgevoerd" - -#: classes/Gems/Default/DatabaseAction.php:321 -#: classes/Gems/Default/DatabaseAction.php:365 -msgid "Finished" -msgstr "Afgerond" - -#: classes/Gems/Default/DatabaseAction.php:324 -msgid "Create the patch table!" -msgstr "De patch tabel bestaat nog niet!" - -#: classes/Gems/Default/DatabaseAction.php:326 -#, php-format -msgid "%d new or changed patch(es)." -msgstr "%d nieuwe of veranderde patch(es)." - -#: classes/Gems/Default/DatabaseAction.php:331 -msgid "Gems build" -msgstr "Gems bouwnummer" - -#: classes/Gems/Default/DatabaseAction.php:332 -msgid "Database build" -msgstr "Database versie" - -#: classes/Gems/Default/DatabaseAction.php:334 -msgid "Execute level" -msgstr "Uit te voeren versie" - -#: classes/Gems/Default/DatabaseAction.php:338 -msgid "Ignore finished" -msgstr "Afgeronde patches overslaan" - -#: classes/Gems/Default/DatabaseAction.php:339 -msgid "Ignore executed" -msgstr "Uitgevoerde patches overslaan" - -#: classes/Gems/Default/DatabaseAction.php:340 -msgid "Show patches" -msgstr "Toon patches" - -#: classes/Gems/Default/DatabaseAction.php:354 -#, php-format -msgid "%d patch(es) executed." -msgstr "%d patch(es) uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:359 -msgid "Patch" -msgstr "Patch" - -#: classes/Gems/Default/DatabaseAction.php:363 -msgid "Query" -msgstr "Query" - -#: classes/Gems/Default/DatabaseAction.php:366 -msgid "Result" -msgstr "Resultaat" - -#: classes/Gems/Default/DatabaseAction.php:390 -msgid "Patch maintenance" -msgstr "Patch onderhoud" - -#: classes/Gems/Default/DatabaseAction.php:394 -msgid "Patch overview" -msgstr "Patch overzicht" - -#: classes/Gems/Default/DatabaseAction.php:456 -msgid "This database object does not exist. You cannot create it." -msgstr "Dit database object bestaat niet en kan ook niet aangemaakt worden." - -#: classes/Gems/Default/DatabaseAction.php:462 -msgid "This database object has no script. You cannot execute it." -msgstr "Dit database object heeft geen script. Het kan dus ook niet uitgevoerd worden." - -#: classes/Gems/Default/DatabaseAction.php:473 -#, php-format -msgid "Run %s" -msgstr "Voer %s script uit" - -#: classes/Gems/Default/DatabaseAction.php:492 -#, php-format -msgid "Starting %d object creation scripts." -msgstr "Aanvang %d object aanmaak scripts." - -#: classes/Gems/Default/DatabaseAction.php:497 -#, php-format -msgid "Finished %s creation script for object %d of %d" -msgstr "Klaar %s met aanmaak script voor object %d van %d" - -#: classes/Gems/Default/DatabaseAction.php:501 -msgid "All objects exist. Nothing was executed." -msgstr "Alle objects bestaan. Niets was uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:507 -msgid "Create not-existing database objects" -msgstr "Aanmaak van database objecten die nog niet bestaan" - -#: classes/Gems/Default/DatabaseAction.php:509 -#, php-format -msgid "One database object does not exist." -msgid_plural "These %d database objects do not exist." -msgstr[0] "Één object bestaat nog niet in de database." -msgstr[1] "%d objecten bestaan nog niet in de database." - -#: classes/Gems/Default/DatabaseAction.php:510 -msgid "Are you sure you want to create it?" -msgid_plural "Are you sure you want to create them all?" -msgstr[0] "Weet je zeker dat je dat object wil aanmaken?" -msgstr[1] "Weet je zeker dat je ze allemaal wil aanmaken?" - -#: classes/Gems/Default/DatabaseAction.php:523 -msgid "All database objects exist. There is nothing to create." -msgstr "Alle database objecten bestaan. Er valt niets te maken." - -#: classes/Gems/Default/DatabaseAction.php:536 -msgid "Separate multiple commands with semicolons (;)." -msgstr "Scheidt meerdere commando's met punt-comma's (;)." - -#: classes/Gems/Default/DatabaseAction.php:543 -msgid "Run" -msgstr "Uitvoeren" - -#: classes/Gems/Default/DatabaseAction.php:552 -msgid "raw" -msgstr "rauw" - -#: classes/Gems/Default/DatabaseAction.php:561 -#, php-format -msgid "Result set %s." -msgstr "Resultaat %s." - -#: classes/Gems/Default/DatabaseAction.php:584 -msgid "Execute raw SQL" -msgstr "SQL direct uitvoeren" - -#: classes/Gems/Default/DatabaseAction.php:587 -msgid "Result sets" -msgstr "Resultaten" - -#: classes/Gems/Default/DatabaseAction.php:612 -msgid "This database object does not exist. You cannot view it." -msgstr "Dit database object bestaat. Het kan dus ook niet bekeken worden." - -#: classes/Gems/Default/DatabaseAction.php:617 -#, php-format -msgid "The data in table %s" -msgstr "De gegevens in tabel %s" - -#: classes/Gems/Default/DatabaseAction.php:618 -#, php-format -msgid "Contents of %s %s" -msgstr "De inhoud van %s %s" - -#: classes/Gems/Default/ExportAction.php:69 -msgid "Data" -msgstr "Data" - -#: classes/Gems/Default/ExportAction.php:74 -msgid "Export data" -msgstr "Exporteer gegevens" - -#: classes/Gems/Default/ExportAction.php:155 -#: classes/Gems/Default/MailJobAction.php:121 -msgid "Survey" -msgstr "Vragenlijst" - -#: classes/Gems/Default/ExportAction.php:170 -#, php-format -msgid "%s records found." -msgstr "%s records gevonden." - -#: classes/Gems/Default/ExportAction.php:174 -#: classes/Gems/Default/IndexAction.php:162 -#: classes/Gems/Default/MailJobAction.php:119 -msgid "Organization" -msgstr "Organisatie" - -#: classes/Gems/Default/ExportAction.php:183 -msgid "Export to" -msgstr "Exporteer naar" - -#: classes/Gems/Default/GroupAction.php:88 -msgid "Role" -msgstr "Rol" - -#: classes/Gems/Default/GroupAction.php:91 -#: classes/Gems/Default/MailJobAction.php:104 -msgid "Active" -msgstr "Actief" - -#: classes/Gems/Default/GroupAction.php:102 -msgid "group" -msgid_plural "groups" -msgstr[0] "groep" -msgstr[1] "groepen" - -#: classes/Gems/Default/GroupAction.php:107 -msgid "Administrative groups" -msgstr "Beheer groepen" - -#: classes/Gems/Default/IndexAction.php:83 -msgid "Enter your token..." -msgstr "Voer uw kenmerk in..." - -#: classes/Gems/Default/IndexAction.php:124 -#, php-format -msgid "Login to %s application" -msgstr "%s login" - -#: classes/Gems/Default/IndexAction.php:128 -msgid "Login" -msgstr "Login" - -#: classes/Gems/Default/IndexAction.php:145 -msgid "Back to login" -msgstr "Terug naar de login" - -#: classes/Gems/Default/IndexAction.php:183 -msgid "Password" -msgstr "Wachtwoord" - -#: classes/Gems/Default/IndexAction.php:198 -#, php-format -msgid "Reset password for %s application" -msgstr "Reset wachtwoord voor %s" - -#: classes/Gems/Default/IndexAction.php:202 -msgid "Reset password" -msgstr "Reset wachtwoord" - -#: classes/Gems/Default/IndexAction.php:248 -msgid "Username" -msgstr "Gebruikersnaam" - -#: classes/Gems/Default/IndexAction.php:305 -#, php-format -msgid "Login successful, welcome %s." -msgstr "Login in orde, welkom %s." - -#: classes/Gems/Default/IndexAction.php:335 -#, php-format -msgid "Good bye: %s." -msgstr "Tot ziens: %s." - -#: classes/Gems/Default/IndexAction.php:360 -msgid "Reset accepted, enter your new password." -msgstr "Reset geaccepteerd, voer uw nieuwe wachtwoord in." - -#: classes/Gems/Default/IndexAction.php:364 -msgid "This key timed out or does not belong to this user." -msgstr "Te oude sleutel of sleutel hoort niet bij gebruiker." - -#: classes/Gems/Default/IndexAction.php:381 -msgid "Password reset requested" -msgstr "Wachtwoord reset aangevraagd" - -#: classes/Gems/Default/IndexAction.php:382 -#, php-format -msgid "To reset your password for %s, please click this link: %s" -msgstr "Om uw wachtwoord voor %s te resetten, klik op deze link: %s" - -#: classes/Gems/Default/IndexAction.php:387 -msgid "We sent you an e-mail with a reset link. Click on the link in the e-mail." -msgstr "We hebben u een email met reset link gestuurd. Klik op de link in de email." - -#: classes/Gems/Default/IndexAction.php:389 -msgid "Unable to send e-mail." -msgstr "Verzenden e-mail mislukt." - -#: classes/Gems/Default/IndexAction.php:394 -msgid "No such user found or no e-mail address known or user cannot be reset." -msgstr "Gebruiker niet gevonden of e-mail adres onbekend of gebruiker kan niet gereset worden." - -#: classes/Gems/Default/IndexAction.php:398 -msgid "We received your password reset key." -msgstr "Wachtwoord resetsleutel ontvangen." - -#: classes/Gems/Default/IndexAction.php:399 -msgid "Please enter the organization and username belonging to this key." -msgstr "Geef de organisatie en gebruikersnaam die bij deze sleutel horen op." - -#: classes/Gems/Default/InvitationAction.php:52 -msgid "Invite" -msgstr "Uitnodigen" - -#: classes/Gems/Default/LanguageAction.php:63 -msgid "Cookies must be enabled for setting the language." -msgstr "Zonder cookies kan de taal niet ingesteld worden." - -#: classes/Gems/Default/LanguageAction.php:66 -msgid "Invalid language setting." -msgstr "Ongeldige taal instelling." - -#: classes/Gems/Default/LogAction.php:61 -msgid "from" -msgstr "vanaf" - -#: classes/Gems/Default/LogAction.php:66 -msgid "until" -msgstr "tot" - -#: classes/Gems/Default/LogAction.php:72 -msgid "days" -msgstr "dagen" - -#: classes/Gems/Default/LogAction.php:73 -msgid "weeks" -msgstr "weken" - -#: classes/Gems/Default/LogAction.php:74 -msgid "months" -msgstr "maanden" - -#: classes/Gems/Default/LogAction.php:75 -msgid "years" -msgstr "jaren" - -#: classes/Gems/Default/LogAction.php:96 -msgid "Staff:" -msgstr "Medewerkers:" - -#: classes/Gems/Default/LogAction.php:100 -msgid "All staff" -msgstr "Alle medewerkers" - -#: classes/Gems/Default/LogAction.php:102 -msgid "Patient:" -msgstr "Patiënt:" - -#: classes/Gems/Default/LogAction.php:106 -msgid "All patients" -msgstr "Alle patiënten" - -#: classes/Gems/Default/LogAction.php:109 -msgid "Action:" -msgstr "Actie:" - -#: classes/Gems/Default/LogAction.php:112 -msgid "All actions" -msgstr "Alle acties" - -#: classes/Gems/Default/LogAction.php:163 -msgid "Date" -msgstr "Datum" - -#: classes/Gems/Default/LogAction.php:164 -#: classes/Gems/Default/LogMaintenanceAction.php:52 -msgid "Action" -msgstr "Actie" - -#: classes/Gems/Default/LogAction.php:165 -msgid "Message" -msgstr "Bericht" - -#: classes/Gems/Default/LogAction.php:167 -msgid "Respondent" -msgstr "Patiënt" - -#: classes/Gems/Default/LogAction.php:173 -#: classes/Gems/Default/LogMaintenanceAction.php:53 -msgid "Log" -msgstr "Logboek" - -#: classes/Gems/Default/LogMaintenanceAction.php:70 -msgid "Log:" -msgstr "Logboek:" - -#: classes/Gems/Default/LogMaintenanceAction.php:71 -msgid "All" -msgstr "Alles" - -#: classes/Gems/Default/LogMaintenanceAction.php:77 -msgid "Log action" -msgstr "Logboek actie" - -#: classes/Gems/Default/LogMaintenanceAction.php:81 -msgid "Log maintenance" -msgstr "Logboek onderhoud" - -#: classes/Gems/Default/MailJobAction.php:62 -msgid "No automatic mail jobs found..." -msgstr "Geen automatische mail opdrachten gevonden.." - -#: classes/Gems/Default/MailJobAction.php:72 -msgid "New automatic mail job..." -msgstr "Nieuwe automatische mail opdracht..." - -#: classes/Gems/Default/MailJobAction.php:100 -msgid "Template" -msgstr "Sjabloon" - -#: classes/Gems/Default/MailJobAction.php:101 -msgid "By staff member" -msgstr "Door medewerke" - -#: classes/Gems/Default/MailJobAction.php:103 -msgid "Used for logging and possibly from address." -msgstr "Gebruikt voor activiteiten log en eventueel voor vanaf adres." - -#: classes/Gems/Default/MailJobAction.php:106 -msgid "Job is only run when active." -msgstr "Een opdracht wordt alleen uitgevoerd als deze actief is." - -#: classes/Gems/Default/MailJobAction.php:109 -msgid "From address used" -msgstr "Gebruikte vanaf adres" - -#: classes/Gems/Default/MailJobAction.php:111 -msgid "From other" -msgstr "Vanaf overig" - -#: classes/Gems/Default/MailJobAction.php:112 -#, php-format -msgid "Only when '%s' is '%s'." -msgstr "Aleen als '%s' is '%s'." - -#: classes/Gems/Default/MailJobAction.php:114 -msgid "Processing Method" -msgstr "Verwerkings methode" - -#: classes/Gems/Default/MailJobAction.php:115 -msgid "Filter for" -msgstr "Selecteer op" - -#: classes/Gems/Default/MailJobAction.php:116 -msgid "Days between reminders" -msgstr "Aantal dagen tussen herinneringen" - -#: classes/Gems/Default/MailJobAction.php:132 -msgid "Do you want to delete this mail job?" -msgstr "Weet je zeker dat deze automatische mail opdracht verwijderd moet worden?" - -#: classes/Gems/Default/MailJobAction.php:143 -msgid "Edit automatic mail job" -msgstr "Automatische mail opdracht bewerken" - -#: classes/Gems/Default/MailJobAction.php:156 -msgid "First mail" -msgstr "Eerste mail" - -#: classes/Gems/Default/MailJobAction.php:157 -msgid "Reminder" -msgstr "Herinnering" - -#: classes/Gems/Default/MailJobAction.php:168 -msgid "Use organizational from address" -msgstr "Gebruik vanaf adres van organisatie" - -#: classes/Gems/Default/MailJobAction.php:171 -#, php-format -msgid "Use site %s address" -msgstr "Gebruik %s adres van de site" - -#: classes/Gems/Default/MailJobAction.php:174 -msgid "Use the 'By staff member' address" -msgstr "Gebruik 'Door medewerker' adres" - -#: classes/Gems/Default/MailJobAction.php:175 -msgid "Other" -msgstr "Overige" - -#: classes/Gems/Default/MailJobAction.php:185 -msgid "Automatic mail jobs" -msgstr "Automatische mail opdrachten " - -#: classes/Gems/Default/MailJobAction.php:189 -#, php-format -msgid "Automatic mails have been turned off since %s." -msgstr "Automatische mail opdrachten staan sinds %s uit." - -#: classes/Gems/Default/MailJobAction.php:193 -msgid "Turn Automatic Mail Jobs ON" -msgstr "Automatische mail opdrachten AANzetten" - -#: classes/Gems/Default/MailJobAction.php:199 -msgid "With automatic mail jobs and a cron job on the server, mails can be sent without manual user action." -msgstr "Met automatische mail opdrachten en een cron opdracht op de server, kunnen mails verstuurd worden zonder dat een gebruiker actie hoeft te ondernemen." - -#: classes/Gems/Default/MailJobAction.php:207 -msgid "Automatic mail job details" -msgstr "Automatische mail opdracht details" - -#: classes/Gems/Default/MailLogAction.php:107 -msgid "Date sent" -msgstr "Verzend datum" - -#: classes/Gems/Default/MailLogAction.php:108 -msgid "Receiver" -msgstr "Ontvanger" - -#: classes/Gems/Default/MailLogAction.php:109 -msgid "To address" -msgstr "Adres aan" - -#: classes/Gems/Default/MailLogAction.php:110 -msgid "Sender" -msgstr "Verzender" - -#: classes/Gems/Default/MailLogAction.php:111 -msgid "From address" -msgstr "Adres van" - -#: classes/Gems/Default/MailLogAction.php:113 -#: classes/Gems/Default/MailTemplateAction.php:61 -msgid "Subject" -msgstr "Onderwerp" - -#: classes/Gems/Default/MailLogAction.php:129 -msgid "Mail Activity Log" -msgstr "Logboek Mail Activiteit" - -#: classes/Gems/Default/MailLogAction.php:140 -msgid "Show Mail Activity Log item" -msgstr "Toon Logboek Mail item" - -#: classes/Gems/Default/MailServerAction.php:68 -msgid "From address [part]" -msgstr "Vanaf adres [gedeelte]" - -#: classes/Gems/Default/MailServerAction.php:70 -msgid "E.g.: '%', '%.org' or '%@gemstracker.org' or 'ro...@ge...'." -msgstr "Bijvoorbeeld: '%', '%.nl' of '%@gemstracker.nl' of 'ro...@ge...'." - -#: classes/Gems/Default/MailServerAction.php:71 -msgid "Server" -msgstr "Server" - -#: classes/Gems/Default/MailServerAction.php:73 -msgid "Encryption" -msgstr "Encryptie" - -#: classes/Gems/Default/MailServerAction.php:76 -msgid "None" -msgstr "Geen" - -#: classes/Gems/Default/MailServerAction.php:77 -msgid "SSL" -msgstr "SSL" - -#: classes/Gems/Default/MailServerAction.php:78 -msgid "TLS" -msgstr "TLS" - -#: classes/Gems/Default/MailServerAction.php:80 -msgid "Port" -msgstr "Poort" - -#: classes/Gems/Default/MailServerAction.php:82 -msgid "Normal values: 25 for TLS and no encryption, 465 for SSL" -msgstr "Standaard waardes: 25 voor TLS en voor geen encryptie, 465 voor SSL" - -#: classes/Gems/Default/MailServerAction.php:84 -msgid "User ID" -msgstr "Gebruikers ID" - -#: classes/Gems/Default/MailServerAction.php:90 -#: classes/Gems/Default/OptionAction.php:112 -#: classes/Gems/Default/OptionAction.php:117 -#: classes/Gems/Default/SourceAction.php:95 -#: classes/Gems/Default/StaffAction.php:144 -msgid "Repeat password" -msgstr "Herhaal wachtwoord" - -#: classes/Gems/Default/MailServerAction.php:91 -#: classes/Gems/Default/SourceAction.php:74 -#: classes/Gems/Default/StaffAction.php:118 -msgid "Enter only when changing" -msgstr "Alleen invoeren om het wachtwoord te wijzigen" - -#: classes/Gems/Default/MailServerAction.php:100 -msgid "email server" -msgid_plural "email servers" -msgstr[0] "email server" -msgstr[1] "email servers" - -#: classes/Gems/Default/MailServerAction.php:105 -msgid "Email servers" -msgstr "Email servers" - -#: classes/Gems/Default/MailTemplateAction.php:75 -#: classes/Gems/Default/StaffAction.php:228 -msgid "(all organizations)" -msgstr "(alle organisaties)" - -#: classes/Gems/Default/MailTemplateAction.php:94 -msgid "email template" -msgid_plural "email templates" -msgstr[0] "email sjabloon" -msgstr[1] "email sjablonen" - -#: classes/Gems/Default/MailTemplateAction.php:99 -msgid "Email templates" -msgstr "Email sjabloon" - -#: classes/Gems/Default/OptionAction.php:84 -msgid "You are not allowed to change your password." -msgstr "U mag uw wachtwoord niet wijzigen." - -#: classes/Gems/Default/OptionAction.php:96 -msgid "Current password" -msgstr "Huidig wachtwoord" - -#: classes/Gems/Default/OptionAction.php:106 -#: classes/Gems/Default/OptionAction.php:122 -msgid "New password" -msgstr "Nieuw wachtwoord" - -#: classes/Gems/Default/OptionAction.php:141 -msgid "New password is active." -msgstr "Nieuwe wachtwoord geactiveerd." - -#: classes/Gems/Default/OptionAction.php:146 -msgid "Caps Lock seems to be on!" -msgstr "De Caps Lock toets lijkt aan te staan!" - -#: classes/Gems/Default/OptionAction.php:190 -msgid "Login Name" -msgstr "Login Naam" - -#: classes/Gems/Default/OptionAction.php:197 -#: classes/Gems/Default/OrganizationAction.php:140 -#: classes/Gems/Default/RespondentAction.php:173 -#: classes/Gems/Default/StaffAction.php:213 -msgid "Language" -msgstr "Taal" - -#: classes/Gems/Default/OptionAction.php:207 -#, php-format -msgid "Options" -msgstr "Instellingen" - -#: classes/Gems/Default/OptionAction.php:216 -msgid "This overview provides information about the last login activity on your account." -msgstr "Dit overzicht geeft informatie over de recente inlog activiteit op uw account." - -#: classes/Gems/Default/OptionAction.php:236 -msgid "IP address" -msgstr "IP adres" - -#: classes/Gems/Default/OptionAction.php:236 -msgid "Date / time" -msgstr "Datum / tijd" - -#: classes/Gems/Default/OptionAction.php:242 -msgid "item" -msgid_plural "items" -msgstr[0] "item" -msgstr[1] "items" - -#: classes/Gems/Default/OptionAction.php:247 -msgid "Item" -msgstr "Item" - -#: classes/Gems/Default/OrganizationAction.php:105 -msgid "Cookies must be enabled." -msgstr "Zonder cookies kan de taal niet ingesteld worden." - -#: classes/Gems/Default/OrganizationAction.php:108 -msgid "Invalid organization." -msgstr "Ongeldige organisatie." - -#: classes/Gems/Default/OrganizationAction.php:129 -msgid "Url" -msgstr "Url" - -#: classes/Gems/Default/OrganizationAction.php:130 -msgid "Task" -msgstr "Taak" - -#: classes/Gems/Default/OrganizationAction.php:131 -msgid "Contact name" -msgstr "Contact naam" - -#: classes/Gems/Default/OrganizationAction.php:132 -msgid "Contact email" -msgstr "Contact email" - -#: classes/Gems/Default/OrganizationAction.php:135 -msgid "Style" -msgstr "Stijl" - -#: classes/Gems/Default/OrganizationAction.php:145 -msgid "Allow new respondents" -msgstr "Nieuwe patiënten toestaan" - -#: classes/Gems/Default/OrganizationAction.php:150 -msgid "Greeting" -msgstr "Begroeting" - -#: classes/Gems/Default/OrganizationAction.php:150 -#: classes/Gems/Default/OrganizationAction.php:151 -msgid "For emails and token forward screen." -msgstr "Voor emails en kenmerk scherm." - -#: classes/Gems/Default/OrganizationAction.php:151 -msgid "Signature" -msgstr "Handtekening" - -#: classes/Gems/Default/OrganizationAction.php:153 -msgid "Accessible by" -msgstr "Toegankelijk voor" - -#: classes/Gems/Default/OrganizationAction.php:153 -msgid "Checked organizations see this organizations respondents." -msgstr "Geselecteerde organizaties kunnen de patiënten van deze organisatie bekijken." - -#: classes/Gems/Default/OrganizationAction.php:172 -msgid "organization" -msgid_plural "organizations" -msgstr[0] "organisatie" -msgstr[1] "organisaties" - -#: classes/Gems/Default/OrganizationAction.php:177 -msgid "Participating organizations" -msgstr "Deelnemende organisaties" - -#: classes/Gems/Default/OverviewPlanAction.php:115 -#: classes/Gems/Default/ProjectSurveysAction.php:88 -#: classes/Gems/Default/SurveyAction.php:203 -msgid "survey" -msgid_plural "surveys" -msgstr[0] "vragenlijst" -msgstr[1] "vragenlijsten" - -#: classes/Gems/Default/OverviewPlanAction.php:120 -msgid "Planning overview" -msgstr "Planning overzicht" - -#: classes/Gems/Default/ProjectInformationAction.php:83 -msgid "empty file" -msgstr "leeg bestand" - -#: classes/Gems/Default/ProjectInformationAction.php:87 -msgid "file not found" -msgstr "bestand niet gevonden" - -#: classes/Gems/Default/ProjectInformationAction.php:120 -msgid "Logged errors" -msgstr "Opgeslagen foutmeldingen" - -#: classes/Gems/Default/ProjectInformationAction.php:120 -msgid "Empty logfile" -msgstr "Verwijder alle foutmeldingen" - -#: classes/Gems/Default/ProjectInformationAction.php:125 -msgid "Project information" -msgstr "Project informatie" - -#: classes/Gems/Default/ProjectInformationAction.php:129 -msgid "Project name" -msgstr "Project naam" - -#: classes/Gems/Default/ProjectInformationAction.php:130 -msgid "Project version" -msgstr "Project versie" - -#: classes/Gems/Default/ProjectInformationAction.php:131 -msgid "Gems version" -msgstr "Gems versie" - -#: classes/Gems/Default/ProjectInformationAction.php:133 -msgid "Gems project" -msgstr "Gems project" - -#: classes/Gems/Default/ProjectInformationAction.php:134 -msgid "Gems web directory" -msgstr "Gems web folder" - -#: classes/Gems/Default/ProjectInformationAction.php:135 -msgid "Gems code directory" -msgstr "Gems code folder" - -#: classes/Gems/Default/ProjectInformationAction.php:136 -msgid "Gems project path" -msgstr "Gems project folder" - -#: classes/Gems/Default/ProjectInformationAction.php:137 -msgid "MUtil version" -msgstr "MUtil versie" - -#: classes/Gems/Default/ProjectInformationAction.php:138 -msgid "Zend version" -msgstr "Zend versie" - -#: classes/Gems/Default/ProjectInformationAction.php:139 -msgid "Application environment" -msgstr "Applicatie omgeving" - -#: classes/Gems/Default/ProjectInformationAction.php:140 -msgid "Application baseuri" -msgstr "Applicatie baseuri" - -#: classes/Gems/Default/ProjectInformationAction.php:141 -msgid "Application directory" -msgstr "Applicatie folder" - -#: classes/Gems/Default/ProjectInformationAction.php:142 -msgid "PHP version" -msgstr "PHP versie" - -#: classes/Gems/Default/ProjectInformationAction.php:143 -msgid "Server Hostname" -msgstr "Webserver naam" - -#: classes/Gems/Default/ProjectInformationAction.php:144 -msgid "Server OS" -msgstr "Server besturingssysteem" - -#: classes/Gems/Default/ProjectInformationAction.php:145 -msgid "Time on server" -msgstr "De tijd op de server" - -#: classes/Gems/Default/ProjectInformationAction.php:149 -msgid "Turn Maintenance Mode OFF" -msgstr "Onderhoudsmodus UITzetten" - -#: classes/Gems/Default/ProjectInformationAction.php:151 -msgid "Turn Maintenance Mode ON" -msgstr "Onderhoudsmodus AANzetten" - -#: classes/Gems/Default/ProjectInformationAction.php:161 -msgid "Version information" -msgstr "Versie informatie" - -#: classes/Gems/Default/ProjectInformationAction.php:187 -msgid "Cache cleaned" -msgstr "Cache opgeschoond" - -#: classes/Gems/Default/ProjectInformationAction.php:195 -msgid "Server PHP Info" -msgstr "Server PHP Info" - -#: classes/Gems/Default/ProjectInformationAction.php:208 -msgid "Project settings" -msgstr "Project instellingen" - -#: classes/Gems/Default/ProjectInformationAction.php:215 -msgid "Session content" -msgstr "Sessie inhoud" - -#: classes/Gems/Default/ProjectInformationAction.php:216 -msgid "Session" -msgstr "Sessie" - -#: classes/Gems/Default/ProjectSurveysAction.php:68 -#: classes/Gems/Default/SurveyAction.php:192 -msgid "By" -msgstr "Door" - -#: classes/Gems/Default/ProjectSurveysAction.php:69 -#: classes/Gems/Default/ProjectTracksAction.php:67 -#: classes/Gems/Default/SurveyAction.php:193 -msgid "From" -msgstr "Van" - -#: classes/Gems/Default/ProjectSurveysAction.php:70 -#: classes/Gems/Default/ProjectTracksAction.php:68 -#: classes/Gems/Default/SurveyAction.php:195 -msgid "Until" -msgstr "Tot" - -#: classes/Gems/Default/ProjectSurveysAction.php:93 -msgid "Active surveys" -msgstr "Beschikbare vragenlijsten" - -#: classes/Gems/Default/ProjectTracksAction.php:65 -msgid "Survey #" -msgstr "Vragenlijsten" - -#: classes/Gems/Default/ProjectTracksAction.php:85 -msgid "track" -msgid_plural "tracks" -msgstr[0] "traject" -msgstr[1] "trajecten" - -#: classes/Gems/Default/ProjectTracksAction.php:90 -msgid "Active tracks" -msgstr "Beschikbare trajecten" - -#: classes/Gems/Default/ProjectTracksAction.php:98 -#, php-format -msgid "Questions in survey %s" -msgstr "Vragen in vragenlijsten %s" - -#: classes/Gems/Default/ProjectTracksAction.php:106 -#: classes/Gems/Default/SurveyAction.php:85 -#, php-format -msgid "Survey %s does not exist." -msgstr "Vragenlijst %s bestaat niet." - -#: classes/Gems/Default/ProjectTracksAction.php:109 -msgid "Survey not specified." -msgstr "Vragenlijst niet opgegeven." - -#: classes/Gems/Default/ProjectTracksAction.php:120 -#, php-format -msgid "Track %s does not exist." -msgstr "Trajectnummer %s bestaat niet." - -#: classes/Gems/Default/ReceptionAction.php:55 -msgid "Can be assigned to" -msgstr "Kan toegewezen worden aan" - -#: classes/Gems/Default/ReceptionAction.php:56 -msgid "Additional action" -msgstr "Aanvullende actie" - -#: classes/Gems/Default/ReceptionAction.php:79 -msgid "Code" -msgstr "Code" - -#: classes/Gems/Default/ReceptionAction.php:82 -msgid "Is success code" -msgstr "Is succes code" - -#: classes/Gems/Default/ReceptionAction.php:86 -msgid "This reception code is a success code." -msgstr "Aanzetten als deze ontvangst code positief is." - -#: classes/Gems/Default/ReceptionAction.php:90 -msgid "Only active codes can be selected." -msgstr "Alleen actieve codes kunnen geselecteerd worden." - -#: classes/Gems/Default/ReceptionAction.php:91 -msgid "For respondents" -msgstr "Voor patiënten" - -#: classes/Gems/Default/ReceptionAction.php:94 -msgid "This reception code can be assigned to a respondent." -msgstr "Deze ontvangstcode kan aan een patiënt toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:95 -msgid "For tracks" -msgstr "Voor trajecten" - -#: classes/Gems/Default/ReceptionAction.php:98 -msgid "This reception code can be assigned to a track." -msgstr "Deze ontvangstcode kan aan een traject toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:99 -msgid "For surveys" -msgstr "Voor vragenlijsten" - -#: classes/Gems/Default/ReceptionAction.php:102 -msgid "This reception code can be assigned to a survey." -msgstr "Deze ontvangstcode kan aan een vragenlijst toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:103 -msgid "Redo survey" -msgstr "Vragenlijsten herhalen" - -#: classes/Gems/Default/ReceptionAction.php:106 -msgid "Redo a survey on this reception code." -msgstr "Herhaal vragenlijst bij deze ontvangstcode." - -#: classes/Gems/Default/ReceptionAction.php:107 -msgid "Overwrite ansers" -msgstr "Overschrijf bestaande antwoorden" - -#: classes/Gems/Default/ReceptionAction.php:110 -msgid "Remove the consent from already answered surveys." -msgstr "Verwijder \"informed consent\" van beantwoorde vragenlijsten" - -#: classes/Gems/Default/ReceptionAction.php:128 -msgid "reception code" -msgid_plural "reception codes" -msgstr[0] "Ontvangst code" -msgstr[1] "Ontvangst code" - -#: classes/Gems/Default/RespondentAction.php:119 -#, php-format -msgid "Random Example BSN: %s" -msgstr "Willekeurig voorbeeld BSN: %s" - -#: classes/Gems/Default/RespondentAction.php:122 -msgid "Enter a 9-digit SSN number." -msgstr "Voer een BSN nummer van 9 cijfers in." - -#: classes/Gems/Default/RespondentAction.php:131 -msgid "Identification" -msgstr "Identificatie" - -#: classes/Gems/Default/RespondentAction.php:132 -msgid "SSN" -msgstr "SSN" - -#: classes/Gems/Default/RespondentAction.php:136 -msgid "Patient number" -msgstr "Patiënt nummer" - -#: classes/Gems/Default/RespondentAction.php:145 -msgid "Medical data" -msgstr "Medische gegevens" - -#: classes/Gems/Default/RespondentAction.php:152 -msgid "DBC's, etc..." -msgstr "DBC's, etc..." - -#: classes/Gems/Default/RespondentAction.php:155 -msgid "Contact information" -msgstr "Contact informatie" - -#: classes/Gems/Default/RespondentAction.php:160 -msgid "Respondent has no e-mail" -msgstr "Patiënt zonder e-mail" - -#: classes/Gems/Default/RespondentAction.php:161 -msgid "With housenumber" -msgstr "Met huisnummer" - -#: classes/Gems/Default/RespondentAction.php:168 -msgid "Country" -msgstr "Land" - -#: classes/Gems/Default/RespondentAction.php:172 -msgid "Settings" -msgstr "Instellingen" - -#: classes/Gems/Default/RespondentAction.php:174 -msgid "Has the respondent signed the informed consent letter?" -msgstr "Heeft de patiënt het \"informed consent\" formulier ondertekend?" - -#: classes/Gems/Default/RespondentAction.php:199 -msgid "Comments" -msgstr "Opmerkingen" - -#: classes/Gems/Default/RespondentAction.php:200 -msgid "Physician" -msgstr "Dokter" - -#: classes/Gems/Default/RespondentAction.php:201 -msgid "Treatment" -msgstr "Behandeling" - -#: classes/Gems/Default/RespondentAction.php:230 -msgid "Rejection code" -msgstr "Afkeuringscode" - -#: classes/Gems/Default/RespondentAction.php:237 -msgid "Delete respondent" -msgstr "Verwijder patiënt" - -#: classes/Gems/Default/RespondentAction.php:288 -msgid "Respondent deleted." -msgstr "Patiënt verwijderd" - -#: classes/Gems/Default/RespondentAction.php:291 -msgid "Choose a reception code to delete." -msgstr "Kies een ontvangst code om te verwijderen." - -#: classes/Gems/Default/RespondentAction.php:335 -msgid "respondent" -msgid_plural "respondents" -msgstr[0] "patiënt" -msgstr[1] "patiënten" - -#: classes/Gems/Default/RespondentAction.php:392 -msgid "Please settle the informed consent form for this respondent." -msgstr "A.u.b. het informed consent formulier doornemen met deze patiënt" - -#: classes/Gems/Default/RespondentPlanAction.php:67 -#: classes/Gems/Default/SurveyAction.php:171 -msgid "Show respondent" -msgstr "Toon patiënt" - -#: classes/Gems/Default/RespondentPlanAction.php:73 -msgid "Show track" -msgstr "Toon traject" - -#: classes/Gems/Default/RespondentPlanAction.php:136 -msgid " of " -msgstr " van " - -#: classes/Gems/Default/RespondentPlanAction.php:137 -msgid "Progress" -msgstr "Voortgang" - -#: classes/Gems/Default/RespondentPlanAction.php:144 -msgid "Respondent planning" -msgstr "Per patiënt plannen" - -#: classes/Gems/Default/RoleAction.php:175 -msgid "Illegal name" -msgstr "Naam niet toegestaan" - -#: classes/Gems/Default/RoleAction.php:199 -#: classes/Gems/Default/RoleAction.php:258 -msgid "Parents" -msgstr "Afgeleid van" - -#: classes/Gems/Default/RoleAction.php:214 -msgid "Editing `master` is not allowed" -msgstr "Het wijzigen van `master` is niet toegestaan" - -#: classes/Gems/Default/RoleAction.php:232 -msgid "role" -msgid_plural "roles" -msgstr[0] "Rol" -msgstr[1] "Rollen" - -#: classes/Gems/Default/RoleAction.php:237 -msgid "Administrative roles" -msgstr "Beheer rollen en rechten" - -#: classes/Gems/Default/RoleAction.php:259 -#: classes/Gems/Default/RoleAction.php:275 -msgid "Allowed" -msgstr "Toegestaan" - -#: classes/Gems/Default/RoleAction.php:260 -#: classes/Gems/Default/RoleAction.php:276 -msgid "Denied" -msgstr "Geweigerd" - -#: classes/Gems/Default/RoleAction.php:264 -msgid "Project role overview" -msgstr "Project rollen" - -#: classes/Gems/Default/RoleAction.php:274 -msgid "Privilege" -msgstr "Privilége" - -#: classes/Gems/Default/RoleAction.php:280 -msgid "Project privileges" -msgstr "Project priviléges" - -#: classes/Gems/Default/SourceAction.php:69 -msgid "Leave empty for the Gems database." -msgstr "Leeglaten bij gebruik van de Gems database." - -#: classes/Gems/Default/SourceAction.php:79 -msgid "E.g. the name of the project - for single source projects." -msgstr "Bijvoorbeeld de project naam - bij projecten met maar één bron." - -#: classes/Gems/Default/SourceAction.php:81 -msgid "For creating token-survey url." -msgstr "Voor kenmerk-vragenlijst url." - -#: classes/Gems/Default/SourceAction.php:86 -msgid "The database server used by the source." -msgstr "Het merk database server gebruikt door deze bron." - -#: classes/Gems/Default/SourceAction.php:88 -msgid "Do not forget the underscores." -msgstr "Vergeet de underscores niet." - -#: classes/Gems/Default/SourceAction.php:91 -msgid "Database Username" -msgstr "Database gebruikersnaam" - -#: classes/Gems/Default/SourceAction.php:93 -msgid "Database Password" -msgstr "Database wachtwoord" - -#: classes/Gems/Default/SourceAction.php:111 -#, php-format -msgid "Checking survey results for %s source." -msgstr "Controle vragenlijstresultaten voor %s bron." - -#: classes/Gems/Default/SourceAction.php:143 -msgid "Source Url" -msgstr "Bron Url" - -#: classes/Gems/Default/SourceAction.php:145 -msgid "Adaptor class" -msgstr "Adaptor klasse" - -#: classes/Gems/Default/SourceAction.php:147 -msgid "Database Server" -msgstr "Database Server" - -#: classes/Gems/Default/SourceAction.php:149 -msgid "Database host" -msgstr "Database machine" - -#: classes/Gems/Default/SourceAction.php:153 -msgid "Table prefix" -msgstr "Voorvoegsel tabel" - -#: classes/Gems/Default/SourceAction.php:157 -msgid "Last check" -msgstr "Laatste controle" - -#: classes/Gems/Default/SourceAction.php:190 -msgid "source" -msgid_plural "sources" -msgstr[0] "bron" -msgstr[1] "bronnen" - -#: classes/Gems/Default/SourceAction.php:195 -msgid "Survey Sources" -msgstr "Bronnen" - -#: classes/Gems/Default/SourceAction.php:203 -msgid "This installation is active." -msgstr "Deze installatie is actief" - -#: classes/Gems/Default/SourceAction.php:205 -msgid "Inactive installation." -msgstr "Deze installatie is inactief" - -#: classes/Gems/Default/SourceAction.php:218 -#: classes/Gems/Default/SourceAction.php:237 -msgid "No changes." -msgstr "Geen veranderingen" - -#: classes/Gems/Default/SourceAction.php:233 -#, php-format -msgid "Synchronization of source %s:" -msgstr "Synchronisatie van %s bron:" - -#: classes/Gems/Default/SourceAction.php:244 -msgid "Synchronize all sources of surveys" -msgstr "Synchronizeer alle vragenlijsten bronnen" - -#: classes/Gems/Default/SourceAction.php:245 -msgid "Synchronization will update the status of all surveys imported into this project to the status at the sources." -msgstr "Synchronisatie zal de status van alle vragenlijsten in dit project aanpassen aan de status van de bron." - -#: classes/Gems/Default/SourceAction.php:252 -msgid "Are you sure you want to synchronize all survey sources?" -msgstr "Weet je zeker dat je alle bronnen wil synchroniseren?" - -#: classes/Gems/Default/StaffAction.php:158 -msgid "If checked the user will logoff when answering a survey." -msgstr "Indien actief, dan logt de gebruiker uit voor het beantwoorden van een vragenlijst." - -#: classes/Gems/Default/StaffAction.php:174 -msgid "You are not allowed to edit this staff member." -msgstr "U mag deze medewerker niet wijzigen." - -#: classes/Gems/Default/StaffAction.php:208 -msgid "Primary function" -msgstr "Primaire functie" - -#: classes/Gems/Default/StaffAction.php:214 -msgid "Logout on survey" -msgstr "Logout bij beantwoorden vragenlijst" - -#: classes/Gems/Default/StaffAction.php:283 -msgid "staff member" -msgid_plural "staff members" -msgstr[0] "medewerker" -msgstr[1] "medewerkers" - -#: classes/Gems/Default/SurveyAction.php:64 -msgid "Add survey" -msgstr "Vragenlijst toevoegen" - -#: classes/Gems/Default/SurveyAction.php:67 -#, php-format -msgid "Add another %s survey" -msgstr "Nog een %s vragenlijst toevoegen" - -#: classes/Gems/Default/SurveyAction.php:70 -#, php-format -msgid "Adding the %s survey to respondent %s" -msgstr "Vragenlijst %s toevoegen aan patiënt %s." - -#: classes/Gems/Default/SurveyAction.php:73 -msgid "Available surveys" -msgstr "Beschikbare vragenlijsten" - -#: classes/Gems/Default/SurveyAction.php:76 -msgid "No surveys found" -msgstr "Geen vragenlijsten gevonden" - -#: classes/Gems/Default/SurveyAction.php:79 -#, php-format -msgid "Overview of %s survey for respondent %s" -msgstr "Overzicht van vragenlijst %s voor patiënt %s " - -#: classes/Gems/Default/SurveyAction.php:82 -msgid "This survey has not been assigned to this respondent." -msgstr "Deze vragenlijst is nog niet aan deze patiënt toegewezen." - -#: classes/Gems/Default/SurveyAction.php:144 -#, php-format -msgid "Assignments of this survey to %s" -msgstr "Toewijzingen van deze vragenlijst aan %s" - -#: classes/Gems/Default/SurveyAction.php:165 -msgid "Show surveys" -msgstr "Toon vragenlijsten" - -#: classes/Gems/Default/SurveyAction.php:208 -msgid "Assigned surveys" -msgstr "Toegewezen vragenlijsten" - -#: classes/Gems/Default/SurveyMaintenanceAction.php:123 -msgid "If empty, survey will never show up!" -msgstr "Indien leeg zal de vragenlijst niet tevoorschijn komen!" - -#: classes/Gems/Default/SurveyMaintenanceAction.php:124 -msgid "Result field" -msgstr "Resultaat veld" - -#: classes/Gems/Default/SurveyMaintenanceAction.php:125 -msgid "Before answering" -msgstr "Voor beantwoording" - -#: classes/Gems/Default/SurveyMaintenanceAction.php:126 -msgid "After completion" -msgstr "Na afronding" - -#: classes/Gems/Default/SurveyMaintenanceAction.php:129 -msgid "Upload new PDF" -msgstr "Upload nieuwe PDF" - -#: classes/Gems/Default/SurveyMaintenanceAction.php:136 -msgid "Usage" -msgstr "Gebruik" - -#: classes/Gems/Default/SurveyMaintenanceAction.php:151 -msgid "Single Survey Assignment" -msgstr "Losse vragenlijst toewijzing" - -... [truncated message content] |
From: <gem...@li...> - 2011-11-21 12:07:08
|
Revision: 253 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=253&view=rev Author: matijsdejong Date: 2011-11-21 12:06:59 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Make the Right, that was to simple. This code redirects a little more intelligently to prevent eternal loops. Modified Paths: -------------- trunk/library/classes/Gems/User/User.php trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-21 11:30:36 UTC (rev 252) +++ trunk/library/classes/Gems/User/User.php 2011-11-21 12:06:59 UTC (rev 253) @@ -451,8 +451,11 @@ } if ($menuItem) { - $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector'); - $redirector->gotoRoute($menuItem->toRouteUrl($request)); + // Prevent redirecting to the current page. + if (! ($menuItem->is('controller', $request->getControllerName()) && $menuItem->is('action', $request->getActionName()))) { + $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector'); + $redirector->gotoRoute($menuItem->toRouteUrl($request)); + } } return $menuItem; Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-21 11:30:36 UTC (rev 252) +++ trunk/library/classes/GemsEscort.php 2011-11-21 12:06:59 UTC (rev 253) @@ -1475,7 +1475,8 @@ } // Gems does not use index/index - if (('index' == $request->getControllerName()) && (('index' == $request->getActionName()) || ('login' == $request->getActionName()))) { + $action = $request->getActionName(); + if (('index' == $request->getControllerName()) && (('index' == $action) || ($user->isActive() && ('login' == $action)))) { // Instead Gems routes to the first available menu item when this is the request target if (! $user->gotoStartPage($this->menu, $request)) { $this->setError( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 11:30:42
|
Revision: 252 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=252&view=rev Author: michieltcs Date: 2011-11-21 11:30:36 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Add askThrottle section Modified Paths: -------------- trunk/new_project/application/configs/project.ini Modified: trunk/new_project/application/configs/project.ini =================================================================== --- trunk/new_project/application/configs/project.ini 2011-11-21 11:22:10 UTC (rev 251) +++ trunk/new_project/application/configs/project.ini 2011-11-21 11:30:36 UTC (rev 252) @@ -53,6 +53,33 @@ session.idleTimeout = 1800 ;------------------------------------------------------- +; ASK THROTTLE SECTION +; +; Sets values that control the throttling (slowdowns to +; combat brute-force attacks) of the ask / token +; controller. +; +; askThrottle.period +; +; Look for failed token attempts in from now to +; X seconds ago. +; +; askThrottle.threshold +; +; If the number of failed token attempts exceeds this +; number, starting throttling. +; +; askThrottle.delay +; +; Throttle by delaying each request by X seconds. +; +;------------------------------------------------------- + +askThrottle.period = 900 +askThrottle.threshold = 300 +askThrottle.delay = 10 + +;------------------------------------------------------- ; ASK DELAY SECTION ; ; askDelay This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 11:22:21
|
Revision: 251 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=251&view=rev Author: michieltcs Date: 2011-11-21 11:22:10 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Refs #454 - introduce throttling in AskAction Modified Paths: -------------- trunk/library/classes/Gems/Default/AskAction.php trunk/library/classes/Gems/Project/ProjectSettings.php Modified: trunk/library/classes/Gems/Default/AskAction.php =================================================================== --- trunk/library/classes/Gems/Default/AskAction.php 2011-11-21 10:58:55 UTC (rev 250) +++ trunk/library/classes/Gems/Default/AskAction.php 2011-11-21 11:22:10 UTC (rev 251) @@ -215,9 +215,35 @@ $form->addElement($element); if ($this->_request->isPost()) { - if ($form->isValid($_POST)) { + $throttleSettings = $this->project->getAskThrottleSettings(); + + // Prune the database for (very) old attempts + $this->db->query("DELETE FROM gems__token_attempts WHERE gta_datetime < DATE_SUB(NOW(), INTERVAL ? second)", + $throttleSettings['period'] * 20); + + // Retrieve the number of failed attempts that occurred within the specified window + $attemptData = $this->db->fetchRow("SELECT COUNT(1) AS attempts, UNIX_TIMESTAMP(MAX(gta_datetime)) AS last " . + "FROM gems__token_attempts WHERE gta_datetime > DATE_SUB(NOW(), INTERVAL ? second)", $throttleSettings['period']); + + $remainingDelay = ($attemptData['last'] + $throttleSettings['delay']) - time(); + + if ($attemptData['attempts'] > $throttleSettings['threshold'] && $remainingDelay > 0) { + $this->escort->logger->log("Possible token brute force attack, throttling for $remainingDelay seconds", Zend_Log::ERR); + + $this->addMessage($this->_('The server is currently busy, please wait a while and try again.')); + } else if ($form->isValid($_POST)) { $this->_forward('forward'); return; + } else { + if (isset($_POST[MUtil_Model::REQUEST_ID])) { + $this->db->insert( + 'gems__token_attempts', + array( + 'gta_id_token' => $_POST[MUtil_Model::REQUEST_ID], + 'gta_ip_address' => $this->getRequest()->getClientIp() + ) + ); + } } } elseif ($id = $this->_getParam(MUtil_Model::REQUEST_ID)) { $form->populate(array(MUtil_Model::REQUEST_ID => $id)); Modified: trunk/library/classes/Gems/Project/ProjectSettings.php =================================================================== --- trunk/library/classes/Gems/Project/ProjectSettings.php 2011-11-21 10:58:55 UTC (rev 250) +++ trunk/library/classes/Gems/Project/ProjectSettings.php 2011-11-21 11:22:10 UTC (rev 251) @@ -236,6 +236,30 @@ return $this->defaultSessionTimeout; } } + + /** + * Returns an array with throttling settings for the ask + * controller + * + * @return array + */ + public function getAskThrottleSettings() + { + // Check for the 'askThrottle' config section + if (!empty($this->askThrottle)) { + return $this->askThrottle; + } else { + // Set some sensible defaults + // Detection window: 15 minutes + // Threshold: 20 requests per minute + // Delay: 10 seconds + $throttleSettings = array( + 'period' => 15 * 60, + 'threshold' => 15 * 20, + 'delay' => 10 + ); + } + } /** * Returns the super admin name, if any This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 10:59:01
|
Revision: 250 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=250&view=rev Author: mennodekker Date: 2011-11-21 10:58:55 +0000 (Mon, 21 Nov 2011) Log Message: ----------- In a respondentTrack the getFieldData() method now returns an associative array of fieldcode->value pairs, alongside the old fieldId->value pairs Modified Paths: -------------- trunk/library/classes/Gems/Tracker/RespondentTrack.php Modified: trunk/library/classes/Gems/Tracker/RespondentTrack.php =================================================================== --- trunk/library/classes/Gems/Tracker/RespondentTrack.php 2011-11-21 10:57:14 UTC (rev 249) +++ trunk/library/classes/Gems/Tracker/RespondentTrack.php 2011-11-21 10:58:55 UTC (rev 250) @@ -120,7 +120,17 @@ private function _ensureFieldData($reload = false) { if ((null === $this->_fieldData) || $reload) { - $this->_fieldData = $this->getTrackEngine()->getFieldsData($this->_respTrackId); + $fieldData = $this->getTrackEngine()->getFieldsData($this->_respTrackId); + $fieldMap = $this->getTrackEngine()->getFields(); + + //Map the fielddata to the fieldcode + foreach($fieldData as $key=>$value) { + if (isset($fieldMap[$key])) { + $fieldData[$fieldMap[$key]] = $value; + } + } + + $this->_fieldData = $fieldData; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 10:57:23
|
Revision: 249 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=249&view=rev Author: michieltcs Date: 2011-11-21 10:57:14 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Inspired by r247 Revision Links: -------------- http://gemstracker.svn.sourceforge.net/gemstracker/?rev=247&view=rev Modified Paths: -------------- trunk/library/classes/Gems/User/UserLoader.php Modified: trunk/library/classes/Gems/User/UserLoader.php =================================================================== --- trunk/library/classes/Gems/User/UserLoader.php 2011-11-21 10:23:53 UTC (rev 248) +++ trunk/library/classes/Gems/User/UserLoader.php 2011-11-21 10:57:14 UTC (rev 249) @@ -115,8 +115,8 @@ if (! $this->session instanceof Zend_Session_Namespace) { $this->session = new Zend_Session_Namespace('gems.' . GEMS_PROJECT_NAME . '.session'); - $idleTimeout = ($this->project->session['idleTimeout'] ? $this->project->session['idleTimeout'] : 1800); - + $idleTimeout = $this->project->getSessionTimeout(); + $this->session->setExpirationSeconds($idleTimeout); $extras['session'] = $this->session; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 10:24:04
|
Revision: 248 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=248&view=rev Author: matijsdejong Date: 2011-11-21 10:23:53 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Moved login page while logged in to GemsEscort->routeShutdown() Modified Paths: -------------- trunk/library/classes/Gems/Default/IndexAction.php trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2011-11-21 10:18:22 UTC (rev 247) +++ trunk/library/classes/Gems/Default/IndexAction.php 2011-11-21 10:23:53 UTC (rev 248) @@ -263,17 +263,6 @@ */ public function loginAction() { - // If already logged in, try to redirect to the first allowed and visible menu item - // if that fails, try to reroute to respondent/index - if ($this->loader->getCurrentUser()->isActive()) { - if ($menuItem = $this->menu->findFirst(array('allowed' => true, 'visible' => true))) { - $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector'); - $redirector->gotoRoute($menuItem->toRouteUrl($this->getRequest())); - } else { - $this->_reroute(array('controller' => 'respondent', 'action'=>'index')); - } - } - $form = $this->_getLoginForm(); $request = $this->getRequest(); @@ -319,7 +308,7 @@ } else { //Now present the user with an error message $errors = $authResult->getMessages(); - $this->addMessage($errors); + $this->addMessage($errors); //Also log the error to the log table //when the project has logging enabled Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-21 10:18:22 UTC (rev 247) +++ trunk/library/classes/GemsEscort.php 2011-11-21 10:23:53 UTC (rev 248) @@ -1475,7 +1475,7 @@ } // Gems does not use index/index - if (('index' == $request->getControllerName()) && ('index' == $request->getActionName())) { + if (('index' == $request->getControllerName()) && (('index' == $request->getActionName()) || ('login' == $request->getActionName()))) { // Instead Gems routes to the first available menu item when this is the request target if (! $user->gotoStartPage($this->menu, $request)) { $this->setError( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 10:18:28
|
Revision: 247 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=247&view=rev Author: matijsdejong Date: 2011-11-21 10:18:22 +0000 (Mon, 21 Nov 2011) Log Message: ----------- The plan was to stop using these $this->project|session->variablenames. (Plus I got a warning as session did not exist.) Modified Paths: -------------- trunk/library/classes/Gems/Project/ProjectSettings.php trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/Gems/Project/ProjectSettings.php =================================================================== --- trunk/library/classes/Gems/Project/ProjectSettings.php 2011-11-21 09:54:34 UTC (rev 246) +++ trunk/library/classes/Gems/Project/ProjectSettings.php 2011-11-21 10:18:22 UTC (rev 247) @@ -47,6 +47,15 @@ class Gems_Project_ProjectSettings extends ArrayObject { /** + * The default session time out for this project in seconds. + * + * Can be overruled in sesssion.idleTimeout + * + * @var int + */ + protected $defaultSessionTimeout = 1800; + + /** * The minimum length for the password of a super admin * on a production server. * @@ -215,6 +224,20 @@ } /** + * Timeout for sessions in seconds. + * + * @return int + */ + public function getSessionTimeOut() + { + if (isset($this->session, $this->session['idleTimeout'])) { + return $this->session['idleTimeout']; + } else { + return $this->defaultSessionTimeout; + } + } + + /** * Returns the super admin name, if any * * @return string Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-21 09:54:34 UTC (rev 246) +++ trunk/library/classes/GemsEscort.php 2011-11-21 10:18:22 UTC (rev 247) @@ -58,7 +58,7 @@ private $_copyDestinations; private $_startFirebird; - + /** * The menu variable * @@ -89,7 +89,7 @@ $firebug = $application->getOption('firebug'); $this->_startFirebird = $firebug['log']; - + $sessionOptions['name'] = GEMS_PROJECT_NAME_UC . 'SESSID'; $sessionOptions['cookie_path'] = strtr(dirname($_SERVER['SCRIPT_NAME']), '\\', '/'); @@ -385,10 +385,11 @@ */ protected function _initSession() { + $session = new Zend_Session_Namespace('gems.' . GEMS_PROJECT_NAME . '.session'); - - $idleTimeout = ($this->project->session['idleTimeout'] ? $this->project->session['idleTimeout'] : 1800); - + + $idleTimeout = $this->project->getSessionTimeOut(); + $session->setExpirationSeconds($idleTimeout); if (! isset($session->user_role)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 09:54:43
|
Revision: 246 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=246&view=rev Author: michieltcs Date: 2011-11-21 09:54:34 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Refs #453 - add idleTimeout parameter Modified Paths: -------------- trunk/new_project/application/configs/project.ini Modified: trunk/new_project/application/configs/project.ini =================================================================== --- trunk/new_project/application/configs/project.ini 2011-11-21 09:53:10 UTC (rev 245) +++ trunk/new_project/application/configs/project.ini 2011-11-21 09:54:34 UTC (rev 246) @@ -40,6 +40,19 @@ account.delayFactor = 4 ;------------------------------------------------------- +; SESSION SECTION +; +; idleTimeout +; +; Lifetime of the session (determines the expiration of +; the session namespace(s)). +; If not set, defaults to 1800 seconds = 30 minutes. +; +;------------------------------------------------------- + +session.idleTimeout = 1800 + +;------------------------------------------------------- ; ASK DELAY SECTION ; ; askDelay This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 09:53:16
|
Revision: 245 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=245&view=rev Author: michieltcs Date: 2011-11-21 09:53:10 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Refs #453 - Move expiration setting to project configuration, add support in Gems_User_UserLoader Modified Paths: -------------- trunk/library/classes/Gems/User/UserLoader.php trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/Gems/User/UserLoader.php =================================================================== --- trunk/library/classes/Gems/User/UserLoader.php 2011-11-21 09:41:35 UTC (rev 244) +++ trunk/library/classes/Gems/User/UserLoader.php 2011-11-21 09:53:10 UTC (rev 245) @@ -114,6 +114,10 @@ // is removed from GemsEscort if (! $this->session instanceof Zend_Session_Namespace) { $this->session = new Zend_Session_Namespace('gems.' . GEMS_PROJECT_NAME . '.session'); + + $idleTimeout = ($this->project->session['idleTimeout'] ? $this->project->session['idleTimeout'] : 1800); + + $this->session->setExpirationSeconds($idleTimeout); $extras['session'] = $this->session; } Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-21 09:41:35 UTC (rev 244) +++ trunk/library/classes/GemsEscort.php 2011-11-21 09:53:10 UTC (rev 245) @@ -60,14 +60,6 @@ private $_startFirebird; /** - * Lifetime of the session (determines the expiration of the session cookie(s)) - * Defaults to 1800 seconds = 30 minutes, you override this in your own - * Escort class - * @var int - */ - protected $_sessionLifetime = 1800; - - /** * The menu variable * * @var Gems_Menu @@ -394,7 +386,10 @@ protected function _initSession() { $session = new Zend_Session_Namespace('gems.' . GEMS_PROJECT_NAME . '.session'); - $session->setExpirationSeconds($this->_sessionLifetime); + + $idleTimeout = ($this->project->session['idleTimeout'] ? $this->project->session['idleTimeout'] : 1800); + + $session->setExpirationSeconds($idleTimeout); if (! isset($session->user_role)) { $session->user_role = 'nologin'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 09:41:45
|
Revision: 244 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=244&view=rev Author: michieltcs Date: 2011-11-21 09:41:35 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Refs #453 - Do not call rememberMe() (this regenerates the session id), instead set an expiration time on the session namespace Modified Paths: -------------- trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-21 09:23:15 UTC (rev 243) +++ trunk/library/classes/GemsEscort.php 2011-11-21 09:41:35 UTC (rev 244) @@ -98,9 +98,6 @@ $firebug = $application->getOption('firebug'); $this->_startFirebird = $firebug['log']; - // expire the session after 30 minutes - Zend_Session::rememberMe($this->_sessionLifetime); - $sessionOptions['name'] = GEMS_PROJECT_NAME_UC . 'SESSID'; $sessionOptions['cookie_path'] = strtr(dirname($_SERVER['SCRIPT_NAME']), '\\', '/'); @@ -397,6 +394,7 @@ protected function _initSession() { $session = new Zend_Session_Namespace('gems.' . GEMS_PROJECT_NAME . '.session'); + $session->setExpirationSeconds($this->_sessionLifetime); if (! isset($session->user_role)) { $session->user_role = 'nologin'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-21 09:23:21
|
Revision: 243 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=243&view=rev Author: michieltcs Date: 2011-11-21 09:23:15 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Fix typo Modified Paths: -------------- trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-19 18:12:07 UTC (rev 242) +++ trunk/library/classes/GemsEscort.php 2011-11-21 09:23:15 UTC (rev 243) @@ -1345,7 +1345,7 @@ // fake POST if ($this->session->previousRequestMode == 'POST') { - $this->addMessage($this->_('Take note: your session has expired, your inputs where not saved. Please check the input data and try again')); + $this->addMessage($this->_('Take note: your session has expired, your inputs were not saved. Please check the input data and try again')); $_POST = $previousRequestParameters; $_SERVER['REQUEST_METHOD'] = $this->session->previousRequestMode; $this->session->previousRequestMode = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-19 18:12:13
|
Revision: 242 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=242&view=rev Author: michieltcs Date: 2011-11-19 18:12:07 +0000 (Sat, 19 Nov 2011) Log Message: ----------- IP address column should be varchar Modified Paths: -------------- trunk/library/configs/db/tables/gems__token_attempts.10.sql Modified: trunk/library/configs/db/tables/gems__token_attempts.10.sql =================================================================== --- trunk/library/configs/db/tables/gems__token_attempts.10.sql 2011-11-19 18:03:30 UTC (rev 241) +++ trunk/library/configs/db/tables/gems__token_attempts.10.sql 2011-11-19 18:12:07 UTC (rev 242) @@ -2,7 +2,7 @@ CREATE TABLE if not exists gems__token_attempts ( gta_id_attempt bigint unsigned not null auto_increment, gta_id_token varchar(9) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, - gta_ip_address int(11) unsigned not null, + gta_ip_address varchar(64) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, gta_datetime timestamp not null default current_timestamp, PRIMARY KEY (gta_id_attempt) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-19 18:03:37
|
Revision: 241 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=241&view=rev Author: michieltcs Date: 2011-11-19 18:03:30 +0000 (Sat, 19 Nov 2011) Log Message: ----------- Add default Modified Paths: -------------- trunk/library/configs/db/tables/gems__token_attempts.10.sql Modified: trunk/library/configs/db/tables/gems__token_attempts.10.sql =================================================================== --- trunk/library/configs/db/tables/gems__token_attempts.10.sql 2011-11-19 18:01:07 UTC (rev 240) +++ trunk/library/configs/db/tables/gems__token_attempts.10.sql 2011-11-19 18:03:30 UTC (rev 241) @@ -3,7 +3,7 @@ gta_id_attempt bigint unsigned not null auto_increment, gta_id_token varchar(9) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, gta_ip_address int(11) unsigned not null, - gta_datetime timestamp not null, + gta_datetime timestamp not null default current_timestamp, PRIMARY KEY (gta_id_attempt) ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-19 18:01:13
|
Revision: 240 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=240&view=rev Author: michieltcs Date: 2011-11-19 18:01:07 +0000 (Sat, 19 Nov 2011) Log Message: ----------- Fix typo Modified Paths: -------------- trunk/library/classes/Gems/Auth.php trunk/library/configs/db/patches.sql trunk/library/configs/db/tables/gems__user_login_attempts.10.sql Modified: trunk/library/classes/Gems/Auth.php =================================================================== --- trunk/library/classes/Gems/Auth.php 2011-11-19 17:59:24 UTC (rev 239) +++ trunk/library/classes/Gems/Auth.php 2011-11-19 18:01:07 UTC (rev 240) @@ -110,7 +110,7 @@ try { $login_name = $formValues['userlogin']; $organization = $formValues['organization']; - $sql = "SELECT gula_failed_logins, gula_last_failed FROM gems__user_login_attemps WHERE gula_login = ? AND gula_id_organization = ?"; + $sql = "SELECT gula_failed_logins, gula_last_failed FROM gems__user_login_attempts WHERE gula_login = ? AND gula_id_organization = ?"; $values = $this->db->fetchRow($sql, array($login_name, $organization)); if (! $values) { @@ -168,11 +168,11 @@ try { if (isset($values['gula_login'])) { - $this->db->insert('gems__user_login_attemps', $values); + $this->db->insert('gems__user_login_attempts', $values); } else { $where = $this->db->quoteInto('gula_login = ? AND ', $login_name); $where .= $this->db->quoteInto('gula_id_organization = ?', $organization); - $this->db->update('gems__user_login_attemps', $values, $where); + $this->db->update('gems__user_login_attempts', $values, $where); } } catch (Zend_Db_Exception $e) { // Fall through as this does not work if the database upgrade did not run Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2011-11-19 17:59:24 UTC (rev 239) +++ trunk/library/configs/db/patches.sql 2011-11-19 18:01:07 UTC (rev 240) @@ -249,7 +249,7 @@ AUTO_INCREMENT = 10001 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; -CREATE TABLE if not exists gems__user_login_attemps ( +CREATE TABLE if not exists gems__user_login_attempts ( gula_login varchar(30) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, gula_id_organization bigint not null references gems__organizations (gor_id_organization), Modified: trunk/library/configs/db/tables/gems__user_login_attempts.10.sql =================================================================== --- trunk/library/configs/db/tables/gems__user_login_attempts.10.sql 2011-11-19 17:59:24 UTC (rev 239) +++ trunk/library/configs/db/tables/gems__user_login_attempts.10.sql 2011-11-19 18:01:07 UTC (rev 240) @@ -1,7 +1,7 @@ -- Table for keeping track of fail;ed login attempts -- -CREATE TABLE if not exists gems__user_login_attemps ( +CREATE TABLE if not exists gems__user_login_attempts ( gula_login varchar(30) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, gula_id_organization bigint not null references gems__organizations (gor_id_organization), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-19 17:59:30
|
Revision: 239 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=239&view=rev Author: michieltcs Date: 2011-11-19 17:59:24 +0000 (Sat, 19 Nov 2011) Log Message: ----------- Add table definition to store (failed) token attempts Added Paths: ----------- trunk/library/configs/db/tables/gems__token_attempts.10.sql Added: trunk/library/configs/db/tables/gems__token_attempts.10.sql =================================================================== --- trunk/library/configs/db/tables/gems__token_attempts.10.sql (rev 0) +++ trunk/library/configs/db/tables/gems__token_attempts.10.sql 2011-11-19 17:59:24 UTC (rev 239) @@ -0,0 +1,13 @@ + +CREATE TABLE if not exists gems__token_attempts ( + gta_id_attempt bigint unsigned not null auto_increment, + gta_id_token varchar(9) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, + gta_ip_address int(11) unsigned not null, + gta_datetime timestamp not null, + + PRIMARY KEY (gta_id_attempt) + ) + ENGINE=InnoDB + AUTO_INCREMENT = 10000 + CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-18 17:08:35
|
Revision: 238 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=238&view=rev Author: matijsdejong Date: 2011-11-18 17:08:28 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Organization code is now used FIrst version of PasswordChecker.php, not yet integrated with working code. Modified Paths: -------------- trunk/library/classes/Gems/Default/OrganizationAction.php trunk/library/classes/Gems/Project/ProjectSettings.php trunk/library/classes/Gems/User/Organization.php trunk/library/classes/Gems/User/User.php trunk/library/classes/Gems/User/UserDefinitionAbstract.php trunk/library/classes/Gems/User/UserLoader.php Added Paths: ----------- trunk/library/classes/Gems/User/PasswordChecker.php Modified: trunk/library/classes/Gems/Default/OrganizationAction.php =================================================================== --- trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-18 15:11:59 UTC (rev 237) +++ trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-18 17:08:28 UTC (rev 238) @@ -159,6 +159,7 @@ $model->set('gor_name', 'description', 'ENGLISH please! Use translation file to translate.'); $model->set('gor_url', 'description', 'ENGLISH link preferred. Use translation file to translate.'); $model->set('gor_task', 'description', 'ENGLISH please! Use translation file to translate.'); + $model->set('gor_code', 'label', $this->_('Code name'), 'size', 10, 'description', $this->_('Only for programmers.')); } Gems_Model::setChangeFieldsByPrefix($model, 'gor'); Modified: trunk/library/classes/Gems/Project/ProjectSettings.php =================================================================== --- trunk/library/classes/Gems/Project/ProjectSettings.php 2011-11-18 15:11:59 UTC (rev 237) +++ trunk/library/classes/Gems/Project/ProjectSettings.php 2011-11-18 17:08:28 UTC (rev 238) @@ -91,6 +91,20 @@ $this->checkRequiredValues(); } + protected function _getPasswordRules(array $current, array $keys, array &$rules) + { + foreach ($current as $key => $value) { + if (is_array($value)) { + // Only act when this is in the set of key values + if (isset($keys[strtolower($key)])) { + $this->_getPasswordRules($value, $keys, $rules); + } + } else { + $rules[$key] = $value; + } + } + } + /** * This function checks for the required project settings. * @@ -181,6 +195,26 @@ } /** + * + * @param string $userDefinition + * @param string $role + * @return array + */ + public function getPasswordRules($userDefinition, $role) + { + $args = MUtil_Ra::flatten(func_get_args()); + $args = array_change_key_case(array_flip(array_filter($args))); + //MUtil_Echo::track($args); + + $rules = array(); + if (isset($this->passwords) && is_array($this->passwords)) { + $this->_getPasswordRules($this->passwords, $args, $rules); + } + + return $rules; + } + + /** * Returns the super admin name, if any * * @return string Modified: trunk/library/classes/Gems/User/Organization.php =================================================================== --- trunk/library/classes/Gems/User/Organization.php 2011-11-18 15:11:59 UTC (rev 237) +++ trunk/library/classes/Gems/User/Organization.php 2011-11-18 17:08:28 UTC (rev 238) @@ -154,6 +154,15 @@ return is_array($this->_organizationData) && parent::checkRegistryRequestsAnswers(); } + /** + * Get the style attribute. + * + * @return string + */ + public function getCode() + { + return $this->_organizationData['gor_code']; + } /** * Get the style attribute. Added: trunk/library/classes/Gems/User/PasswordChecker.php =================================================================== --- trunk/library/classes/Gems/User/PasswordChecker.php (rev 0) +++ trunk/library/classes/Gems/User/PasswordChecker.php 2011-11-18 17:08:28 UTC (rev 238) @@ -0,0 +1,225 @@ +<?php + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * @package Gems + * @subpackage User + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + */ + +/** + * + * + * @package Gems + * @subpackage User + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.5 + */ +class Gems_User_PasswordChecker extends MUtil_Registry_TargetAbstract +{ + /** + * + * @var array + */ + protected $_errors = array(); + + /** + * + * @var Gems_Project_ProjectSettings + */ + protected $project; + + /** + * + * @var Zend_Translate + */ + protected $translate; + + /** + * + * @var Gems_User_User $user + */ + protected $user; + + /** + * + * @param type $errorMsg + */ + protected function _addError($errorMsg) + { + $this->_errors[] = $errorMsg; + } + + + /** + * Test the password for minimum number of upper case characters. + * + * @param mixed $parameter + * @param string $password + */ + protected function capsCount($parameter, $password) + { + $len = intval($parameter); + $results = array(); + if (preg_match_all('/[A-Z]/', $password, $results) < $len) { + $this->_addError(sprintf( + $this->translate->plural('A password should contain at least one uppercase character.', 'A password should contain at least %d uppercase characters.', $len), + $len)); + } + } + + /** + * Test the password for minimum number of lower case characters. + * + * @param mixed $parameter + * @param string $password + */ + protected function lowerCount($parameter, $password) + { + $len = intval($parameter); + $results = array(); + if (preg_match_all('/[a-z]/', $password, $results) < $len) { + $this->_addError(sprintf( + $this->translate->plural('A password should contain at least one lowercase character.', 'A password should contain at least %d lowercase characters.', $len), + $len)); + } + } + + /** + * Test the password for minimum length. + * + * @param mixed $parameter + * @param string $password + */ + protected function minLength($parameter, $password) + { + $len = intval($parameter); + if (strlen($password) < $len) { + $this->_addError(sprintf($this->translate->_('A password should be at least %d characters long.'), $len)); + } + } + + /** + * Test the password for minimum number non letter characters. + * + * @param mixed $parameter + * @param string $password + */ + protected function notAlphaCount($parameter, $password) + { + $len = intval($parameter); + $results = array(); + $count = preg_match_all('/[A-Za-z]/', $password, $results); + if (strlen($password) - $count < $len) { + $this->_addError(sprintf( + $this->translate->plural('A password should contain at least one not alphabetic character.', 'A password should contain at least %d not alphabetic characters.', $len), + $len)); + } + } + + /** + * Test the password for minimum number not alphanumeric characters. + * + * @param mixed $parameter + * @param string $password + */ + protected function notAlphaNumCount($parameter, $password) + { + $len = intval($parameter); + $results = array(); + $count = preg_match_all('/[A-Za-z]/', $password, $results); + if (strlen($password) - $count < $len) { + $this->_addError(sprintf( + $this->translate->plural('A password should contain at least one not alphanumeric character.', 'A password should contain at least %d not alphanumeric characters.', $len), + $len)); + } + } + + /** + * The password should not contain the name of the user or the login name. + * + * @param mixed $parameter + * @param string $password + */ + protected function notTheName($parameter, $password) + { + $on = $parameter != 0; + if ($on) { + $lpwd = strtolower($password); + + if (false !== strpos($lpwd, strtolower($this->user->getLoginName()))) { + $this->_addError($this->translate->_('A password should not contain the login name.')); + } + } + } + + /** + * Test the password for minimum number of numeric characters. + * + * @param mixed $parameter + * @param string $password + */ + protected function numCount($parameter, $password) + { + $len = intval($parameter); + $results = array(); + if (preg_match_all('/[0-9]/', $password, $results) < $len) { + $this->_addError(sprintf( + $this->translate->plural('A password should contain at least one number.', 'A password should contain at least %d numbers.', $len), + $len)); + } + } + + /** + * Check for password weakness. + * + * @param Gems_User_User $user The user for e.g. name checks + * @param string $password + * @return mixed String or array of strings containing warning messages + */ + public function reportPasswordWeakness(Gems_User_User $user, $password) + { + $this->_errors = array(); + $this->user = $user; + + $rules = $this->project->getPasswordRules($user->getOrganizationCode(), $user->getRoles()); + + // MUtil_Echo::track($rules); + foreach ($rules as $rule => $parameter) { + if (method_exists($this, $rule)) { + $this->$rule($parameter, $password); + } + } + + return $this->_errors; + } +} Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-18 15:11:59 UTC (rev 237) +++ trunk/library/classes/Gems/User/User.php 2011-11-18 17:08:28 UTC (rev 238) @@ -60,6 +60,12 @@ /** * + * @var MUtil_Acl + */ + protected $acl; + + /** + * * @var Gems_User_UserDefinitionInterface */ protected $definition; @@ -202,7 +208,7 @@ $authResult = $auth->authenticate($adapter, $formValues); $this->_authResult = $authResult; - + return $authResult; } @@ -349,6 +355,18 @@ } /** + * Gets the (optional) organization code. + * + * @return string + */ + public function getOrganizationCode() + { + $organizationId = $this->getOrganizationId(); + + return $this->userLoader->getOrganization($organizationId)->getCode(); + } + + /** * Return a password reset key * * @return string @@ -369,6 +387,16 @@ } /** + * Returns the current user role. + * + * @return string + */ + public function getRoles() + { + return $this->acl->getRoleAndParents($this->getRole()); + } + + /** * Returns the user id, that identifies this user within this installation. * * One user id might be connected to multiple logins for multiple organizations. Modified: trunk/library/classes/Gems/User/UserDefinitionAbstract.php =================================================================== --- trunk/library/classes/Gems/User/UserDefinitionAbstract.php 2011-11-18 15:11:59 UTC (rev 237) +++ trunk/library/classes/Gems/User/UserDefinitionAbstract.php 2011-11-18 17:08:28 UTC (rev 238) @@ -111,17 +111,6 @@ } /** - * Check for password weakness. - * - * @param string $password - * @return mixed String or array of strings containing warning messages - */ - public function isPasswordWeak($password) - { - - } - - /** * Set the password, if allowed for this user type. * * @param Gems_User_User $user The user whose password to change Modified: trunk/library/classes/Gems/User/UserLoader.php =================================================================== --- trunk/library/classes/Gems/User/UserLoader.php 2011-11-18 15:11:59 UTC (rev 237) +++ trunk/library/classes/Gems/User/UserLoader.php 2011-11-18 17:08:28 UTC (rev 238) @@ -277,6 +277,20 @@ } /** + * Check for password weakness. + * + * @param Gems_User_User $user The user for e.g. name checks + * @param string $password + * @return mixed String or array of strings containing warning messages + */ + public function reportPasswordWeakness(Gems_User_User $user, $password) + { + $checker = $this->_getClass('passwordChecker'); + + return $checker->reportPasswordWeakness($user, $password); + } + + /** * Sets a new user as the current user. * * @param Gems_User_User $user This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-18 15:12:05
|
Revision: 237 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=237&view=rev Author: michieltcs Date: 2011-11-18 15:11:59 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Refs #453 - set default session timeout to 30 minutes Modified Paths: -------------- trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-18 14:18:45 UTC (rev 236) +++ trunk/library/classes/GemsEscort.php 2011-11-18 15:11:59 UTC (rev 237) @@ -58,6 +58,14 @@ private $_copyDestinations; private $_startFirebird; + + /** + * Lifetime of the session (determines the expiration of the session cookie(s)) + * Defaults to 1800 seconds = 30 minutes, you override this in your own + * Escort class + * @var int + */ + protected $_sessionLifetime = 1800; /** * The menu variable @@ -89,6 +97,9 @@ $firebug = $application->getOption('firebug'); $this->_startFirebird = $firebug['log']; + + // expire the session after 30 minutes + Zend_Session::rememberMe($this->_sessionLifetime); $sessionOptions['name'] = GEMS_PROJECT_NAME_UC . 'SESSID'; $sessionOptions['cookie_path'] = strtr(dirname($_SERVER['SCRIPT_NAME']), '\\', '/'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-18 14:18:51
|
Revision: 236 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=236&view=rev Author: mennodekker Date: 2011-11-18 14:18:45 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Fix for problem with subforms and ->getValues() Modified Paths: -------------- trunk/library/classes/Gems/TabForm.php Modified: trunk/library/classes/Gems/TabForm.php =================================================================== --- trunk/library/classes/Gems/TabForm.php 2011-11-18 13:24:26 UTC (rev 235) +++ trunk/library/classes/Gems/TabForm.php 2011-11-18 14:18:45 UTC (rev 236) @@ -329,4 +329,25 @@ return $form; } + + /** + * Retrieve all form element values + * + * Fix for ZF error where subform values will be pushed into an array with key: formname + * for compatibility both are now in the result array + * + * @param bool $suppressArrayNotation + * @return array + */ + public function getValues($suppressArrayNotation = false) + { + $values = parent::getValues($suppressArrayNotation); + + foreach ($this->getSubForms() as $key => $subForm) { + $values[$key]; + $values = $this->_array_replace_recursive($values, $values[$key]); + } + + return $values; + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-18 13:24:32
|
Revision: 235 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=235&view=rev Author: mennodekker Date: 2011-11-18 13:24:26 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Fixed tabsubform to allow ->h4('title') calls for backward compatibility Modified Paths: -------------- trunk/library/classes/Gems/Form/TabSubForm.php Modified: trunk/library/classes/Gems/Form/TabSubForm.php =================================================================== --- trunk/library/classes/Gems/Form/TabSubForm.php 2011-11-18 11:26:00 UTC (rev 234) +++ trunk/library/classes/Gems/Form/TabSubForm.php 2011-11-18 13:24:26 UTC (rev 235) @@ -35,7 +35,39 @@ * @package Gems * @subpackage Form */ -class Gems_Form_TabSubForm extends Gems_Form_TableForm { +class Gems_Form_TabSubForm extends Gems_Form_TableForm +{ + /** + * For backward compatibility, allow MUtil_Html calls to set or append to the title + * + * @param type $method + * @param type $args + * @return Gems_Form_TabSubForm + */ + public function __call($method, $args) + { + if ('render' == substr($method, 0, 6)) { + return parent::__call($method, $args); + } + + $elem = MUtil_Html::createArray($method, $args); + + $value = $this->getAttrib('title'); + + $value .= $elem->render($this->getView()); + + $this->setAttrib('title', $value); + + //As the decorator might have been added already, update it also + $decorator = $this->getDecorator('TabPane'); + $options = $decorator->getOption('jQueryParams'); + + $options['title'] = strip_tags($value); + + $decorator->setOption('jQueryParams', $options); + + return $this; + } /** * Load default decorators This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-18 11:26:06
|
Revision: 234 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=234&view=rev Author: matijsdejong Date: 2011-11-18 11:26:00 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Bug in handling whenNew items. Made code more readable. Modified Paths: -------------- trunk/library/classes/Gems/Auth.php trunk/library/classes/MUtil/Model/ModelAbstract.php Modified: trunk/library/classes/Gems/Auth.php =================================================================== --- trunk/library/classes/Gems/Auth.php 2011-11-18 09:34:55 UTC (rev 233) +++ trunk/library/classes/Gems/Auth.php 2011-11-18 11:26:00 UTC (rev 234) @@ -93,7 +93,8 @@ private function _error($code, $value1 = null, $value2 = null) { $messages = func_get_args(); - array_splice($messages, 0, 1, $this->_messageTemplates[$code]); + // array_splice($messages, 0, 1, $this->_messageTemplates[$code]); + $messages[0] = $this->_messageTemplates[$code]; return new Zend_Auth_Result($code, null, (array) $messages); } Modified: trunk/library/classes/MUtil/Model/ModelAbstract.php =================================================================== --- trunk/library/classes/MUtil/Model/ModelAbstract.php 2011-11-18 09:34:55 UTC (rev 233) +++ trunk/library/classes/MUtil/Model/ModelAbstract.php 2011-11-18 11:26:00 UTC (rev 234) @@ -660,11 +660,11 @@ { if ($call = $this->get($name, self::SAVE_TRANSFORMER)) { - if (is_callable($call)) { - $value = call_user_func($call, $value, $new, $name, $context); - } else { - $value = $call; - } + if (is_callable($call)) { + $value = call_user_func($call, $value, $new, $name, $context); + } else { + $value = $call; + } } return $value; @@ -812,7 +812,7 @@ if ($test = $this->get($name, self::SAVE_WHEN_TEST)) { if (is_callable($test)) { - return call_user_func($test, $name, $value, $new); + return call_user_func($test, $value, $new, $name, $context); } return $test; @@ -1263,7 +1263,7 @@ public function setSaveWhenNew($name) { $this->setAutoSave($name); - return $this->setSaveWhen($name, array(__CLASS__, 'whenNotNew')); + return $this->setSaveWhen($name, array(__CLASS__, 'whenNew')); } /** @@ -1318,9 +1318,9 @@ * @param array $context Optional, the other values being saved * @return boolean */ - public static function whenNotNew($value, $isNew = false, $name = null, array $context = array()) + public static function whenNew($value, $isNew = false, $name = null, array $context = array()) { - return $new; + return $isNew; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-18 09:35:01
|
Revision: 233 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=233&view=rev Author: mennodekker Date: 2011-11-18 09:34:55 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Minor improvement for file cache Invalidate cache when patches have been executed Modified Paths: -------------- trunk/library/classes/Gems/Default/DatabaseAction.php trunk/library/classes/Gems/Upgrades.php trunk/library/classes/Gems/UpgradesAbstract.php trunk/library/classes/GemsEscort.php Modified: trunk/library/classes/Gems/Default/DatabaseAction.php =================================================================== --- trunk/library/classes/Gems/Default/DatabaseAction.php 2011-11-18 09:11:12 UTC (rev 232) +++ trunk/library/classes/Gems/Default/DatabaseAction.php 2011-11-18 09:34:55 UTC (rev 233) @@ -352,6 +352,14 @@ $form->getElement('db_level')->setValue($data['db_level']); $this->addMessage(sprintf($this->_('%d patch(es) executed.'), $changed)); + + //As a lot of cache depends on the database, it is best to clean the cache now + //since import tables might have changed + $cache = $this->escort->cache; + if ($cache instanceof Zend_Cache_Core) { + $cache->clean(); + $this->addMessage($this->_('Cache cleaned')); + } } $tableSql = sprintf( Modified: trunk/library/classes/Gems/Upgrades.php =================================================================== --- trunk/library/classes/Gems/Upgrades.php 2011-11-18 09:11:12 UTC (rev 232) +++ trunk/library/classes/Gems/Upgrades.php 2011-11-18 09:34:55 UTC (rev 233) @@ -66,6 +66,9 @@ public function Upgrade143to15() { $this->patcher->executePatch(42); + + $this->invalidateCache(); + return true; } } \ No newline at end of file Modified: trunk/library/classes/Gems/UpgradesAbstract.php =================================================================== --- trunk/library/classes/Gems/UpgradesAbstract.php 2011-11-18 09:11:12 UTC (rev 232) +++ trunk/library/classes/Gems/UpgradesAbstract.php 2011-11-18 09:34:55 UTC (rev 233) @@ -326,6 +326,19 @@ } /** + * Convenience method for cleaning the cache as this is often needed during + * upgrades + */ + public function invalidateCache() + { + $cache = $this->escort->cache; + if ($cache instanceof Zend_Cache_Core) { + $cache->clean(); + $this->addMessage($this->_('Cache cleaned')); + } + } + + /** * Register an upgrade in the stack, it can be executed by using $this->execute * * Index and context are optional and will be generated when omitted. For the Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-18 09:11:12 UTC (rev 232) +++ trunk/library/classes/GemsEscort.php 2011-11-18 09:34:55 UTC (rev 233) @@ -169,8 +169,14 @@ } if ($exists) { + /** + * automatic_cleaning_factor disables automatic cleaning of the cache and should get rid of + * random delays on heavy traffic sites with File cache. Apc does + * not support automatic cleaning. + */ $cacheFrontendOptions = array('automatic_serialization' => true, - 'cache_id_prefix' => GEMS_PROJECT_NAME . '_'); + 'cache_id_prefix' => GEMS_PROJECT_NAME . '_', + 'automatic_cleaning_factor' => 0); $cache = Zend_Cache::factory('Core', $cacheBackend, $cacheFrontendOptions, $cacheBackendOptions); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-18 09:11:19
|
Revision: 232 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=232&view=rev Author: mennodekker Date: 2011-11-18 09:11:12 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Fixed #42 - Failed logins should be logged Added extra info to the LogViewer in the detailed (show) action Modified Paths: -------------- trunk/library/classes/Gems/AccessLog.php trunk/library/classes/Gems/Default/IndexAction.php trunk/library/classes/Gems/Default/LogAction.php trunk/library/configs/db/patches.sql Modified: trunk/library/classes/Gems/AccessLog.php =================================================================== --- trunk/library/classes/Gems/AccessLog.php 2011-11-17 17:19:37 UTC (rev 231) +++ trunk/library/classes/Gems/AccessLog.php 2011-11-18 09:11:12 UTC (rev 232) @@ -1,39 +1,39 @@ <?php - -/** - * Copyright (c) 2011, Erasmus MC - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Erasmus MC nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * * @version $Id$ * @package Gems * @subpackage AccessLog * @copyright Copyright (c) 2011 Erasmus MC * @license New BSD License */ - + /** * Logging class to log access to certaint controller/actions * @@ -177,7 +177,7 @@ try { //When project escort doesn't implement the log interface, we disable logging if (!(GemsEscort::getInstance() instanceof Gems_Project_Log_LogRespondentAccessInterface) - || ! isset($this->_userInfo->user_id)) { + || (!isset($this->_userInfo->user_id) && $force === false ) ) { return $this; } @@ -191,12 +191,12 @@ $values['glua_to'] = $respondentId; $values['glua_message'] = $message; - $values['glua_by'] = $this->_userInfo->user_id; - $values['glua_organization'] = $this->_userInfo->user_organization_id; + $values['glua_by'] = $this->_userInfo->user_id ? $this->_userInfo->user_id : 0; + $values['glua_organization'] = $this->_userInfo->user_organization_id ? $this->_userInfo->user_organization_id : 0; $values['glua_action'] = $this->getActionId($action); $values['glua_role'] = $this->_userInfo->user_role; $values['glua_created'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); - + if ($request instanceof Zend_Controller_Request_Http) { $values['glua_remote_ip'] = $request->getClientIp(); } else { Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2011-11-17 17:19:37 UTC (rev 231) +++ trunk/library/classes/Gems/Default/IndexAction.php 2011-11-18 09:11:12 UTC (rev 232) @@ -317,8 +317,15 @@ } return; } else { + //Now present the user with an error message $errors = $authResult->getMessages(); - $this->addMessage($errors); + $this->addMessage($errors); + + //Also log the error to the log table + //when the project has logging enabled + $logErrors = join(' - ', $errors); + $log = Gems_AccessLog::getLog(); + $log->log('loginFail', $this->getRequest(), sprintf('Failed login for : %s (%s) - %s', $formValues['userlogin'], $formValues['organization'], $logErrors), null, true); } } } Modified: trunk/library/classes/Gems/Default/LogAction.php =================================================================== --- trunk/library/classes/Gems/Default/LogAction.php 2011-11-17 17:19:37 UTC (rev 231) +++ trunk/library/classes/Gems/Default/LogAction.php 2011-11-18 09:11:12 UTC (rev 232) @@ -166,6 +166,11 @@ $model->set('staff_name', 'label', $this->_('Staff')); $model->set('respondent_name', 'label', $this->_('Respondent')); + if ($detailed) { + $model->set('glua_role', 'label', $this->_('Role')); + $model->set('glua_remote_ip', 'label', $this->_('IP address')); + } + return $model; } Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2011-11-17 17:19:37 UTC (rev 231) +++ trunk/library/configs/db/patches.sql 2011-11-18 09:11:12 UTC (rev 232) @@ -319,3 +319,7 @@ ALTER TABLE `gems__organizations` ADD gor_accessible_by text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null AFTER gor_task, ADD gor_has_patients boolean not null default 1 AFTER gor_iso_lang, ADD gor_add_patients boolean not null default 1 AFTER gor_has_patients; + +-- PATCH: Log failed logins +INSERT INTO `zsd`.`gems__log_actions` (`glac_id_action`, `glac_name`, `glac_change`, `glac_log`, `glac_created`) + VALUES (NULL , 'loginFail', '0', '1', CURRENT_TIMESTAMP); \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-17 17:19:43
|
Revision: 231 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=231&view=rev Author: matijsdejong Date: 2011-11-17 17:19:37 +0000 (Thu, 17 Nov 2011) Log Message: ----------- Added validation to Round editor Started on password weakness check Updated documentation on Pdf Modified Paths: -------------- trunk/library/classes/Gems/Pdf.php trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php trunk/library/classes/Gems/User/UserDefinitionAbstract.php Modified: trunk/library/classes/Gems/Pdf.php =================================================================== --- trunk/library/classes/Gems/Pdf.php 2011-11-17 16:19:26 UTC (rev 230) +++ trunk/library/classes/Gems/Pdf.php 2011-11-17 17:19:37 UTC (rev 231) @@ -26,24 +26,24 @@ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** - * File description of Pdf * - * @author Matijs de Jong <mj...@ma...> - * @since 1.1 - * @version 1.1 - * @package Gems + * + * @package Gems * @subpackage Pdf + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id$ */ /** - * Class description of Pdf + * Gems standaard Pdf utility functions * - * @author Matijs de Jong <mj...@ma...> - * @package Gems + * @package Gems * @subpackage PDf + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.0 */ class Gems_Pdf extends Gems_Registry_TargetAbstract { Modified: trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php =================================================================== --- trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php 2011-11-17 16:19:26 UTC (rev 230) +++ trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php 2011-11-17 17:19:37 UTC (rev 231) @@ -532,7 +532,7 @@ return $elements; } - + /** * Returns an associative array of the fields in this track * @@ -541,13 +541,13 @@ public function getFields() { $this->_ensureTrackFields(); - + $fields = array(); - + foreach ($this->_trackFields as $field) { $fields[$field['gtf_id_field']] = $field['gtf_field_name']; } - + return $fields; } @@ -703,7 +703,7 @@ } $model->set('gro_id_survey', 'label', $this->_('Survey'), 'multiOptions', $this->util->getTrackData()->getAllSurveys()); - $model->set('gro_id_order', 'label', $this->_('Order'), 'default', 10); + $model->set('gro_id_order', 'label', $this->_('Order'), 'default', 10, 'validators[]', $model->createUniqueValidator(array('gro_id_order', 'gro_id_track'))); $model->set('gro_round_description', 'label', $this->_('Description'), 'size', '30'); //, 'minlength', 4, 'required', true); $model->set('gro_changed_event', 'label', $this->_('After change'), 'multiOptions', $this->events->listRoundChangedEvents()); $model->set('gro_active', 'label', $this->_('Active'), 'multiOptions', $this->util->getTranslated()->getYesNo(), 'elementClass', 'checkbox'); Modified: trunk/library/classes/Gems/User/UserDefinitionAbstract.php =================================================================== --- trunk/library/classes/Gems/User/UserDefinitionAbstract.php 2011-11-17 16:19:26 UTC (rev 230) +++ trunk/library/classes/Gems/User/UserDefinitionAbstract.php 2011-11-17 17:19:37 UTC (rev 231) @@ -111,6 +111,17 @@ } /** + * Check for password weakness. + * + * @param string $password + * @return mixed String or array of strings containing warning messages + */ + public function isPasswordWeak($password) + { + + } + + /** * Set the password, if allowed for this user type. * * @param Gems_User_User $user The user whose password to change This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |