]> gitweb.factorcode.org Git - factor.git/commitdiff
websites.concatenative: add a recaptcha to the pastebin
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 11 Mar 2010 06:14:16 +0000 (19:14 +1300)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Thu, 11 Mar 2010 06:14:16 +0000 (19:14 +1300)
extra/webapps/pastebin/new-paste.xml
extra/webapps/pastebin/paste.xml
extra/webapps/pastebin/pastebin.factor
extra/websites/concatenative/concatenative.factor

index 9866c8819a656352f55bcac8fbdf86e542370e74..b202a19a0a3df7c3e063037d9f09bddcfeda2cc1 100644 (file)
                        <tr><th class="field-label">Author: </th><td><t:field t:name="author" /></td></tr>
                        <tr><th class="field-label">Mode: </th><td><t:choice t:name="mode" t:choices="modes" /></td></tr>
                        <tr><th class="field-label big-field-label">Body: </th><td><t:textarea t:name="contents" t:rows="20" t:cols="60" /></td></tr>
-                       <tr><th class="field-label">Captcha: </th><td><t:field t:name="captcha" /></td></tr>
-                       <tr>
-                       <td></td>
-                       <td>Leave the captcha blank. Spam-bots will fill it indiscriminantly, so their attempts to register will be blocked.</td>
-                       </tr>
+                       <tr><td colspan="2"><t:recaptcha /></td></tr>
                </table>
 
                <p> <button type="submit">Submit</button> </p>
index 6e1cb53664df5227c8a01b6ea070ad7354f07396..d88e66450cf26af3348d9c0359265f70efdd3ef4 100644 (file)
                                <tr><th class="field-label">Author: </th><td><t:field t:name="author" /></td></tr>
                                <tr><th class="field-label">Mode: </th><td><t:choice t:name="mode" t:choices="modes" /></td></tr>
                                <tr><th class="field-label big-field-label">Body: </th><td><t:textarea t:name="contents" t:rows="20" t:cols="60" /></td></tr>
-                               <tr><th class="field-label">Captcha: </th><td><t:field t:name="captcha" /></td></tr>
-                               <tr>
-                               <td></td>
-                               <td>Leave the captcha blank. Spam-bots will fill it indiscriminantly, so their attempts to register will be blocked.</td>
-                               </tr>
+                               <tr><td colspan="2"><t:recaptcha /></td></tr>
                        </table>
 
                        <p> <button type="submit">Done</button> </p>
index 48e6ed030bc452f5da3f953d1bf4ab4808e96f53..684f6f0784bfa62a515c11e0008b0b1956e925a8 100644 (file)
@@ -1,4 +1,4 @@
-! Copyright (C) 2007, 2008 Slava Pestov
+! Copyright (C) 2007, 2010 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: namespaces assocs sorting sequences kernel accessors
 hashtables db.types db.tuples db combinators
@@ -17,7 +17,9 @@ furnace.redirection
 furnace.auth
 furnace.auth.login
 furnace.boilerplate
-furnace.syndication ;
+furnace.recaptcha
+furnace.syndication
+furnace.conversations ;
 IN: webapps.pastebin
 
 TUPLE: pastebin < dispatcher ;
@@ -156,8 +158,11 @@ M: annotation entity-url
         { "author" [ v-one-line ] }
         { "mode" [ v-mode ] }
         { "contents" [ v-required ] }
-        { "captcha" [ v-captcha ] }
-    } validate-params ;
+    } validate-params
+
+    begin-conversation
+    validate-recaptcha
+    recaptcha-valid? cget [ validation-failed ] unless ;
 
 : deposit-entity-slots ( tuple -- )
     now >>date
index 92a4942fe65563ff79476e20a288895dc71d353c..efa4c4b6354530f1e540532a292535e58777d2ed 100644 (file)
@@ -19,6 +19,7 @@ furnace.auth.features.registration
 furnace.auth.features.deactivate-user
 furnace.boilerplate
 furnace.redirection
+furnace.recaptcha
 webapps.pastebin
 webapps.planet
 webapps.wiki
@@ -54,6 +55,12 @@ TUPLE: factor-website < dispatcher ;
         allow-edit-profile
         allow-deactivation ;
 
+: <factor-recaptcha> ( responder -- responder' )
+    <recaptcha>
+        "concatenative.org" >>domain
+        "6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>public-key
+        "6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>private-key ;
+
 : <factor-website> ( -- responder )
     factor-website new-dispatcher
         URL" /wiki/view/Front Page" <redirect-responder> "" add-responder ;
@@ -77,7 +84,7 @@ SYMBOL: dh-file
     <factor-website>
         <wiki> <login-config> <factor-boilerplate> "wiki" add-responder
         <user-admin> <login-config> <factor-boilerplate> "user-admin" add-responder
-        <pastebin> <login-config> <factor-boilerplate> "pastebin" add-responder
+        <pastebin> <factor-recaptcha> <login-config> <factor-boilerplate> "pastebin" add-responder
         <planet> <login-config> <factor-boilerplate> "planet" add-responder
         <mason-app> <login-config> "mason" add-responder
         "/tmp/docs/" <help-webapp> "docs" add-responder
@@ -96,7 +103,7 @@ SYMBOL: dh-file
             <wiki> "wiki" add-responder
             <user-admin> "user-admin" add-responder
         <login-config> <factor-boilerplate> test-db <alloy> "concatenative.org" add-responder
-        <pastebin> <login-config> <factor-boilerplate> test-db <alloy> "paste.factorcode.org" add-responder
+        <pastebin> <factor-recaptcha> <login-config> <factor-boilerplate> test-db <alloy> "paste.factorcode.org" add-responder
         <planet> <login-config> <factor-boilerplate> test-db <alloy> "planet.factorcode.org" add-responder
         <mason-app> <login-config> test-db <alloy> "builds.factorcode.org" add-responder
         home "docs" append-path <help-webapp> "docs.factorcode.org" add-responder