Commit bc4ac8c1 authored by Timma Dieudonne's avatar Timma Dieudonne

a lot...

parent 006b9f43
......@@ -24,8 +24,8 @@
<orderEntry type="library" scope="PROVIDED" name="activerecord (v3.2.6, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="activeresource (v3.2.6, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="activesupport (v3.2.6, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.3.1, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="arel (v3.0.2, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="bcrypt-ruby (v3.0.1, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="bootstrap-sass (v2.0.4.0, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="builder (v3.0.0, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.1.4, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
......@@ -45,7 +45,9 @@
<orderEntry type="library" scope="PROVIDED" name="mail (v2.4.4, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="mime-types (v1.19, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="multi_json (v1.3.6, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.5.5, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="omniauth (v1.1.0, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="omniauth-cas (v0.0.7, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="pdf-reader (v1.1.1, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="polyglot (v0.3.3, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
<orderEntry type="library" scope="PROVIDED" name="prawn (v0.12.0, RVM: ruby-1.9.3-p194 [automagasin]) [gem]" level="application" />
......
This diff is collapsed.
......@@ -9,7 +9,8 @@ gem 'carrierwave'
gem 'prawnto'
gem 'prawn'
gem 'cancan'
gem 'omniauth'
gem 'omniauth-cas'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
......@@ -26,7 +27,7 @@ end
gem 'jquery-rails'
# To use ActiveModel has_secure_password
gem 'bcrypt-ruby', '~> 3.0.0'
# gem 'bcrypt-ruby', '~> 3.0.0'
# To use Jbuilder templates for JSON
# gem 'jbuilder'
......
......@@ -29,8 +29,8 @@ GEM
activesupport (3.2.6)
i18n (~> 0.6)
multi_json (~> 1.0)
addressable (2.3.1)
arel (3.0.2)
bcrypt-ruby (3.0.1)
bootstrap-sass (2.0.4.0)
builder (3.0.0)
cancan (1.6.8)
......@@ -61,9 +61,14 @@ GEM
treetop (~> 1.4.8)
mime-types (1.19)
multi_json (1.3.6)
nokogiri (1.5.5)
omniauth (1.1.0)
hashie (~> 1.2)
rack
omniauth-cas (0.0.7)
addressable (~> 2.2)
nokogiri (~> 1.5)
omniauth (~> 1.1.0)
pdf-reader (1.1.1)
Ascii85 (~> 1.0.0)
ruby-rc4
......@@ -125,13 +130,12 @@ PLATFORMS
ruby
DEPENDENCIES
bcrypt-ruby (~> 3.0.0)
bootstrap-sass (~> 2.0.4.0)
cancan
carrierwave
coffee-rails (~> 3.2.1)
jquery-rails
omniauth
omniauth-cas
prawn
prawnto
rails (= 3.2.6)
......
// Place all the styles related to the artikels controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
//Von Folien der Veranstaltung Ruby On Rails von Hr Fabian Müller
$blau: #006999;
$gruen: #008414;
$rot: #990ADC;
......
// Place all the styles related to the users controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
......@@ -6,7 +6,10 @@ class ApplicationController < ActionController::Base
redirect_to root_path
end
rescue_from ActiveRecord::RecordNotFound do |exception|
end
def current_user
if session[:user_id]
@current_user ||= User.find(session[:user_id])
......@@ -14,12 +17,12 @@ class ApplicationController < ActionController::Base
end
end
def current_artikel
if session[:artikel_id]
@current_artikel ||= Artikel.find(session[:artikel_id])
end
def current_artikel
if session[:artikel_id]
@current_artikel ||= Artikel.find(session[:artikel_id])
end
end
end
def current_bestellung
if session[:bestellung_id]
......@@ -41,33 +44,32 @@ class ApplicationController < ActionController::Base
def require_login!
unless user_signed_in?
redirect_to login_path,
redirect_to root_path,
alert: "Bitte melden Sie sich zuerst an.!!"
end
end
def require_artikel!
unless artikel_signed_in?
redirect_to artikel_path,
redirect_to root_path,
alert: "Bitte zuerst eine Speise Karte waehlen!!"
end
end
def require_bestellung!
unless sign_bestellung_in?
redirect_to artikel_path,
redirect_to artikels_path,
alert: "Bitte zuerst eine Bestellung waehlen!!"
end
end
def admin_sign_in?
if(user_signed_in?)
current_user.admin?
end
end
current_user.admin?
end
end
helper_method :admin_sign_in?
helper_method :admin_sign_in?
helper_method :require_login!
helper_method :require_artikel!
helper_method :require_bestellung!
......
......@@ -2,8 +2,10 @@
class ArtikelsController < ApplicationController
before_filter :require_login!
load_and_authorize_resource
def index
@artikels = Artikel.all
session[:artikel_id] = nil
end
......@@ -51,12 +53,9 @@ class ArtikelsController < ApplicationController
def destroy
@artikel = Artikel.find(params[:id])
@artikel.bestellungs.destroy_all
FileUtils.rm_rf "public/uploads/artikel/image/#{@artikel.id}"
@artikel.destroy
redirect_to artikels_url
end
......
class AuftragsController < ApplicationController
load_and_authorize_resource
before_filter :require_login!
before_filter :require_bestellung!
before_filter :require_bestellung! ,:except => [:show, :destroy, :edit, :update]
def index
@auftrags = current_bestellung.auftrags.all
respond_to do |format|
format.html # show.html.erb
format.pdf { render :layout => false } # Add this line
end
end
def show
if(sign_bestellung_in?)
@auftrag = current_bestellung.auftrags.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.pdf { render :layout => false } # Add this line
end
end
else
@auftrag= current_user.auftrags.find(params[:id])
end
end
def new
@auftrag = current_user.auftrags.new
......@@ -25,45 +24,54 @@ class AuftragsController < ApplicationController
end
def edit
@auftrag = current_bestellung.auftrags.find(params[:id])
end
@auftrag = current_user.auftrags.find(params[:id])
end
def create
@auftrag = current_user.auftrags.new(params[:auftrag])
@auftrag.bestellung_id = current_bestellung.id
@auftrag.bestellung_id = current_bestellung.id
if @auftrag.save
redirect_to @auftrag, notice: 'Auftrag was successfully created.'
if @auftrag.save
redirect_to @auftrag, notice: 'Auftrag wurde erfolgreich erstellt'
else
render action: "new"
end
else
render action: "new"
end
end
def update
@auftrag = current_user.auftrags.find(params[:id])
@auftrag.bestellung_id = current_bestellung.id
if @auftrag.update_attributes(params[:auftrag])
redirect_to @auftrag,
notice: 'Auftrag was successfully updated.'
if @auftrag.update_attributes(params[:auftrag])
if(sign_bestellung_in?)
redirect_to @auftrag,
notice: 'Auftrag wurde erfolgreich geaendert.'
else
render action: "edit"
redirect_to current_user,
notice: 'Auftrag wurde erfolgreich geaendert.'
end
end
else
render action: "edit"
end
end
def destroy
@auftrag = current_user.auftrags.find(params[:id])
@auftrag.destroy
redirect_to auftrags_url
if(sign_bestellung_in?)
redirect_to current_bestellung,
notice: 'Bestellung wurde erfolgreich geloescht.'
else
redirect_to current_user,
notice: 'Bestellung wurde erfolgreich geloescht.'
end
end
end
class BestellungsController < ApplicationController
load_and_authorize_resource
before_filter :require_login!
before_filter :require_artikel!
before_filter :require_artikel! ,:except => [:show, :destroy, :edit, :update]
def index
@bestellungs = current_artikel.bestellungs.all
session[:bestellung_id] = nil
end
def show
if(artikel_signed_in?)
@bestellung = current_artikel.bestellungs.find(params[:id])
else
@bestellung = current_user.bestellungs.find(params[:id])
end
session[:bestellung_id] = @bestellung.id
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @bestellung}
format.pdf { render :layout => false } # Add this line
format.pdf { render :layout => false }
end
......@@ -30,7 +37,11 @@ class BestellungsController < ApplicationController
def edit
@bestellung = current_user.bestellungs.find(params[:id])
if(artikel_signed_in?)
@bestellung = current_artikel.bestellungs.find(params[:id])
else
@bestellung = current_user.bestellungs.find(params[:id])
end
end
......@@ -40,8 +51,7 @@ class BestellungsController < ApplicationController
if @bestellung.save
redirect_to @bestellung,
notice: 'Bestellung was successfully created.'
notice: 'Bestellung wurde erfolgreich erstellt.'
else
render action: "new"
......@@ -51,12 +61,15 @@ class BestellungsController < ApplicationController
def update
@bestellung = current_user.bestellungs.find(params[:id])
@bestellung = current_user.bestellungs.find(params[:id])
if @bestellung.update_attributes(params[:bestellung])
redirect_to @bestellung, notice: 'Bestellung was successfully updated.'
if artikel_signed_in?
redirect_to @bestellung,
notice: 'Bestellung wurde erfolgreich geaendert.'
else
redirect_to current_user
end
else
render action: "edit"
end
......@@ -70,9 +83,13 @@ class BestellungsController < ApplicationController
@bestellung.auftrags.destroy_all
@bestellung.destroy
redirect_to bestellungs_url
if(artikel_signed_in?)
redirect_to bestellungs_path,
notice: 'Bestellung wurde erfolgreich geloescht.'
else
redirect_to current_user,
notice: 'Bestellung wurde erfolgreich geloescht.'
end
end
end
......@@ -2,24 +2,26 @@ class SessionsController < ApplicationController
def new
end
def create
user = User.find_by_name(params[:name])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to artikels_path,
notice: "Sie haben sich angemeldet"
auth_hash = request.env['omniauth.auth']
@authorization = Authorization.find_by_provider_and_uid(auth_hash["provider"], auth_hash["uid"])
if(@authorization.present?)
session[:user_id] = User.find(@authorization.user_id)
redirect_to root_path :notice => "Sie sind eingelogt"
else
flash.now.alert = "Fehlerhafte E-Mail-Adresse oder Passwort"
render action: "new"
session[:auth]= auth_hash
# user = User.new
#user.authorizations.new :provider => auth_hash["provider"], :uid => auth_hash["uid"]
# user.save
#session[:user_id]= user
redirect_to new_user_path, :notice => "Bitte Formular ausfuellen"
end
end
def destroy
session[:user_id] = nil
redirect_to root_path,
notice: "Sie haben Sich ausgeloggt."
redirect_to root_url, :notice => "Signed out!"
end
end
class UsersController < ApplicationController
# before_filter :admin_required!, :except => [:new, :create, :show, :destroy, :edit, :update]
#before_filter :require_login!, :except => [:new , :create]
before_filter :require_login!, :except => [:new , :create]
load_and_authorize_resource
def index
@users = User.all
......@@ -15,26 +15,34 @@ class UsersController < ApplicationController
def new
@user = User.new
@user = User.new
end
def edit
@user = current_user
@user = User.find(params[:id])
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to login_path,
auth_hash = session[:auth]
@user.authorization = Authorization.new :provider=> auth_hash["provider"],:uid => auth_hash["uid"]
att = auth_hash[:extra][:attributes]
@user.email= att[0].mail
if @user.save
session[:auth]= nil
session[:user_id]= @user.id
redirect_to root_path,
notice: "Ihr Benutzerkonto wurde angelegt!"
else
render action: "new"
end
end
......@@ -43,7 +51,7 @@ class UsersController < ApplicationController
@user = current_user
if @user.update_attributes(params[:user])
redirect_to artikel_path, notice: 'Update durchgefuehrt!!'
redirect_to user_path, notice: 'Update durchgefuehrt!!'
else
render action: "edit"
end
......@@ -54,9 +62,10 @@ class UsersController < ApplicationController
@user = User.find(params[:id])
@user.auftrags.destroy_all
@user.bestellungs.destroy_all
@user.authorization.destroy
@user.update_attribute(:email,nil)
@user .update_attribute(:name, nil)
@user. update_attribute(:email , nil )
@user.update_attribute(:password_digest,nil)
@user.save
unless admin_sign_in?
session[:user_id] = nil
......
class Ability
include CanCan::Ability
def initialize(user)
user ||=User.new
......@@ -9,7 +10,7 @@ class Ability
else
can :laden, Artikel
can :index, User
can :index, Artikel
can :index, Auftrag
can :index, Bestellung
......@@ -22,12 +23,12 @@ class Ability
can :create, Artikel
can :create, Auftrag
can :create, Bestellung
can :create, User
can :create, User
can :new, Artikel
can :new, Auftrag
can :new, Bestellung
can :new , User
can :new, User
can :edit, User.where("id=?",user.id)
can :edit, Artikel.where("user_id=?",user.id)
......
<%= form_for(@auftrag) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :speise %><br />
<%= f.text_field :speise %>
</div>
<div class="field">
<%= f.label :preis %><br />
<%= f.number_field :preis %>
</div>
<div class="field">
<%= f.label :comment %><br />
<%= f.text_area :comment %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
<h1>Editing auftrag</h1>
<%= render 'form' %>
<%= link_to 'Show', @auftrag ,:class => "btn btn-small btn-info" %> |
<%= link_to 'Back', auftrags_path,:class => "btn btn-small " %>
<h1>Listing auftrags</h1>
<table class="table table-striped tablebordered table-condensed ">
<tr>
<th>Name</th>
<th>Speise</th>
<th>Preis</th>
<th>Comment</th>
</tr>
<% @auftrags.each do |auftrag| %>
<tr>
<td><%= auftrag.name %></td>
<td><%= auftrag.speise %></td>
<td><%= auftrag.preis %></td>
<td><%= auftrag.comment %></td>
<td><%= link_to 'Show', auftrag, :class => "btn btn-mini btn-primary" %></td>
<% if can? :edit, auftrag %>
<td><%= link_to 'Edit', edit_auftrag_path(auftrag), :class => "btn btn-mini " %></td>
<td><%= link_to 'Destroy', auftrag, method: :delete, data: { confirm: 'Are you sure?' },
:class => "btn btn-mini btn-danger" %></td>
<% end %>
</tr>
<% end %>
</table>
<br />
<%= link_to "Zurueck zur Bestellung", current_bestellung, :class => "btn btn-small " %>
<td><%= link_to 'New Auftrag', new_auftrag_path , :class => "btn btn-small btn-primary"%></td>
<h1>New auftrag</h1>
<%= render 'form' %>
<%= link_to 'Back', auftrags_path,:class => "btn btn-small btn-primary" %>
<p>
<b>Name</b>
<%= @auftrag.name %>
</p>
<p>
<b>Speise</b>
<%= @auftrag.speise %>
</p>
<p>
<b>Preis</b>
<%= @auftrag.preis %>
</p>
<p>
<b>Comment</b>
<%= @auftrag.comment %>
</p>
<%= link_to 'Back', auftrags_path, :class => "btn btn-mini " %>
class Authorization < ActiveRecord::Base
belongs_to :user
attr_accessible :provider, :uid
end
......@@ -2,18 +2,13 @@ class User < ActiveRecord::Base
has_many :artikels
has_many :bestellungs , :dependent => :destroy
has_many :auftrags , :dependent => :destroy
has_one :authorization , :dependent => :destroy
has_secure_password
attr_accessible :name, :email, :password_digest, :vorname ,
:password, :password_confirmation
attr_accessible :name, :vorname, :email
attr_protected :admin
validates :email,
format: /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i,
uniqueness: true
validates :name, :vorname, :email, presence:true
format: /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i,
uniqueness: true
validates :name, :vorname ,presence: true
end
<h1>Editing artikel</h1>
<h1> Speisekarte aendern</h1>
<%= render 'form' %>
<td><%= link_to 'Back', artikels_path,:class => "btn btn-small btn-info" %></td>
......
......@@ -12,10 +12,7 @@
<tbody>
<tr>
<th>Restaurant</th>
<!-- <th>Comment</th>-->
<th></th>
<th></th>
<th></th>
</tr>
<% @artikels.each do |artikel| %>
......
<h1>New artikel</h1>
<h1>Neue Speisekarte</h1>
<%= render 'form' %>
......
......@@ -34,9 +34,10 @@
</tr>
<% @artikel.bestellungs.each do |bestellung| %>
<tr>
<td><%= bestellung.title %></td>
<td><%= bestellung.termin %></td>
</tr>
<% end %>
</table>
</div>
......
<div id="header">
<% if flash[:alert] %>
<p id="alert">
<%= flash[:alert] %>
</p>
<% end %>
</div>
<%= form_for(@auftrag) do |f| %>
<div class="field">
<%= f.label :name %><br />
......
<p>
<b>Name</b>
<%= @auftrag.name %>
</p>
<p>
<b>Name</b>
<%= @auftrag.name %>
</p>
<p>
<b>Speise</b>
<%= @auftrag.speise %>
</p>
<p>
<b>Speise</b>
<%= @auftrag.speise %>
</p>
<p>
<b>Preis</b>
<%= @auftrag.preis %>
</p>
<p>
<b>Preis</b>
<%= @auftrag.preis %>
</p>
<p>
<b>Comment</b>
<%= @auftrag.comment %>