Thats the problem. I figured that much out. Using reset on an inactive
user does not send the activation email.

On Feb 28, 4:07 pm, Bryan Larsen <[email protected]> wrote:
> On Tue, Feb 28, 2012 at 9:51 AM, Scorpio <[email protected]> wrote:
> > I've added omniauth to my 1.3 app based on the app from
> >https://github.com/enwood/hobo-omniauth-bare-app/
>
> > The thing is the app was set to send an activation link and there is
> > no way to resend one tho it should.
>
> It looks like your request_password_reset :inactive => :inactive
> transition can be used to resend an activation.
>
> >  There is also no way to reset the
> > password if the user isn't active (It works if he is active.)
>
> Try adding this transition:
>
>    transition :reset_password, { :inactive => :inactive }, :available_to
> => :key_holder,
>               :params => [ :password, :password_confirmation ]
>
>
>
>
>
>
>
>
>
> > I'm not sure if its due to omniauth as it has an active transition or
> > what but it seems to process the controller but doesn't send the
> > email. Any ideas?
>
> > Relevant models and controllers below.
>
> > class UsersController < ApplicationController
>
> >  hobo_user_controller
>
> >  auto_actions :all, :except => [ :index, :new, :create ]
> >  index_action :omniauth_callback
>
> >  # Normally, users should be created via the user lifecycle, except
> >  #  for the initial user created via the form on the front screen on
> >  #  first run.  This method creates the initial user.
> >  def create
> >    hobo_create do
> >      if valid?
> >        self.current_user = this
> >        flash[:notice] =
> > t("hobo.messages.you_are_site_admin", :default=>"You are now the site
> > administrator")
> >        redirect_to home_page
> >      end
> >    end
> >  end
>
> >  def omniauth_callback
> >    # Try and find a user with matching authorization credentials
> >    if self.this = Authorization.auth(request.env["omniauth.auth"],
> > current_user)
> >      sign_user_in(self.this.user)
> >    else
> >      if !request.env["omniauth.auth"].nil?
> >        raise request.env["omniauth.auth"].to_yaml
> >      else
> >        raise request.env["message"].to_yaml
> >      end
> >    end
> >  end
>
> > end
>
> > class User < ActiveRecord::Base
>
> >  hobo_user_model # Don't put anything above this
>
> >  fields do
> >    name          :string, :required, :unique
> >    email_address :email_address, :login => true,  :validate => false
> >    administrator :boolean, :default => false
> >    timestamps
> >  end
>
> >  # --- Associations --- #
> >  has_many :authorizations
> >  has_many :comments, :class_name => "Comment", :foreign_key =>
> > "owner_id"
> >  has_many :chapters, :class_name => "Chapter", :foreign_key =>
> > "owner_id"
> >  has_many :pages, :class_name => "Page", :foreign_key => "owner_id"
>
> >  # This gives admin rights and an :active state to the first sign-up.
> >  # Just remove it if you don't want that
> >  before_create do |user|
> >    if !Rails.env.test? && user.class.count == 0
> >      user.administrator = true
> >      user.state = "active"
> >    end
> >  end
>
> >  # --- Signup lifecycle --- #
>
> >  lifecycle do
>
> >    state :inactive, :default => true
> >    state :active
>
> >    # Called from Authorization#auth to create a new user with the
> > name
> >    # supplied by the provider.
> >    create :authorize, :params => [:name], :become => :active
>
> >    create :signup, :available_to => "Guest",
> >      :params =>
> > [:name, :email_address, :password, :password_confirmation],
> >      :become => :inactive, :new_key => true  do
> >      UserMailer.activation(self, lifecycle.key).deliver
> >    end
>
> >    transition :activate, { :inactive => :active }, :available_to
> > => :key_holder
>
> >    transition :request_password_reset, { :inactive
> > => :inactive }, :new_key => true do
> >      UserMailer.activation(self, lifecycle.key).deliver
> >    end
>
> >    transition :request_password_reset, { :active
> > => :active }, :new_key => true do
> >      UserMailer.forgot_password(self, lifecycle.key).deliver
> >    end
>
> >    transition :reset_password, { :active => :active }, :available_to
> > => :key_holder,
> >               :params => [ :password, :password_confirmation ]
>
> >  end
>
> >  def signed_up?
> >    state=="active"
> >  end
>
> >  # --- Permissions --- #
>
> >  def create_permitted?
> >    # Only the initial admin user can be created
> >    self.class.count == 0
> >  end
>
> >  def update_permitted?
> >    acting_user.administrator? ||
> >      (acting_user == self && only_changed?
> > (:email_address, :crypted_password,
> >                                            :current_password, :password, 
> > :password_confirmation))
> >    # Note: crypted_password has attr_protected so although it is
> > permitted to change, it cannot be changed
> >    # directly from a form submission.
> >  end
>
> >  def destroy_permitted?
> >    acting_user.administrator?
> >  end
>
> >  def view_permitted?(field)
> >    true
> >  end
> > end
>
> > class UserMailer < ActionMailer::Base
> >  default :from => "no-reply@#{host}"
>
> >  def forgot_password(user, key)
> >    @user, @key = user, key
> >    mail( :subject => "#{app_name} -- forgotten password",
> >          :to      => user.email_address )
> >  end
>
> >  def activation(user, key)
> >    @user, @key = user, key
> >    mail( :subject => "#{app_name} -- activate",
> >          :to      => user.email_address )
> >  end
>
> > end
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Hobo Users" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/hobousers?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en.

Reply via email to