diff --git a/app/controllers/fetprofiles_controller.rb b/app/controllers/fetprofiles_controller.rb index bedb427..fc8e881 100644 --- a/app/controllers/fetprofiles_controller.rb +++ b/app/controllers/fetprofiles_controller.rb @@ -7,7 +7,7 @@ class FetprofilesController < ApplicationController @fetprofiles = Fetprofile.active.order(:vorname,:nachname) @fetprofiles = Fetprofile.order(:vorname,:nachname) if params[:filter]== "all" - @fetprofiles = Fetprofile.where(:active=>false).order(:vorname,:nachname) if params[:filter]== "notactive" + @fetprofiles = Fetprofile.where(:active=>false).order(:nachname,:vorname) if params[:filter]== "notactive" @gremientabs = Gremium.tabs @toolbar_elements << {:hicon=>'icon-plus', :text=> I18n.t('profile.new_profile'),:path => new_fetprofile_path(@fetprofile) } if can? :new, @fetprofile diff --git a/app/controllers/gremien_controller.rb b/app/controllers/gremien_controller.rb index 1f8da6a..6612e8c 100644 --- a/app/controllers/gremien_controller.rb +++ b/app/controllers/gremien_controller.rb @@ -2,7 +2,7 @@ class GremienController < ApplicationController # GET /gremien # GET /gremien.json load_and_authorize_resource - before_filter {@toolbar_elements=[]} + before_filter {@toolbar_elements=[]} def verwalten @gremien = Gremium.all @gremientabs=Gremium.tabs @@ -105,7 +105,8 @@ class GremienController < ApplicationController end # DELETE /gremien/1 - # DELETE /gremien/1.json + # + # def destroy @gremium = Gremium.find(params[:id]) @gremium.destroy diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index c9ba72a..516cabb 100755 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -27,10 +27,20 @@ class HomeController < ApplicationController render 'links_notimplemented' end def search + unless params['query'].nil? || params['query'].empty? - @neuigkeiten=Neuigkeit.search(params['query']) + if can?(:showintern, Neuigkeit) + @neuigkeiten=Neuigkeit.search(params['query']) + else + @neuigkeiten =Neuigkeit.search(params['query']).public + end @fetprofiles = Fetprofile.search(params['query']) - @themen=Thema.search(params['query']) + if can?(:showintern, Neuigkeit) + @themen=Thema.search(params['query']) + else + @themen=Thema.search(params['query']).public + end + else @neuigkeiten=[] @fetprofiles=[] diff --git a/app/controllers/rubriken_controller.rb b/app/controllers/rubriken_controller.rb index 7ec78a9..42afaf2 100755 --- a/app/controllers/rubriken_controller.rb +++ b/app/controllers/rubriken_controller.rb @@ -2,13 +2,15 @@ class RubrikenController < ApplicationController before_filter {@toolbar_elements=[]} load_and_authorize_resource def index - if can?(:shownonpublic, Rubrik) + if can?(:showintern, Rubrik) @rubriken = Rubrik.all + @neuigkeiten = Neuigkeit.recent else @rubriken = Rubrik.where(:public=>true) + @neuigkeiten = Neuigkeit.public.recent end - @neuigkeiten = @rubriken.collect(&:neuigkeiten).map(&:recent).flatten - @calentries= @rubriken.collect(&:calentries).flatten + + @calentries= @rubriken.collect(&:calentries).flatten end def intern diff --git a/app/controllers/studien_controller.rb b/app/controllers/studien_controller.rb index cbfd4a6..9156f16 100755 --- a/app/controllers/studien_controller.rb +++ b/app/controllers/studien_controller.rb @@ -34,7 +34,7 @@ class StudienController < ApplicationController @toolbar_elements=[] @toolbar_elements<<{:icon=>:plus, :hicon =>'icon-plus-sign' ,:text=> I18n.t('studien.new') , :path => new_studium_path(@studium) } if can? :new, Studium @toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_studium_path(@studium)} if can? :edit, Studium -@toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('common.edit'),:path => edit_lvas_studium_path(@studium)} if can? :edit_lvas, Studium +@toolbar_elements<<{:icon=>:pencil, :hicon=>'icon-pencil',:text =>I18n.t('lva.editlvas'),:path => edit_lvas_studium_path(@studium)} if can? :edit_lvas, Studium @toolbar_elements<<{:hicon=>'icon-remove-circle', :text=> I18n.t('common.delete'),:path => studium_path(@studium), :method=> :delete,:confirm=>'Sure?' } if can? :delete, Studium @toolbar_modulgruppen =[] @toolbar_modulgruppen << {:hicon=>'icon-plus-sign', :text=> I18n.t('modulgruppe.new'), :path=>new_studium_modulgruppe_path(@studium)} if can? :new, Modulgruppe @@ -60,7 +60,7 @@ class StudienController < ApplicationController def edit_lvas @studium = Studium.find(params[:id]) - @lvas=@studium.lvas + @lvas=@studium.lvas.uniq @semester=@studium.semester @toolbar_elements=[{:text => I18n.t('studien.anzeigen') , :path => url_for(@studium) }] @toolbar_elements<<{:text =>I18n.t('studien.allestudien'),:path=>studien_path(@studium)} diff --git a/app/models/ability.rb b/app/models/ability.rb index ec614fa..de4778b 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -2,58 +2,34 @@ class Ability include CanCan::Ability def initialize(user) - # Define abilities for the passed in user here. For example: - # - # if user.admin? - # can :manage, :all - # else - # can :read, :all - # end - # The first argument to `can` is the action you are giving the user permission to do. - # If you pass :manage it will apply to every action. Other common actions here are - # :read, :create, :update and :destroy. - # - # The second argument is the resource the user can perform the action on. If you pass - # :all it will apply to every resource. Otherwise pass a Ruby class of the resource. - # - # The third argument is an optional hash of conditions to further filter the objects. - # For example, here the user can only update published articles. - # - # can :update, Article, :published => true - # - # See the wiki for details: https://github.com/ryanb/cancan/wiki/Defining-Abilitiescan :manage, :all - user ||= User.new # guest user (not logged in) - - - # For Debug allow everything - # Remove this line in production environment and for testing user management -# can :manage, :all - can :addfetuser, User - can :addfetadmin, User + # Rechteverwaltung fuer Studien Modul can [:show, :index], Studium can [:show, :index], Modulgruppe can [:show, :index], Modul can [:show, :index], Lva + can [:create, :show], Beispiel + can [:show,:index], Gallery can [:show, :index,:faqs], Themengruppe can [:show], Thema, :isdraft=>false - can [:create], Beispiel + can [:show, :index], Fetprofile can [:show, :index],Gremium - # Rechteverwaltung fuer Studien Modul - - # Rechteverwaltung Kalender can [:show, :index], Calendar, :public => true can [:showics], Calendar can [:show], Calentry + if( user.has_role?("fetuser") || user.has_role?("fetadmin")) can :manage,:all can :manage, Modulgruppe can :showdraft , Thema + can :showintern, Thema + can :showintern, Neuigkeit + can :showintern, Rubrik can [:show,:index], Calendar can [:edit, :update,:new,:create,:verwalten], Calendar can [:edit, :update,:new,:create,:verwalten], Calentry @@ -82,6 +58,10 @@ class Ability can [:show,:index], Rubrik, :public=>true can :show, Neuigkeit, :rubrik=>{:public=>true} + if user.has_role?("fetadmin") + can :addfetuser, User + can :addfetadmin, User + end if user.has_role?("newsadmin") || user.has_role?( "fetadmin") || user.has_role?( "fetuser") can :manage, Rubrik diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb index 261e1d1..37cea90 100755 --- a/app/models/neuigkeit.rb +++ b/app/models/neuigkeit.rb @@ -22,9 +22,11 @@ class Neuigkeit < ActiveRecord::Base translates :title,:text, :versioning=>{:gem=>:paper_trail, :options=>{:fallbacks_for_empty_translations => true}} has_many :calentries, as: :object + has_many :nlinks + mount_uploader :picture, PictureUploader - default_scope order(:datum).reverse_order - #scope :published, -> {where("datum <= ? AND datum IS NOT NULL", Time.now.to_date)} + + default_scope order(:datum).reverse_order scope :recent, -> { published.limit(10)} scope :unpublished, -> {where("datum >= ? OR datum IS NULL", Date.today)} scope :public, ->{includes(:rubrik).where("rubriken.public"=>true)} @@ -34,7 +36,9 @@ class Neuigkeit < ActiveRecord::Base LINKTYPES=["Thema", "Gallery", "Lva","Studium","Fetprofile", "Gremium"] accepts_nested_attributes_for :calentries, :allow_destroy=>true , :reject_if=> lambda{|a| a[:start].blank?} before_validation :sanitize - has_many :nlinks + + + def self.published where("datum <= ? AND datum IS NOT NULL", Time.now.to_date) end @@ -55,9 +59,9 @@ class Neuigkeit < ActiveRecord::Base def reverse_publish self.datum = nil end - def name -self.title -end + def name + self.title + end def text_first_words md = /
(? <%= notice %>
+
-<%= raw(@studium.qualifikation) %>
-
+ <%= raw(@studium.qualifikation) %>
+ <%= @studium.typ %> <%= @studium.name %> (<%= @studium.zahl %>)
Qualifikationsprofil
-Qualifikationsprofil
+
+ <%= render :partial=>'layouts/pretty_toolbar', :object=>@toolbar_modulgruppen %>
+
<%= render 'layouts/pretty_toolbar' %>
diff --git a/app/views/themengruppen/_themengruppe.html.erb b/app/views/themengruppen/_themengruppe.html.erb
index 3070f82..7e99e23 100644
--- a/app/views/themengruppen/_themengruppe.html.erb
+++ b/app/views/themengruppen/_themengruppe.html.erb
@@ -1,4 +1,4 @@
-<%= link_to themengruppe,{:class=>'linkbox color-4-dark'} do %>
+<%= link_to themengruppe,{:class=>'linkbox color-1-dark'} do %>