Branch: development

    Updated implementation w.r.t following requirements:

    1) User should be able to login through Facebook or should be able to Signup on his own.
    2) Incase the user Signs Up on his own, and then chooses to login through Facebook, essentially bit
       the accounts/users are the same and so should be merged. This is exactly what happens when you use
       Flipkart. You can register on your own and later login through Facebook. The idea is that even
       Facebook identifies you based on your email id.
    3) About the third requirement, if there are multiple users on the system(Ideally we would make dummy users)
       then they shoul dbe able to se what is written on each others's wall/dashboard/page. As of now let us simply
       keep this as an open system where whenever a user registers, he/she is displayed in a drop down on the
       top right and I can select a user and see his/her wall.

============= Added (9)

        /db/migrate/20121229150412_add_about_you_to_profiles.rb

        /app/controllers/users_controller.rb

        /app/helpers/users_helper.rb

        /app/views/users/index.html.haml
        /app/views/users/show.html.haml

        /app/assets/javascripts/users.js.coffee
        /app/assets/stylesheets/users.css.scss

        /test/functional/users_controller_test.rb
        /test/unit/helpers/users_helper_test.rb

============= Updated (15)

     /db/schema.rb
       - Altered table PROFILES.Added column:about_you.

     /config/locales/en.yml
      - Added following:
          user:
            email: "Email"
            password: "Password"
            confirm_password: "Confirm Password"
            about_user: "About %{user_name}"

      - Added following:
          external_login:
            notices:
              disconnect: "Successfully disconnected %{user_name} from %{provider}"

            errors:
              user_friendly_message: "Sorry, could not sign-in you to the system due to some technical problem."
              account_associated_with_another_user: "Sorry could not connect you because the %{provider} account is already associated with other user."
              already_connected: "You have already connected to %{provider} account. If you would like to change account, you'll need to disconnect earlier %{provider} account first."

      - Removed
          email: "Email"
        from profile:

      - Added following
           alerts:
             set_new_password: "Please set a new password"

           errors:
             password_required: "Please enter a password"
             password_confirmation: "Password doesn't match confirmation."

        under profile:

      - Added following:
          disconnect_from_facebook: "Disconnect From Facebook"
          users: "Users"
        under general

     /lib/sofmor_helpers/auth/external_provider.rb
       - Updated implementation in method:check_error_conditions(authentication, provider, omniauth)
         Commented out a condition checking if the user logging through Facebook
         uses the same email already registered with the Sofmor application,
         instead of asking him/her to login to the system and connect to facebook,
         transparently make him/her log into the Sofmor application.

      - Updated implementation in method: web_redirect(user, provider).
         a) Removed code: UserMailer.welcome_email(user, provider).deliver
            When the application is deployed to Heroku it throws Connection refused
            error while trying to deliver email using configured settings.Anyways
            the welcome email was containing a default password which after discussion
            is not needed and once signed-up and signed-in the user should be directly
            sent to set the new password page.

         b) Replaced
              redirect_to edit_user_registration_path, flash: { alert: 'Sent you an email.Please check your inbox at #{user.email} for change password instructions.' }
            WITH
              redirect_to edit_user_profile_path(current_user)

       - Updated implementation in method: get_user(omniauth, authentication).
         a) Removed following: user.password = Settings.default_password for a new user.
         b) Added an additional scenario to return an existing user having same
            email as used by a user trying to log-in through Facebook from application.

       - Refactored code in: create_user_authentication(omniauth, user).
         Moved new user create code to a new method: create_new_user(omniauth, user)

       - Added method: handle_disconnect(provider)

     /config/settings.yml
       - Removed following:
            default_password: 'changePasswordF0rSofmor'

     /app/views/user_mailer/welcome_email.html.haml
       - Updated the content by removing the instructions about default
         password.

     /app/controllers/profiles_controller.rb
       - Added private method: fetch_user and set it as a before_filter before
         fetch_profile.

       - Updated implementation in method: fetch_profile.
         Removed following code:
            user_id = params[:id] || params[:user_id]

       - Updated implementation in method: update.
         Handled password and password confirmation validation, updating user,
         saving/updating profile etc.

     /app/views/profiles/_form_fields.html.haml
       - Added Password, Confirm Password, About You fields.

     /app/controllers/application_controller.rb
       - Updated implementation in method: after_sign_in_path_for(resource).
         Instead of checking for change_password_required?, checking
         new_password_set_required? and based on the result taking appropriate
         actions.

       - Removed method: change_password_required?

     /app/controllers/registrations_controller.rb
       - Updated implementation in method: after_sign_up_path_for(resource)
         Replaced
           dashboard_path
         WITH
          edit_user_profile_path(current_user)

     /app/models/user.rb
       - Added method: connected_to_facebook?

     /config/routes.rb
       - Added
            get '/users/auth/:provider/disconnect' => "users/omniauth_callbacks#disconnect", as: :auth_disconnect
         to devise_scope :user

       - Added following
            only: [:index, :show]
         to resources :users

    /app/views/layouts/_top_navigation.html.haml
       - Added Disconnect from Facebook link, if current_user is connected to
         Facebook.

         Code:
          - if current_user.connected_to_facebook?
            %li= link_to t('general.disconnect_from_facebook'), auth_disconnect('facebook')

       - Replaced
           = link_to "Articles", '#'
         WITH
           = link_to t('general.users'), users_path

    /app/controllers/users/omniauth_callbacks_controller.rb
      - Added method: disconnect

    /app/views/profiles/show.html.haml
     - Removed commented-out code.

    /app/models/profile.rb
      - Added :about_you to attr_accessible