Giter Club home page Giter Club logo

simplecaptcha3's Introduction

Copyright (c) 2008 [Sur http://expressica.com]

SimpleCaptcha3
=========================================================================================
  Version: edge(Only for Rails 3.*)
  Author:  Sur [http://expressica.com]
  Plugin URL: http://github.com/bansalakhil/SimpleCaptcha3
  Contributors:  http://vinsol.com/team, Kei Kusakari [http://d.hatena.ne.jp/kusakari/about]
  License:  MIT

  Introduction:
  -------------
  SimpleCaptcha3 is the simplest and a robust captcha plugin for Rails3 applications. Its 
  implementation requires adding up a single line in views and in controllers/models.

  SimpleCaptcha(older version of SimpleCaptcha3) is also available to be used with Rails2.0 or 
  above and also it provides the backward compatibility with previous versions of Rails.
  (http://expressica.com/simple_captcha)
  
  Features:
  -----------
  -> Zero FileSystem usage(secret code moved to db-store and image storage removed).
  -> Provides various image styles.
  -> Provides three level of complexity of images.
  -> Works absolutely fine in distributed environment(session and db based implementation works 
    fine in distributed environment).
  -> Implementation is as easy as just writing a single line in your view.
    "<%= show_simple_captcha %>" within the 'form' tags.
  -> Flexible DOM and CSS handling(There is a separate view partial for rednering SimpleCaptcha3 
    DOM elements).
  -> Automated removal of 1 hour old unmatched simple_captcha data.

Pre-Requisite
=========================================================================================
  RMagick should be installed on your machine to use this plugin.
  visit http://rmagick.rubyforge.org for more details.

Installation
=========================================================================================
  SimpleCaptcha3 plugin can be installed by running this command from the application root
  
  >> rails plugin install git://github.com/bansalakhil/SimpleCaptcha3.git
  

Setup
=========================================================================================
  After installation, follow these simple steps to setup the plugin.

  STEP 1
  ------
    >> rake simple_captcha:setup
  
  STEP 2
  ------
    >> rake db:migrate

  STEP 3
  ------
    add the following code in the file config/routes.rb
    
    match '/simple_captcha(/:action)' => 'simple_captcha', :as => :simple_captcha
  
    This is a mandatory route used for rendering the simple_captcha image on the fly without 
    storing on the filesyste.

  STEP 4
  ------
    add the following line in the file app/controllers/application.rb
    
    ApplicationController < ActionController::Base
      include SimpleCaptcha::ControllerHelpers
    end

Usage
=========================================================================================

  Controller Based
  =======================================================================================
    In the view file within the form tags add this code
    
    <%= show_simple_captcha %>
    
    and in the controller's action authenticate it as 
    
      if simple_captcha_valid?
        do this
      else
        do that
      end


  Model Based
  =======================================================================================
    In the view file within the form tags write this code

    <%= show_simple_captcha(:object=>"user") %>

    and in the model class add this code

    class User < ActiveRecord::Basse
      apply_simple_captcha
    end

    Validating with captcha
    ---------------------------------------------------------------------------------------
      @user.valid_with_captcha?
      NOTE: @user.valid? will still work as it should, it will not validate the captcha code.

    Saving with captcha
    ---------------------------------------------------------------------------------------
      @user.save_with_captcha
      NOTE: @user.save will still work as it should, it will not validate the captcha code.

Options & Examples
===========================================================================================

  View Options
  =========================================================================================
  
    :label
    ---------------------------------------------------------------------------------------
      provides the custom text b/w the image and the text field,
      the default is "type the code from the image"

    :image_style
    ---------------------------------------------------------------------------------------
      Provides the specific image style for the captcha image.
      There are eight different styles available with the plugin as...
      1) simply_blue
      2) simply_red
      3) simply_green
      4) charcoal_grey
      5) embosed_silver
      6) all_black
      7) distorted_black
      8) almost_invisible
      
      Default style is 'simply_blue'.
      You can also specify 'random' to select the random image style.
    
      
    :distortion
    ---------------------------------------------------------------------------------------
      Handles the complexity of the image. The :distortion can be set to 'low', 'medium'
      or 'high'. Default is 'low'.
    
    :object
    ---------------------------------------------------------------------------------------
      the name of the object of the model class, to implement the model based captcha.
  
      
    How to change the CSS for SimpleCaptcha DOM elements ?
    -----------------------------------------------------
    You can change the CSS of the SimpleCaptcha DOM elements as per your need in this file.
    For Rails >= 2.0 the file wiil reside as...
    "/app/views/simple_captcha/_simple_captcha.erb"
    For Rails < 2.0 the file will reside as...
    "/app/views/simple_captcha/_simple_captcha.rhtml"
  
  
  View's Examples
  =========================================================================================
  
    Controller Based Example
    ---------------------------------------------------------------------------------------
      example
      -------
      <%= show_simple_captcha(:label => "human authentication") %>
      
      example
      -------
      <%= show_simple_captcha(:label => "human authentication", :image_style => 'embosed_silver') %>
    
      example
      -------
      <%= show_simple_captcha(:label => "human authentication", :image_style => 'simply_red', :distortion => 'medium') %>
    
    Model Based Example
    ---------------------------------------------------------------------------------------
      
      example
      -------
      <%= show_simple_captcha(:object => 'user', :label => "human authentication") %>



  Model Options
  =========================================================================================

    :message
    ---------------------------------------------------------------------------------------
      provides the custom message on failure of captcha authentication
      the default is "Secret Code did not match with the Image"

    :add_to_base
    ---------------------------------------------------------------------------------------
      if set to true, appends the error message to the base.
    
    Model's Example
    =========================================================================================
      
      example
      -------
      class User < ActiveRecord::Base
        apply_simple_captcha
      end

      example
      -------
      class User < ActiveRecord::Base
        apply_simple_captcha :message => "The secret Image and code were different", :add_to_base => true
      end

===========================================================================================

  Enjoy the simplest captcha implementation.
  Author: Sur
  Blog: http://expressica.com
  Contact: [email protected]
  Plugin Homepage: http://expressica.com/simple_captcha

  Any feedback/comment/issue/donation is welcome!

===========================================================================================

simplecaptcha3's People

Contributors

galeki avatar bansalakhil avatar

Stargazers

 avatar  avatar

Watchers

 avatar James Cloos avatar

Forkers

rorra

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.