Sorry for the late update. That transition fixed it. Thanks On Feb 28, 5:18 pm, Scorpio <[email protected]> wrote: > 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.
