From 069de7e75469cbf926a6e5a5f60a3d6f4ca9ad0e Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 29 Aug 2012 08:21:30 -0500 Subject: [PATCH] *making updating password not mandatory on user update --- lib/jam_ruby/models/jam_session.rb | 6 +++--- lib/jam_ruby/models/jam_session_member.rb | 10 ++++++--- lib/jam_ruby/models/user.rb | 26 +++++++++++++++-------- migrate.sh | 4 ++-- spec/jam_ruby/models/jam_session_spec.rb | 4 ++-- 5 files changed, 31 insertions(+), 19 deletions(-) diff --git a/lib/jam_ruby/models/jam_session.rb b/lib/jam_ruby/models/jam_session.rb index bc5f17482..b0cb1cafc 100644 --- a/lib/jam_ruby/models/jam_session.rb +++ b/lib/jam_ruby/models/jam_session.rb @@ -2,10 +2,10 @@ module JamRuby class JamSession < ActiveRecord::Base self.primary_key = 'id' - belongs_to :user, :inverse_of => :jam_sessions + belongs_to :creator, :inverse_of => :jam_sessions, :class_name => "JamRuby::User", :foreign_key => "user_id" - has_many :jam_session_members - has_many :users, :through => :jam_session_members + has_many :jam_session_members, :class_name => "JamRuby::JamSessionMember" + has_many :users, :through => :jam_session_members, :class_name => "JamRuby::User" # Verifies that the specified user can join this jam session def access?(user) diff --git a/lib/jam_ruby/models/jam_session_member.rb b/lib/jam_ruby/models/jam_session_member.rb index 662e719dd..432c16e2d 100644 --- a/lib/jam_ruby/models/jam_session_member.rb +++ b/lib/jam_ruby/models/jam_session_member.rb @@ -2,9 +2,13 @@ module JamRuby class JamSessionMember < ActiveRecord::Base self.primary_key = 'id' - belongs_to :user - belongs_to :jam_session - + belongs_to :user, :class_name => "JamRuby::User" + belongs_to :jam_session, :class_name => "JamRuby::JamSession" + + def to_s + return self.user.to_s + end + end end diff --git a/lib/jam_ruby/models/user.rb b/lib/jam_ruby/models/user.rb index f8002ffb3..863658424 100644 --- a/lib/jam_ruby/models/user.rb +++ b/lib/jam_ruby/models/user.rb @@ -2,12 +2,13 @@ module JamRuby class User < ActiveRecord::Base attr_accessible :name, :email, :password, :password_confirmation + attr_accessor :updating_password self.primary_key = 'id' - has_many :jam_session_members - has_many :created_jam_sessions, :foreign_key => "user_id", :inverse_of => :user # sessions *created* by the user - has_many :jam_sessions, :through => :jam_session_members + has_many :jam_session_members, :class_name => "JamRuby::JamSessionMember" + has_many :created_jam_sessions, :foreign_key => "user_id", :inverse_of => :user, :class_name => "JamRuby::JamSession" # sessions *created* by the user + has_many :jam_sessions, :through => :jam_session_members, :class_name => "JamRuby::JamSession" has_secure_password @@ -18,18 +19,25 @@ module JamRuby VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, format: {with: VALID_EMAIL_REGEX}, uniqueness: {case_sensitive: false} - validates :password, length: {minimum: 6} - validates :password_confirmation, presence: true + validates_length_of :password, minimum: 6, maximum: 100, :if => :should_validate_password? - private - def create_remember_token - self.remember_token = SecureRandom.urlsafe_base64 - end + validates_presence_of :password_confirmation, :if => :should_validate_password? + #validates :password_confirmation, presence: true + validates_confirmation_of :password, :if => :should_validate_password? + + def should_validate_password? + updating_password || new_record? + end def to_s return email unless email.nil? return name unless name.nil? return id end + + private + def create_remember_token + self.remember_token = SecureRandom.urlsafe_base64 + end end end diff --git a/migrate.sh b/migrate.sh index 15f170598..a9afa1578 100755 --- a/migrate.sh +++ b/migrate.sh @@ -1,2 +1,2 @@ -#!/bin/bas -jam_db up --connopts=dbname:jam host:localhost user:postgres password:postgres --verbose +#!/bin/bash +bundle exec jam_db up --connopts=dbname:jam host:localhost user:postgres password:postgres --verbose diff --git a/spec/jam_ruby/models/jam_session_spec.rb b/spec/jam_ruby/models/jam_session_spec.rb index d80ef9cd7..6581d8f86 100644 --- a/spec/jam_ruby/models/jam_session_spec.rb +++ b/spec/jam_ruby/models/jam_session_spec.rb @@ -8,7 +8,7 @@ describe JamSession do user2 = FactoryGirl.create(:user) # in the jam session user3 = FactoryGirl.create(:user) # not in the jam session - jam_session = FactoryGirl.create(:jam_session, :user => user1) + jam_session = FactoryGirl.create(:jam_session, :creator => user1) jam_session_member1 = FactoryGirl.create(:jam_session_member, :user => user1, :jam_session => jam_session) jam_session_member2 = FactoryGirl.create(:jam_session_member, :user => user2, :jam_session => jam_session) @@ -17,4 +17,4 @@ describe JamSession do jam_session.access?(user2).should == true jam_session.access?(user3).should == false end -end \ No newline at end of file +end