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/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/models/ability.rb b/app/models/ability.rb index 91c4509..3257ef6 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 @@ -81,6 +57,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 = /
(?