Merge branch 'master' of https://github.com/andreassteph/fetsite
This commit is contained in:
@@ -19,7 +19,7 @@ class MembershipsController < ApplicationController
|
||||
# POST /memberships.json
|
||||
def create
|
||||
@membership = Membership.new(params[:membership])
|
||||
@membership.fetprofile= Fetprofle.find(params[:fetprofile_id])
|
||||
@membership.fetprofile= Fetprofile.find(params[:fetprofile_id])
|
||||
respond_to do |format|
|
||||
if @membership.save
|
||||
format.html { redirect_to @membership.fetprofile, notice: 'Membership was successfully created.' }
|
||||
|
||||
15
app/controllers/users/omniauth_callbacks_controller.rb
Normal file
15
app/controllers/users/omniauth_callbacks_controller.rb
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
||||
def facebook
|
||||
# You need to implement the method below in your model (e.g. app/models/user.rb)
|
||||
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
|
||||
|
||||
if @user.persisted?
|
||||
sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
|
||||
set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
|
||||
else
|
||||
session["devise.facebook_data"] = request.env["omniauth.auth"]
|
||||
redirect_to new_user_registration_url
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -15,12 +15,13 @@
|
||||
#
|
||||
|
||||
class Fetprofile < ActiveRecord::Base
|
||||
attr_accessible :active, :desc, :fetmailalias, :nachname, :picture, :short, :vorname
|
||||
attr_accessible :active, :desc, :fetmailalias, :nachname, :picture, :short, :vorname,:memberships_attributes
|
||||
has_many :memberships
|
||||
has_many :gremien, :through=> :membership
|
||||
mount_uploader :picture, PictureUploader
|
||||
def name
|
||||
[vorname, nachname, "(",short,")"].join(" ")
|
||||
end
|
||||
accepts_nested_attributes_for :memberships
|
||||
scope :active, -> { where(:active=>:true).order(:vorname) }
|
||||
end
|
||||
|
||||
@@ -30,10 +30,29 @@ class User < ActiveRecord::Base
|
||||
# :token_authenticatable, :confirmable,
|
||||
# :lockable, :timeoutable and :omniauthable
|
||||
devise :database_authenticatable, :registerable,:confirmable,
|
||||
:recoverable, :rememberable, :trackable, :validatable
|
||||
:recoverable, :rememberable, :trackable, :validatable,:omniauthable, :omniauth_providers => [:facebook]
|
||||
|
||||
# Setup accessible (or protected) attributes for your model
|
||||
attr_accessible :email, :password, :password_confirmation, :remember_me
|
||||
attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid, :name
|
||||
# attr_accessible :title, :body
|
||||
|
||||
def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
|
||||
user = User.where(:provider => auth.provider, :uid => auth.uid).first
|
||||
unless user
|
||||
user = User.create(name:auth.extra.raw_info.name,
|
||||
provider:auth.provider,
|
||||
uid:auth.uid,
|
||||
email:auth.info.email,
|
||||
password:Devise.friendly_token[0,20]
|
||||
)
|
||||
end
|
||||
user
|
||||
end
|
||||
def self.new_with_session(params, session)
|
||||
super.tap do |user|
|
||||
if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["raw_info"]
|
||||
user.email = data["email"] if user.email.blank?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -17,20 +17,19 @@
|
||||
<div class="span4"><%= f.input :picture, :as=>:file %></div>
|
||||
<div class="span4"> <%= f.input :fetmailalias %></div>
|
||||
</div>
|
||||
<% @fetprofile.memberships.each do |m| %>
|
||||
<%= semantic_fields_for m do |mf| %>
|
||||
<div class="row-fluid">
|
||||
|
||||
<%= f.inputs :for => :memberships do |membership,i| %>
|
||||
<div class="row-fluid">
|
||||
<div class="span1"></div>
|
||||
<%= mf.inputs do %>
|
||||
<div class="span3"><%= mf.input :start, :as=>:date %></div>
|
||||
<div class="span3"><%= mf.input :stop %></div>
|
||||
<div class="span3"><%= mf. input :gremium %></div>
|
||||
<div class="span2"><%= mf.input :typ ,:as=>:radio, :collection=>{"mitglied"=>1, "ersatzmitglied"=>2} %></div>
|
||||
|
||||
<div class="span3"><%= membership.input :start, :as=>:date %></div>
|
||||
<div class="span3"><%= membership.input :stop %></div>
|
||||
<div class="span3"><%= membership. input :gremium %></div>
|
||||
<div class="span2"><%= membership.input :typ ,:as=>:radio, :collection=>{"mitglied"=>1, "ersatzmitglied"=>2} %></div>
|
||||
|
||||
</div> <% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end
|
||||
end %>
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="span12">
|
||||
<%= f.actions do %>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<%= semantic_form_for @membership do |f| %>
|
||||
<%= semantic_form_for [@membership.fetprofile,@membership] do |f| %>
|
||||
<%= f.inputs do %>
|
||||
<%= f.input :gremium, :as=>:radio %>
|
||||
<%= f.input :start %>
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
<%= render 'form' %>
|
||||
|
||||
<%= link_to 'Back', memberships_path %>
|
||||
<%= link_to 'Back', @membership.fetprofile %>
|
||||
|
||||
Reference in New Issue
Block a user