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.
