Commit 4aceccc6428101afa7d97c37511b92056c18d1b0

Authored by Evandro Junior
1 parent 87b669b8

Separation from plugin

plugins/serpro_captcha/Gemfile
@@ -1 +0,0 @@ @@ -1 +0,0 @@
1 -gem 'webmock'  
plugins/serpro_captcha/README.md
plugins/serpro_captcha/controllers/serpro_captcha_plugin_admin_controller.rb
@@ -1,17 +0,0 @@ @@ -1,17 +0,0 @@
1 -class SerproCaptchaPluginAdminController < PluginAdminController  
2 -  
3 - append_view_path File.join(File.dirname(__FILE__) + '/../views')  
4 -  
5 - def index  
6 - end  
7 -  
8 - def update  
9 - if @environment.update_attributes(params[:environment])  
10 - session[:notice] = _('Captcha configuration updated successfully.')  
11 - else  
12 - session[:notice] = _('Captcha configuration could not be saved.')  
13 - end  
14 - render :action => 'index'  
15 - end  
16 -  
17 -end  
plugins/serpro_captcha/fixtures/ldap.yml.dist
@@ -1,15 +0,0 @@ @@ -1,15 +0,0 @@
1 -server:  
2 - host: "127.0.0.1"  
3 - port: 389  
4 - account: "uid=ldap_user,,ou=person,dc=noosfero,dc=org"  
5 - account_password: "ldap_pass"  
6 - base_dn: "dc=noosfero,dc=org"  
7 - attr_login: "uid"  
8 - attr_fullname: "cn"  
9 - attr_mail: "mail"  
10 - onthefly_register: true  
11 - filter: ""  
12 - tls: false  
13 -user:  
14 - login: 'valid_ldap_login'  
15 - password: 'valid_ldap_password'  
plugins/serpro_captcha/lib/ext/environment.rb
@@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
1 -require_dependency 'environment'  
2 -  
3 -class Environment  
4 -  
5 - #Captcha settings  
6 - settings_items :serpro_captcha_plugin, :type => ActiveSupport::HashWithIndifferentAccess, :default => {}  
7 -  
8 -# settings_items :verify_uri, :type => :string, :default => 'http://captcha.servicoscorporativos.serpro.gov.br/captchavalidar/1.0.0/validar'  
9 -# settings_items :serpro_client_id, :type => :string, :default => 'fdbcdc7a0b754ee7ae9d865fda740f17'  
10 -  
11 - attr_accessible :serpro_captcha_plugin_attributes, :serpro_captcha_verify_uri, :serpro_captcha_client_id  
12 -  
13 - def serpro_captcha_plugin_attributes  
14 - self.serpro_captcha_plugin || {}  
15 - end  
16 -  
17 - def serpro_captcha_verify_uri= verify_uri  
18 - self.serpro_captcha_plugin = {} if self.serpro_captcha_plugin.blank?  
19 - self.serpro_captcha_plugin['serpro_captcha_verify_uri'] = verify_uri  
20 - end  
21 -  
22 - def serpro_captcha_verify_uri  
23 - self.serpro_captcha_plugin['serpro_captcha_verify_uri']  
24 - end  
25 -  
26 - def serpro_captcha_client_id= client_id  
27 - self.serpro_captcha_plugin = {} if self.serpro_captcha_plugin.blank?  
28 - self.serpro_captcha_plugin['serpro_captcha_client_id'] = client_id  
29 - end  
30 -  
31 - def serpro_captcha_client_id  
32 - self.serpro_captcha_plugin['serpro_captcha_client_id']  
33 - end  
34 -  
35 -end  
plugins/serpro_captcha/lib/serpro_captcha_plugin.rb
@@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
1 -class SerproCaptchaPlugin < Noosfero::Plugin  
2 -  
3 - def self.plugin_name  
4 - _('Serpro\'s captcha plugin')  
5 - end  
6 -  
7 - def self.plugin_description  
8 - _("Provides a plugin to Serpro's captcha infrastructure.")  
9 - end  
10 -  
11 - def self.api_mount_points  
12 - [SerproCaptchaPlugin::API ]  
13 - end  
14 -  
15 - def test_captcha(remote_ip, params, environment)  
16 - scv = SerproCaptchaVerification.new  
17 - return scv.verify_serpro_captcha(environment.serpro_captcha_client_id, params[:txtToken_captcha_serpro_gov_br], params[:captcha_text], environment.serpro_captcha_verify_uri)  
18 - end  
19 -  
20 -end  
plugins/serpro_captcha/lib/serpro_captcha_verification.rb
@@ -1,31 +0,0 @@ @@ -1,31 +0,0 @@
1 -class SerproCaptchaVerification  
2 -  
3 - # return true or a hash with the error  
4 - # :user_message, :status, :log_message, :javascript_console_message  
5 - def verify_serpro_captcha(client_id, token, captcha_text, verify_uri)  
6 - msg_icve = _('Internal captcha validation error')  
7 - msg_esca = 'Environment serpro_captcha_plugin_attributes'  
8 - return hash_error(msg_icve, 500, nil, "#{msg_esca} verify_uri not defined") if verify_uri.nil?  
9 - return hash_error(msg_icve, 500, nil, "#{msg_esca} client_id not defined") if client_id.nil?  
10 - return hash_error(_("Error processing token validation"), 500, nil, _("Missing Serpro's Captcha token")) unless token  
11 - return hash_error(_('Captcha text has not been filled'), 403) unless captcha_text  
12 - uri = URI(verify_uri)  
13 - http = Net::HTTP.new(uri.host, uri.port)  
14 - request = Net::HTTP::Post.new(uri.path)  
15 - verify_string = "#{client_id}&#{token}&#{captcha_text}"  
16 - request.body = verify_string  
17 - body = http.request(request).body  
18 - return true if body == '1'  
19 - return hash_error(_("Internal captcha validation error"), 500, body, "Unable to reach Serpro's Captcha validation service") if body == "Activity timed out"  
20 - return hash_error(_("Wrong captcha text, please try again"), 403) if body == '0'  
21 - return hash_error(_("Serpro's captcha token not found"), 500) if body == '2'  
22 - return hash_error(_("No data sent to validation server or other serious problem"), 500) if body == -1  
23 - #Catches all errors at the end  
24 - return hash_error(_("Internal captcha validation error"), 500, nil, "Error validating Serpro's captcha service returned: #{body}")  
25 - end  
26 -  
27 - def hash_error(user_message, status, log_message=nil, javascript_console_message=nil)  
28 - {user_message: user_message, status: status, log_message: log_message, javascript_console_message: javascript_console_message}  
29 - end  
30 -  
31 -end  
plugins/serpro_captcha/po/de/ldap.po
@@ -1,99 +0,0 @@ @@ -1,99 +0,0 @@
1 -# German translation of noosfero.  
2 -# Copyright (C) 2009-2013 Josef Spillner  
3 -# Copyright (C) 2009, 2011 Ronny Kursawe  
4 -# This file is distributed under the same license as the noosfero package.  
5 -# Josef Spillner <josef.spillner@tu-dresden.de>, 2009.  
6 -#  
7 -msgid ""  
8 -msgstr ""  
9 -"Project-Id-Version: 1.2~rc2-23-g29aba34\n"  
10 -"POT-Creation-Date: 2015-08-06 18:47-0300\n"  
11 -"PO-Revision-Date: 2014-12-12 14:23+0200\n"  
12 -"Last-Translator: Michal Čihař <michal@cihar.com>\n"  
13 -"Language-Team: German <https://hosted.weblate.org/projects/noosfero/noosfero/"  
14 -"de/>\n"  
15 -"Language: de\n"  
16 -"MIME-Version: 1.0\n"  
17 -"Content-Type: text/plain; charset=UTF-8\n"  
18 -"Content-Transfer-Encoding: 8bit\n"  
19 -"Plural-Forms: nplurals=2; plural=n != 1;\n"  
20 -"X-Generator: Weblate 2.2-dev\n"  
21 -  
22 -#: plugins/ldap/lib/serpro_captcha_plugin.rb:11  
23 -#, fuzzy  
24 -msgid "A plugin that add ldap support."  
25 -msgstr "Ein Plugin, welches dies und jenes tut."  
26 -  
27 -#: plugins/ldap/controllers/serpro_captcha_plugin_admin_controller.rb:10  
28 -#, fuzzy  
29 -msgid "Ldap configuration updated successfully."  
30 -msgstr "Optionen erfolgreich aktualisiert."  
31 -  
32 -#: plugins/ldap/controllers/serpro_captcha_plugin_admin_controller.rb:12  
33 -#, fuzzy  
34 -msgid "Ldap configuration could not be saved."  
35 -msgstr "Die Konfiguration konnte nicht gespeichert werden"  
36 -  
37 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:1  
38 -#, fuzzy  
39 -msgid "Ldap Management"  
40 -msgstr "Inhalt verwalten"  
41 -  
42 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:8  
43 -msgid "Value"  
44 -msgstr "Wert"  
45 -  
46 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:11  
47 -msgid "Host"  
48 -msgstr "Rechner"  
49 -  
50 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:15  
51 -msgid "Port"  
52 -msgstr ""  
53 -  
54 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:19  
55 -#, fuzzy  
56 -msgid "Account"  
57 -msgstr "Preisermäßigung"  
58 -  
59 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:23  
60 -#, fuzzy  
61 -msgid "Account Password"  
62 -msgstr "Derzeitiges Passwort"  
63 -  
64 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:27  
65 -msgid "Base DN"  
66 -msgstr ""  
67 -  
68 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:31  
69 -#, fuzzy  
70 -msgid "LDAP Filter"  
71 -msgstr "Filter"  
72 -  
73 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:35  
74 -#, fuzzy  
75 -msgid "On the fly creation"  
76 -msgstr "Im letzten Monat"  
77 -  
78 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:39  
79 -msgid "LDAPS"  
80 -msgstr ""  
81 -  
82 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:46  
83 -msgid "Attributes"  
84 -msgstr ""  
85 -  
86 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:53  
87 -#, fuzzy  
88 -msgid "Fullname"  
89 -msgstr "Vollständiger Name"  
90 -  
91 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:57  
92 -#, fuzzy  
93 -msgid "Mail"  
94 -msgstr "E-Mail"  
95 -  
96 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:65  
97 -#, fuzzy  
98 -msgid "Back to plugins administration panel"  
99 -msgstr "Zurück zum Adminfeld"  
plugins/serpro_captcha/po/ldap.pot
@@ -1,86 +0,0 @@ @@ -1,86 +0,0 @@
1 -# SOME DESCRIPTIVE TITLE.  
2 -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER  
3 -# This file is distributed under the same license as the PACKAGE package.  
4 -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.  
5 -#  
6 -#, fuzzy  
7 -msgid ""  
8 -msgstr ""  
9 -"Project-Id-Version: 1.2~rc2-23-g29aba34\n"  
10 -"POT-Creation-Date: 2015-08-06 18:47-0300\n"  
11 -"PO-Revision-Date: 2015-08-06 17:21-0300\n"  
12 -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"  
13 -"Language-Team: LANGUAGE <LL@li.org>\n"  
14 -"Language: \n"  
15 -"MIME-Version: 1.0\n"  
16 -"Content-Type: text/plain; charset=UTF-8\n"  
17 -"Content-Transfer-Encoding: 8bit\n"  
18 -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"  
19 -  
20 -#: plugins/ldap/lib/serpro_captcha_plugin.rb:11  
21 -msgid "A plugin that add ldap support."  
22 -msgstr ""  
23 -  
24 -#: plugins/ldap/controllers/serpro_captcha_plugin_admin_controller.rb:10  
25 -msgid "Ldap configuration updated successfully."  
26 -msgstr ""  
27 -  
28 -#: plugins/ldap/controllers/serpro_captcha_plugin_admin_controller.rb:12  
29 -msgid "Ldap configuration could not be saved."  
30 -msgstr ""  
31 -  
32 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:1  
33 -msgid "Ldap Management"  
34 -msgstr ""  
35 -  
36 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:8  
37 -msgid "Value"  
38 -msgstr ""  
39 -  
40 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:11  
41 -msgid "Host"  
42 -msgstr ""  
43 -  
44 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:15  
45 -msgid "Port"  
46 -msgstr ""  
47 -  
48 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:19  
49 -msgid "Account"  
50 -msgstr ""  
51 -  
52 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:23  
53 -msgid "Account Password"  
54 -msgstr ""  
55 -  
56 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:27  
57 -msgid "Base DN"  
58 -msgstr ""  
59 -  
60 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:31  
61 -msgid "LDAP Filter"  
62 -msgstr ""  
63 -  
64 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:35  
65 -msgid "On the fly creation"  
66 -msgstr ""  
67 -  
68 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:39  
69 -msgid "LDAPS"  
70 -msgstr ""  
71 -  
72 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:46  
73 -msgid "Attributes"  
74 -msgstr ""  
75 -  
76 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:53  
77 -msgid "Fullname"  
78 -msgstr ""  
79 -  
80 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:57  
81 -msgid "Mail"  
82 -msgstr ""  
83 -  
84 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:65  
85 -msgid "Back to plugins administration panel"  
86 -msgstr ""  
plugins/serpro_captcha/po/pt/ldap.po
@@ -1,93 +0,0 @@ @@ -1,93 +0,0 @@
1 -# translation of noosfero.po to  
2 -# Krishnamurti Lelis Lima Vieira Nunes <krishna@colivre.coop.br>, 2007.  
3 -# noosfero - Brazilian Portuguese translation  
4 -# Copyright (C) 2007,  
5 -# Forum Brasileiro de Economia Solidaria <http://www.fbes.org.br/>  
6 -# Copyright (C) 2007,  
7 -# Ynternet.org Foundation <http://www.ynternet.org/>  
8 -# This file is distributed under the same license as noosfero itself.  
9 -# Joenio Costa <joenio@colivre.coop.br>, 2008.  
10 -#  
11 -#  
12 -msgid ""  
13 -msgstr ""  
14 -"Project-Id-Version: 1.2~rc2-23-g29aba34\n"  
15 -"POT-Creation-Date: 2015-08-06 18:47-0300\n"  
16 -"PO-Revision-Date: 2014-12-18 18:40-0200\n"  
17 -"Last-Translator: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>\n"  
18 -"Language-Team: Portuguese <https://hosted.weblate.org/projects/noosfero/"  
19 -"noosfero/pt/>\n"  
20 -"Language: pt\n"  
21 -"MIME-Version: 1.0\n"  
22 -"Content-Type: text/plain; charset=UTF-8\n"  
23 -"Content-Transfer-Encoding: 8bit\n"  
24 -"Plural-Forms: nplurals=2; plural=n != 1;\n"  
25 -"X-Generator: Weblate 2.0\n"  
26 -  
27 -#: plugins/ldap/lib/serpro_captcha_plugin.rb:11  
28 -msgid "A plugin that add ldap support."  
29 -msgstr "Um plugin que adiciona suporte a ldap."  
30 -  
31 -#: plugins/ldap/controllers/serpro_captcha_plugin_admin_controller.rb:10  
32 -msgid "Ldap configuration updated successfully."  
33 -msgstr "Configuração do Ldap atualizada com sucesso."  
34 -  
35 -#: plugins/ldap/controllers/serpro_captcha_plugin_admin_controller.rb:12  
36 -msgid "Ldap configuration could not be saved."  
37 -msgstr "Configuração do Ldap não pode ser salva."  
38 -  
39 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:1  
40 -msgid "Ldap Management"  
41 -msgstr "Gerenciamento do Ldap"  
42 -  
43 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:8  
44 -msgid "Value"  
45 -msgstr "Valor"  
46 -  
47 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:11  
48 -msgid "Host"  
49 -msgstr "Host"  
50 -  
51 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:15  
52 -msgid "Port"  
53 -msgstr "Porta"  
54 -  
55 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:19  
56 -msgid "Account"  
57 -msgstr "Conta"  
58 -  
59 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:23  
60 -msgid "Account Password"  
61 -msgstr "Senha da conta"  
62 -  
63 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:27  
64 -msgid "Base DN"  
65 -msgstr "DN Base"  
66 -  
67 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:31  
68 -msgid "LDAP Filter"  
69 -msgstr "Filtro LDAP"  
70 -  
71 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:35  
72 -msgid "On the fly creation"  
73 -msgstr "Criação sob-demanda"  
74 -  
75 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:39  
76 -msgid "LDAPS"  
77 -msgstr "LDAPS"  
78 -  
79 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:46  
80 -msgid "Attributes"  
81 -msgstr "Atributos"  
82 -  
83 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:53  
84 -msgid "Fullname"  
85 -msgstr "Nome completo"  
86 -  
87 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:57  
88 -msgid "Mail"  
89 -msgstr "Mail"  
90 -  
91 -#: plugins/ldap/views/serpro_captcha_plugin_admin/index.html.erb:65  
92 -msgid "Back to plugins administration panel"  
93 -msgstr "Voltar ao painel de administração"  
plugins/serpro_captcha/test/functional/account_controller_plugin_test.rb
@@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
1 -require File.dirname(__FILE__) + '/../test_helper'  
2 -  
3 -# Re-raise errors caught by the controller.  
4 -class AccountController; def rescue_action(e) raise e end; end  
5 -  
6 -class AccountControllerPluginTest < ActionController::TestCase  
7 -  
8 - def setup  
9 - @controller = AccountController.new  
10 - @request = ActionController::TestRequest.new  
11 - @response = ActionController::TestResponse.new  
12 -  
13 - @environment = Environment.default  
14 - @environment.enabled_plugins = ['SerproCaptchaPlugin']  
15 - @environment.save!  
16 - end  
17 -  
18 -end  
plugins/serpro_captcha/test/functional/serpro_captcha_test.rb
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -# require File.dirname(__FILE__) + '/../../../../test/test_helper'  
2 -# require File.dirname(__FILE__) + '/../../controllers/serpro_captcha_plugin_admin_controller'  
3 -#  
4 -# # Re-raise errors caught by the controller.  
5 -# class SerproCaptchaPluginAdminController; def rescue_action(e) raise e end; end  
6 -#  
7 -# class SerproCaptchaPluginAdminControllerTest < ActionController::TestCase  
8 -#  
9 -# def setup  
10 -# @environment = Environment.default  
11 -# user_login = create_admin_user(@environment)  
12 -# login_as(user_login)  
13 -# @admin = User[user_login].person  
14 -# @environment.enabled_plugins = ['SerproCaptchaPlugin']  
15 -# @environment.serpro_captcha_plugin_host="http://somehost"  
16 -# @environment.save!  
17 -# end  
18 -#  
19 -# should 'detected error, Name or service not known, for Serpro captcha communication' do  
20 -# environment = Environment.default  
21 -# environment.serpro_captcha_verify_uri = 'http://someserverthatdoesnotexist.mycompanythatdoesnotexist.com/validate'  
22 -# environment.serpro_captcha_client_id = '000000000000'  
23 -# environment.save!  
24 -# params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com",  
25 -# :txtToken_captcha_serpro_gov_br => '4324343', :captcha_text => '4030320'}  
26 -# post "/api/v1/register?#{params.to_query}"  
27 -# message = JSON.parse(last_response.body)['javascript_console_message']  
28 -# assert_equal "Serpro captcha error: getaddrinfo: Name or service not known", message  
29 -# end  
plugins/serpro_captcha/test/test_helper.rb
@@ -1,65 +0,0 @@ @@ -1,65 +0,0 @@
1 -require "#{Rails.root}/lib/noosfero/api/helpers"  
2 -  
3 -class ActiveSupport::TestCase  
4 -  
5 - include Rack::Test::Methods  
6 -  
7 - def app  
8 - Noosfero::API::API  
9 - end  
10 -  
11 - def pass_captcha(mocked_url, captcha_verification_body)  
12 - stub_request(:post, mocked_url).  
13 - with(:body => captcha_verification_body,  
14 - :headers => {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).  
15 - to_return(:status => 200, :body => "1", :headers => {'Content-Length' => 1})  
16 - end  
17 -  
18 - def fail_captcha_text(mocked_url, captcha_verification_body)  
19 - stub_request(:post, mocked_url).  
20 - with(:body => captcha_verification_body,  
21 - :headers => {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).  
22 - to_return(:status => 200, :body => "0", :headers => {'Content-Length' => 1})  
23 - end  
24 -  
25 - def login_with_captcha  
26 - json = do_login_captcha_from_api  
27 - @private_token = json["private_token"]  
28 - @params = { "private_token" => @private_token}  
29 - json  
30 - end  
31 -  
32 - ## Performs a login using the session.rb but mocking the  
33 - ## real HTTP request to validate the captcha.  
34 - def do_login_captcha_from_api  
35 - post "/api/v1/login-captcha"  
36 - json = JSON.parse(last_response.body)  
37 - json  
38 - end  
39 -  
40 - def login_api  
41 - @environment = Environment.default  
42 - @user = User.create!(:login => 'testapi', :password => 'testapi', :password_confirmation => 'testapi', :email => 'test@test.org', :environment => @environment)  
43 - @user.activate  
44 - @person = @user.person  
45 -  
46 - post "/api/v1/login?login=testapi&password=testapi"  
47 - json = JSON.parse(last_response.body)  
48 - @private_token = json["private_token"]  
49 - unless @private_token  
50 - @user.generate_private_token!  
51 - @private_token = @user.private_token  
52 - end  
53 -  
54 - @params = {:private_token => @private_token}  
55 - end  
56 - attr_accessor :private_token, :user, :person, :params, :environment  
57 -  
58 - private  
59 -  
60 - def json_response_ids(kind)  
61 - json = JSON.parse(last_response.body)  
62 - json[kind.to_s].map {|c| c['id']}  
63 - end  
64 -  
65 -end  
plugins/serpro_captcha/test/unit/ext/environment_test.rb
@@ -1,186 +0,0 @@ @@ -1,186 +0,0 @@
1 -# require File.dirname(__FILE__) + '/../../../../../test/test_helper'  
2 -#  
3 -# class EnvironmentTest < ActiveSupport::TestCase  
4 -#  
5 -# def setup  
6 -# @enviroment = Environment.default  
7 -# end  
8 -#  
9 -# should 'have serpro_captcha_plugin variable defined' do  
10 -# assert_equal Hash, @enviroment.serpro_captcha_plugin.class  
11 -# end  
12 -#  
13 -# should 'return an empty hash by default on serpro_captcha_plugin_attributes method' do  
14 -# assert_equal Hash.new, @enviroment.serpro_captcha_plugin_attributes  
15 -# end  
16 -#  
17 -# should 'serpro_captcha_plugin_host= define the ldap host' do  
18 -# host = "http://something"  
19 -# @enviroment.serpro_captcha_plugin_host= host  
20 -# assert_equal host, @enviroment.serpro_captcha_plugin['host']  
21 -# end  
22 -#  
23 -# should 'serpro_captcha_plugin_host return the defined ldap host' do  
24 -# host = "http://something"  
25 -# @enviroment.serpro_captcha_plugin_host= host  
26 -# assert_equal host, @enviroment.serpro_captcha_plugin_host  
27 -# end  
28 -#  
29 -# should 'serpro_captcha_plugin_port= define the ldap port' do  
30 -# value = 255  
31 -# @enviroment.serpro_captcha_plugin_port= value  
32 -# assert_equal value, @enviroment.serpro_captcha_plugin['port']  
33 -# end  
34 -#  
35 -# should 'serpro_captcha_plugin_port return the defined ldap port' do  
36 -# value = 255  
37 -# @enviroment.serpro_captcha_plugin_port= value  
38 -# assert_equal value, @enviroment.serpro_captcha_plugin_port  
39 -# end  
40 -#  
41 -# should 'default serpro_captcha_plugin_port be 389' do  
42 -# assert_equal 389, @enviroment.serpro_captcha_plugin_port  
43 -# end  
44 -#  
45 -# should 'serpro_captcha_plugin_account= define the ldap acccount' do  
46 -# value = 'uid=sector,ou=Service,ou=corp,dc=company,dc=com,dc=br'  
47 -# @enviroment.serpro_captcha_plugin_account= value  
48 -# assert_equal value, @enviroment.serpro_captcha_plugin['account']  
49 -# end  
50 -#  
51 -# should 'serpro_captcha_plugin_account return the defined ldap account' do  
52 -# value = 'uid=sector,ou=Service,ou=corp,dc=company,dc=com,dc=br'  
53 -# @enviroment.serpro_captcha_plugin_account= value  
54 -# assert_equal value, @enviroment.serpro_captcha_plugin_account  
55 -# end  
56 -#  
57 -# should 'serpro_captcha_plugin_account_password= define the ldap acccount_password' do  
58 -# value = 'password'  
59 -# @enviroment.serpro_captcha_plugin_account_password= value  
60 -# assert_equal value, @enviroment.serpro_captcha_plugin['account_password']  
61 -# end  
62 -#  
63 -# should 'serpro_captcha_plugin_account_password return the defined ldap account password' do  
64 -# value = 'password'  
65 -# @enviroment.serpro_captcha_plugin_account_password= value  
66 -# assert_equal value, @enviroment.serpro_captcha_plugin_account_password  
67 -# end  
68 -#  
69 -# should 'serpro_captcha_plugin_base_dn= define the ldap base_dn' do  
70 -# value = 'dc=company,dc=com,dc=br'  
71 -# @enviroment.serpro_captcha_plugin_base_dn= value  
72 -# assert_equal value, @enviroment.serpro_captcha_plugin['base_dn']  
73 -# end  
74 -#  
75 -# should 'serpro_captcha_plugin_base_dn return the defined ldap base_dn' do  
76 -# value = 'dc=company,dc=com,dc=br'  
77 -# @enviroment.serpro_captcha_plugin_base_dn= value  
78 -# assert_equal value, @enviroment.serpro_captcha_plugin_base_dn  
79 -# end  
80 -#  
81 -# should 'serpro_captcha_plugin_attr_login= define the ldap attr_login' do  
82 -# value = 'uid'  
83 -# @enviroment.serpro_captcha_plugin_attr_login= value  
84 -# assert_equal value, @enviroment.serpro_captcha_plugin['attr_login']  
85 -# end  
86 -#  
87 -# should 'serpro_captcha_plugin_attr_login return the defined ldap attr_login' do  
88 -# value = 'uid'  
89 -# @enviroment.serpro_captcha_plugin_attr_login= value  
90 -# assert_equal value, @enviroment.serpro_captcha_plugin_attr_login  
91 -# end  
92 -#  
93 -# should 'serpro_captcha_plugin_attr_fullname= define the ldap attr_fullname' do  
94 -# value = 'Noosfero System'  
95 -# @enviroment.serpro_captcha_plugin_attr_fullname= value  
96 -# assert_equal value, @enviroment.serpro_captcha_plugin['attr_fullname']  
97 -# end  
98 -#  
99 -# should 'serpro_captcha_plugin_attr_fullname return the defined ldap attr_fullname' do  
100 -# value = 'uid'  
101 -# @enviroment.serpro_captcha_plugin_attr_fullname= value  
102 -# assert_equal value, @enviroment.serpro_captcha_plugin_attr_fullname  
103 -# end  
104 -#  
105 -#  
106 -# should 'serpro_captcha_plugin_attr_mail= define the ldap attr_mail' do  
107 -# value = 'test@noosfero.com'  
108 -# @enviroment.serpro_captcha_plugin_attr_mail= value  
109 -# assert_equal value, @enviroment.serpro_captcha_plugin['attr_mail']  
110 -# end  
111 -#  
112 -# should 'serpro_captcha_plugin_attr_mail return the defined ldap attr_mail' do  
113 -# value = 'test@noosfero.com'  
114 -# @enviroment.serpro_captcha_plugin_attr_mail= value  
115 -# assert_equal value, @enviroment.serpro_captcha_plugin_attr_mail  
116 -# end  
117 -#  
118 -# should 'serpro_captcha_plugin_onthefly_register= define the ldap onthefly_register' do  
119 -# value = '1'  
120 -# @enviroment.serpro_captcha_plugin_onthefly_register= value  
121 -# assert @enviroment.serpro_captcha_plugin['onthefly_register']  
122 -# end  
123 -#  
124 -# should 'serpro_captcha_plugin_onthefly_register return true if ldap onthefly_register variable is defined as true' do  
125 -# value = '1'  
126 -# @enviroment.serpro_captcha_plugin_onthefly_register= value  
127 -# assert @enviroment.serpro_captcha_plugin_onthefly_register  
128 -# end  
129 -#  
130 -# should 'serpro_captcha_plugin_onthefly_register return false if ldap onthefly_register variable is defined as false' do  
131 -# value = '0'  
132 -# @enviroment.serpro_captcha_plugin_onthefly_register= value  
133 -# refute @enviroment.serpro_captcha_plugin_onthefly_register  
134 -# end  
135 -#  
136 -# should 'serpro_captcha_plugin_filter= define the ldap filter' do  
137 -# value = 'test'  
138 -# @enviroment.serpro_captcha_plugin_filter= value  
139 -# assert_equal value, @enviroment.serpro_captcha_plugin['filter']  
140 -# end  
141 -#  
142 -# should 'serpro_captcha_plugin_filter return the defined ldap filter' do  
143 -# value = 'test'  
144 -# @enviroment.serpro_captcha_plugin_filter= value  
145 -# assert_equal value, @enviroment.serpro_captcha_plugin_filter  
146 -# end  
147 -#  
148 -# should 'serpro_captcha_plugin_tls= define the ldap tls' do  
149 -# value = '1'  
150 -# @enviroment.serpro_captcha_plugin_tls= value  
151 -# assert @enviroment.serpro_captcha_plugin['tls']  
152 -# end  
153 -#  
154 -# should 'tls return true if ldap tls variable is defined as true' do  
155 -# value = '1'  
156 -# @enviroment.serpro_captcha_plugin_tls= value  
157 -# assert @enviroment.serpro_captcha_plugin_tls  
158 -# end  
159 -#  
160 -# should 'tls return false if ldap tls variable is defined as false' do  
161 -# value = '0'  
162 -# @enviroment.serpro_captcha_plugin_tls= value  
163 -# refute @enviroment.serpro_captcha_plugin_tls  
164 -# end  
165 -#  
166 -# should 'validates presence of host' do  
167 -# @enviroment.serpro_captcha_plugin= {:port => 3000}  
168 -# @enviroment.valid?  
169 -#  
170 -# assert @enviroment.errors.include?(:serpro_captcha_plugin_host)  
171 -#  
172 -# @enviroment.serpro_captcha_plugin_host= "http://somehost.com"  
173 -# @enviroment.valid?  
174 -# refute @enviroment.errors.include?(:serpro_captcha_plugin_host)  
175 -# end  
176 -#  
177 -# should 'validates presence of host only if some ldap configuration is defined' do  
178 -# @enviroment.valid?  
179 -# refute @enviroment.errors.include?(:serpro_captcha_plugin_host)  
180 -#  
181 -# @enviroment.serpro_captcha_plugin= {:port => 3000}  
182 -# @enviroment.valid?  
183 -# assert @enviroment.errors.include?(:serpro_captcha_plugin_host)  
184 -# end  
185 -#  
186 -# end  
plugins/serpro_captcha/test/unit/serpro_captcha_verification_test.rb
@@ -1,109 +0,0 @@ @@ -1,109 +0,0 @@
1 -require 'webmock'  
2 -include WebMock::API  
3 -require File.dirname(__FILE__) + '/../../../../test/test_helper'  
4 -require_relative '../test_helper'  
5 -  
6 -class SerproCaptchaVerificationTest < ActiveSupport::TestCase  
7 -  
8 - def setup  
9 - @environment = Environment.default  
10 - @environment.enabled_plugins = ['SerproCaptchaPlugin']  
11 - @environment.serpro_captcha_verify_uri="http://www.somecompany.com:443/validate"  
12 - @environment.serpro_captcha_client_id='323232'  
13 - @environment.save!  
14 - @captcha_token = "642646"  
15 - @captcha_text = "44641441"  
16 - @captcha_verification_body = "#{@environment.serpro_captcha_client_id}&#{@captcha_token}&#{@captcha_text}"  
17 - end  
18 -  
19 - def login_with_captcha  
20 - store = Noosfero::API::SessionStore.create("captcha")  
21 - ## Initialize the data for the session store  
22 - store.data = []  
23 - ## Put it back in cache  
24 - store.store  
25 - { "private_token" => "#{store.private_token}" }  
26 - end  
27 -  
28 - def create_article(name)  
29 - person = fast_create(Person, :environment_id => @environment.id)  
30 - fast_create(Article, :profile_id => person.id, :name => name)  
31 - end  
32 -  
33 - should 'register a user when there are no enabled captcha pluging' do  
34 - @environment.enabled_plugins = []  
35 - @environment.save!  
36 - Environment.default.enable('skip_new_user_email_confirmation')  
37 - params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com" }  
38 - post "/api/v1/register?#{params.to_query}"  
39 - assert_equal 201, last_response.status  
40 - json = JSON.parse(last_response.body)  
41 - assert User['newuserapi'].activated?  
42 - assert json['user']['private_token'].present?  
43 - end  
44 -  
45 - should 'not register a user if captcha fails' do  
46 - fail_captcha_text @environment.serpro_captcha_verify_uri, @captcha_verification_body  
47 - Environment.default.enable('skip_new_user_email_confirmation')  
48 - params = {:login => "newuserapi", :password => "newuserapi", :password_confirmation => "newuserapi", :email => "newuserapi@email.com", :txtToken_captcha_serpro_gov_br => @captcha_token, :captcha_text => @captcha_text}  
49 - post "/api/v1/register?#{params.to_query}"  
50 - assert_equal 403, last_response.status  
51 - json = JSON.parse(last_response.body)  
52 - assert_equal json["message"], _("Wrong captcha text, please try again")  
53 - end  
54 -  
55 - should 'verify_serpro_captcha' do  
56 - pass_captcha @environment.serpro_captcha_verify_uri, @captcha_verification_body  
57 - scv = SerproCaptchaVerification.new  
58 - assert scv.verify_serpro_captcha(@environment.serpro_captcha_client_id, @captcha_token, @captcha_text, @environment.serpro_captcha_verify_uri)  
59 - end  
60 -  
61 - should 'fail captcha if user has not filled Serpro\' captcha text' do  
62 - pass_captcha @environment.serpro_captcha_verify_uri, @captcha_verification_body  
63 - scv = SerproCaptchaVerification.new  
64 - hash = scv.verify_serpro_captcha(@environment.serpro_captcha_client_id, @captcha_token, nil, @environment.serpro_captcha_verify_uri)  
65 - assert hash[:user_message], _('Captcha text has not been filled')  
66 - end  
67 -  
68 - should 'fail captcha if Serpro\' captcha token has not been sent' do  
69 - pass_captcha @environment.serpro_captcha_verify_uri, @captcha_verification_body  
70 - scv = SerproCaptchaVerification.new  
71 - hash = scv.verify_serpro_captcha(@environment.serpro_captcha_client_id, nil, @captcha_text, @environment.serpro_captcha_verify_uri)  
72 - assert hash[:javascript_console_message], _("Missing Serpro's Captcha token")  
73 - end  
74 -  
75 - should 'fail captcha text' do  
76 - fail_captcha_text @environment.serpro_captcha_verify_uri, @captcha_verification_body  
77 - scv = SerproCaptchaVerification.new  
78 - hash = scv.verify_serpro_captcha(@environment.serpro_captcha_client_id, nil, @captcha_text, @environment.serpro_captcha_verify_uri)  
79 - assert hash[:javascript_console_message], _("Wrong captcha text, please try again")  
80 - end  
81 -  
82 - should 'not perform a vote without authentication' do  
83 - article = create_article('Article 1')  
84 - params = {}  
85 - params[:value] = 1  
86 -  
87 - post "/api/v1/articles/#{article.id}/vote?#{params.to_query}"  
88 - json = JSON.parse(last_response.body)  
89 - assert_equal 401, last_response.status  
90 - end  
91 -  
92 - should 'perform a vote on an article identified by id' do  
93 - pass_captcha @environment.serpro_captcha_verify_uri, @captcha_verification_body  
94 - params = {}  
95 - params[:txtToken_captcha_serpro_gov_br]= @captcha_token  
96 - params[:captcha_text]= @captcha_text  
97 - post "/api/v1/login-captcha?#{params.to_query}"  
98 - json = JSON.parse(last_response.body)  
99 - article = create_article('Article 1')  
100 - params = {}  
101 - params[:private_token] = json['private_token']  
102 - params[:value] = 1  
103 - post "/api/v1/articles/#{article.id}/vote?#{params.to_query}"  
104 - json = JSON.parse(last_response.body)  
105 - assert_not_equal 401, last_response.status  
106 - assert_equal true, json['vote']  
107 - end  
108 -  
109 -end  
plugins/serpro_captcha/views/serpro_captcha_plugin_admin/index.html.erb
@@ -1,28 +0,0 @@ @@ -1,28 +0,0 @@
1 -<h1><%= _("Serpro's Captcha Management") %> </h1>  
2 -  
3 -<%= labelled_form_for(:environment, :url => {:action => 'update'}) do |f| %>  
4 -  
5 -<table>  
6 - <tr>  
7 - <th><%= c_('Configuration') %></th>  
8 - <th><%= _('Value') %></th>  
9 - </tr>  
10 - <tr>  
11 - <td><%= _('Verify URI') %></td>  
12 - <td><%= text_field :environment, :serpro_captcha_verify_uri %></td>  
13 - </tr>  
14 - <tr>  
15 - <td><%= _('Client Id') %></td>  
16 - <td><%= text_field :environment, :serpro_captcha_client_id %></td>  
17 - </tr>  
18 -</table>  
19 -  
20 -  
21 -<div>  
22 - <% button_bar do %>  
23 - <%= submit_button('save', c_('Save changes')) %>  
24 - <%= button :back, _('Back to plugins administration panel'), :controller => 'plugins' %>  
25 - <% end %>  
26 -</div>  
27 -  
28 -<% end %>