diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index ab46a0b..bd9a219 100755 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -40,3 +40,14 @@ margin-bottom: 20px width:100%; } + +.navbar .nav li { +min-width:60%; + +} +.navbar .nav .divider { +border-style: solid; +border-width: 1px 0px 0px 0px; +border-color: grey; +min-width: 100%; +} \ No newline at end of file diff --git a/app/controllers/calendars_controller.rb b/app/controllers/calendars_controller.rb index 059a7f0..5a250b7 100644 --- a/app/controllers/calendars_controller.rb +++ b/app/controllers/calendars_controller.rb @@ -1,6 +1,7 @@ class CalendarsController < ApplicationController # GET /calendars # GET /calendars.json + load_and_authorize_resource def index @calendars = Calendar.all respond_to do |format| @@ -80,4 +81,6 @@ class CalendarsController < ApplicationController format.json { head :no_content } end end + def verwalten + end end diff --git a/app/controllers/neuigkeiten_controller.rb b/app/controllers/neuigkeiten_controller.rb index cd8db04..b09973e 100755 --- a/app/controllers/neuigkeiten_controller.rb +++ b/app/controllers/neuigkeiten_controller.rb @@ -1,5 +1,6 @@ class NeuigkeitenController < ApplicationController before_filter {@toolbar_elements=[]} + load_and_authorize_resource def index @neuigkeiten = Neuigkeit.all end @@ -14,8 +15,8 @@ class NeuigkeitenController < ApplicationController def new @neuigkeit = Neuigkeit.new - @rubrik=Rubrik.find(params[:rubrik_id]) - @neuigkeit.rubrik=@rubrik + @rubrik=Rubrik.find(params[:rubrik_id]) unless params[:rubrik_id].nil? + @neuigkeit.rubrik=@rubrik unless @rubrik.nil? end @@ -25,7 +26,7 @@ class NeuigkeitenController < ApplicationController def create @neuigkeit = Neuigkeit.new(params[:neuigkeit]) - + @rubrik = @neuigkeit.rubrik respond_to do |format| if @neuigkeit.save format.html { redirect_to @neuigkeit, notice: 'Neuigkeit was successfully created.' } diff --git a/app/controllers/rubriken_controller.rb b/app/controllers/rubriken_controller.rb index e28aaec..bbff5b5 100755 --- a/app/controllers/rubriken_controller.rb +++ b/app/controllers/rubriken_controller.rb @@ -1,5 +1,6 @@ class RubrikenController < ApplicationController before_filter {@toolbar_elements=[]} + load_and_authorize_resource def index @rubriken = Rubrik.all diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 98c53df..0a1b2db 100755 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -3,7 +3,11 @@ class UsersController < ApplicationController @users = User.all end def add_role - @user.find(params[:id]) + @user= User.find(params[:id]) @user.add_role(params[:role]) end + def do_confirm + @user= User.find(params[:id]) + @user.confirm! + end end diff --git a/app/models/ability.rb b/app/models/ability.rb index 51a0d5d..97c1a45 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -28,22 +28,44 @@ class Ability # For Debug allow everything # Remove this line in production environment and for testing user management can :manage, :all - + can [:show, :index], Studium + can [:show, :index], Modulgruppe + can [:show, :index], Modul + can [:show, :index], Lva + # Rechteverwaltung f�r Studien Modul can :read, Modulgruppe + + + # Rechteverwaltung Kalender + can [:show, :index], Calendar, :public => true + can [:show], Calentry + if( user.has_role?("fetuser") || user.has_role?("fetadmin")) + can :manage, Modulgruppe - + can [:show,:index], Calendar + can [:edit, :update,:new,:create,:verwalten], Calendar + can [:edit, :update,:new,:create,:verwalten], Calentry + end + if( user.has_role?("fetadmin")) + can [:delete],Calendar + can [:delete],Calentry + end # Rechteverwaltung fuer Neuigkeiten # can :write, Neuigkeit if user.has_role?("newsmoderator", Neuigkeit.rubrik) - if user.has_role? "newsadmin" + if user.has_role?("newsadmin") || user.has_role?("fetadmin") can :addmoderator, Rubrik end - - - + can [:show, :index], [Rubrik,Neuigkeit] + if user.has_role?("newsadmin") || user.has_role?( "fetadmin") || user.has_role?( "fetuser") + can :manage, Rubrik + can :manage, Neuigkeit + end + + end end diff --git a/app/models/calendar.rb b/app/models/calendar.rb index 4f5de1d..5f317b1 100644 --- a/app/models/calendar.rb +++ b/app/models/calendar.rb @@ -2,4 +2,5 @@ class Calendar < ActiveRecord::Base attr_accessible :name, :public, :picture has_and_belongs_to_many :calentries mount_uploader :picture, PictureUploader + resourcify end diff --git a/app/models/calentry.rb b/app/models/calentry.rb index 47f90ee..d4c64bc 100644 --- a/app/models/calentry.rb +++ b/app/models/calentry.rb @@ -8,6 +8,7 @@ class Calentry < ActiveRecord::Base errors.add(:ende, "Es muss ein Endzeitpunkt vorhanden sein") end end + resourcify def start_time start end @@ -17,4 +18,5 @@ class Calentry < ActiveRecord::Base def name summary end + end diff --git a/app/views/calendars/_tabs.html.erb b/app/views/calendars/_tabs.html.erb new file mode 100644 index 0000000..3045ea7 --- /dev/null +++ b/app/views/calendars/_tabs.html.erb @@ -0,0 +1,18 @@ + diff --git a/app/views/calendars/index.html.erb b/app/views/calendars/index.html.erb index 8d6c591..ad394cb 100644 --- a/app/views/calendars/index.html.erb +++ b/app/views/calendars/index.html.erb @@ -1,5 +1,13 @@ -

Listing calendars

+
+
+
+<%= render 'tabs' %> +
+
+
+
+

<%= I18n.t 'calendars.calendar' %>

<% @calendars.each do |calendar| %>
<% end %> - -<%= link_to 'New Calendar', new_calendar_path %> +
+
+
+
+<%= link_to 'New Calendar', new_calendar_path unless cannot?(:new, Calendar) %> +
+
+ diff --git a/app/views/calendars/show.html.erb b/app/views/calendars/show.html.erb index cb20b2a..3ad52d1 100644 --- a/app/views/calendars/show.html.erb +++ b/app/views/calendars/show.html.erb @@ -1,4 +1,9 @@
+
+
+<%= render 'calendars/tabs' %> +
+

<%= notice %>

@@ -22,8 +27,8 @@
-<%= link_to 'New Entry', new_calentry_path, {:class=>"btn"} %> -<%= link_to 'Edit', edit_calendar_path(@calendar), {:class=>"btn"} %> +<%= link_to 'New Entry', new_calentry_path, {:class=>"btn"} unless cannot? :new, Calendar%> +<%= link_to 'Edit', edit_calendar_path(@calendar), {:class=>"btn"} unless cannot? :edit, Calendar %> <%= link_to 'Back', calendars_path, {:class=>"btn"} %>
diff --git a/app/views/home/index.html.erb b/app/views/home/index.html.erb index 6e2e796..6f48250 100755 --- a/app/views/home/index.html.erb +++ b/app/views/home/index.html.erb @@ -19,3 +19,4 @@ alle anderen sind nur zur Voransicht. Bezüglich Design und Steuerung sind Vorsc

<%= t 'home.hallobeiderfet' %>

<%= link_to "Entwicklungsstatus" , home_dev_path %> +<%= render 'layouts/login' %> diff --git a/app/views/layouts/_login.html.erb b/app/views/layouts/_login.html.erb new file mode 100644 index 0000000..7a65018 --- /dev/null +++ b/app/views/layouts/_login.html.erb @@ -0,0 +1,9 @@ +<% if user_signed_in? %> +
  • Logged in as : <%= current_user.email %> + <%= link_to('Logout', destroy_user_session_path, :method => :delete) %> +
  • + <% else %> +
  • + <%= link_to('Login', new_user_session_path) %> +
  • + <% end %> diff --git a/app/views/layouts/menu.html.erb b/app/views/layouts/menu.html.erb index 0d1ce24..3c3e69b 100755 --- a/app/views/layouts/menu.html.erb +++ b/app/views/layouts/menu.html.erb @@ -1,6 +1,6 @@
    diff --git a/app/views/neuigkeiten/new.html.erb b/app/views/neuigkeiten/new.html.erb index 597e29f..cb7500e 100755 --- a/app/views/neuigkeiten/new.html.erb +++ b/app/views/neuigkeiten/new.html.erb @@ -2,4 +2,4 @@ <%= render 'form' %> -<%= link_to 'Back', rubrik_path(@rubrik) %> +<%= link_to 'Back', rubrik_path(@rubrik) unless @rubrik.nil? %> diff --git a/app/views/rubriken/_tabs.html.erb b/app/views/rubriken/_tabs.html.erb new file mode 100644 index 0000000..86af436 --- /dev/null +++ b/app/views/rubriken/_tabs.html.erb @@ -0,0 +1,18 @@ + diff --git a/app/views/rubriken/index.html.erb b/app/views/rubriken/index.html.erb index 6dd3706..7591824 100755 --- a/app/views/rubriken/index.html.erb +++ b/app/views/rubriken/index.html.erb @@ -1,6 +1,7 @@ + + +<%= render 'tabs' %>

    <%= I18n.t("rubrik.title")%>

    - - <% @rubriken.each do |rubrik| %> @@ -16,4 +17,4 @@
    -<%= link_to 'New Rubrik', new_rubrik_path %> +<%= link_to 'New Rubrik', new_rubrik_path unless cannot?(:new, Rubrik) %> diff --git a/app/views/rubriken/show.html.erb b/app/views/rubriken/show.html.erb index b17ecd1..380d922 100755 --- a/app/views/rubriken/show.html.erb +++ b/app/views/rubriken/show.html.erb @@ -1,10 +1,5 @@ +<%= render 'tabs' %> -

    <%= notice %>

    diff --git a/app/views/users/index.html.erb b/app/views/users/index.html.erb index f630561..c1dc0f3 100755 --- a/app/views/users/index.html.erb +++ b/app/views/users/index.html.erb @@ -5,12 +5,27 @@ <% @users.each do |user|%> - - + + +<% end %> +<% end %>
    NameE-MailRollen
    E-MailRollenActions
    <%= user.email %>
      <% user.roles.each do |role| %>
    • <%= role.name%>
    • -<% end %>
    <%= link_to 'MK FETUSER', user_add_role_path(user, "fetadmin")%> + +
    + + Action + + + +
    +
    diff --git a/config/locales/calendars.de.yml b/config/locales/calendars.de.yml new file mode 100644 index 0000000..f109d8c --- /dev/null +++ b/config/locales/calendars.de.yml @@ -0,0 +1,5 @@ + +de: + calendars: + alle: "Alle Kalender" + calendar: "Kalender" diff --git a/config/locales/date.de.yml b/config/locales/date.de.yml new file mode 100644 index 0000000..c4004ef --- /dev/null +++ b/config/locales/date.de.yml @@ -0,0 +1,196 @@ +de: + date: + abbr_day_names: + - So + - Mo + - Di + - Mi + - Do + - Fr + - Sa + abbr_month_names: + - + - Jan + - Feb + - Mär + - Apr + - Mai + - Jun + - Jul + - Aug + - Sep + - Okt + - Nov + - Dez + day_names: + - Sonntag + - Montag + - Dienstag + - Mittwoch + - Donnerstag + - Freitag + - Samstag + formats: + default: ! '%d.%m.%Y' + long: ! '%e. %B %Y' + short: ! '%e. %b' + month_names: + - + - Januar + - Februar + - März + - April + - Mai + - Juni + - Juli + - August + - September + - Oktober + - November + - Dezember + order: + - :day + - :month + - :year + datetime: + distance_in_words: + about_x_hours: + one: etwa eine Stunde + other: etwa %{count} Stunden + about_x_months: + one: etwa ein Monat + other: etwa %{count} Monate + about_x_years: + one: etwa ein Jahr + other: etwa %{count} Jahre + almost_x_years: + one: fast ein Jahr + other: fast %{count} Jahre + half_a_minute: eine halbe Minute + less_than_x_minutes: + one: weniger als eine Minute + other: weniger als %{count} Minuten + less_than_x_seconds: + one: weniger als eine Sekunde + other: weniger als %{count} Sekunden + over_x_years: + one: mehr als ein Jahr + other: mehr als %{count} Jahre + x_days: + one: ein Tag + other: ! '%{count} Tage' + x_minutes: + one: eine Minute + other: ! '%{count} Minuten' + x_months: + one: ein Monat + other: ! '%{count} Monate' + x_seconds: + one: eine Sekunde + other: ! '%{count} Sekunden' + prompts: + day: Tag + hour: Stunden + minute: Minuten + month: Monat + second: Sekunden + year: Jahr + errors: + format: ! '%{attribute} %{message}' + messages: + accepted: muss akzeptiert werden + blank: muss ausgefüllt werden + confirmation: stimmt nicht mit der Bestätigung überein + empty: muss ausgefüllt werden + equal_to: muss genau %{count} sein + even: muss gerade sein + exclusion: ist nicht verfügbar + greater_than: muss größer als %{count} sein + greater_than_or_equal_to: muss größer oder gleich %{count} sein + inclusion: ist kein gültiger Wert + invalid: ist nicht gültig + less_than: muss kleiner als %{count} sein + less_than_or_equal_to: muss kleiner oder gleich %{count} sein + not_a_number: ist keine Zahl + not_an_integer: muss ganzzahlig sein + odd: muss ungerade sein + record_invalid: ! 'Gültigkeitsprüfung ist fehlgeschlagen: %{errors}' + taken: ist bereits vergeben + too_long: ist zu lang (nicht mehr als %{count} Zeichen) + too_short: ist zu kurz (nicht weniger als %{count} Zeichen) + wrong_length: hat die falsche Länge (muss genau %{count} Zeichen haben) + template: + body: ! 'Bitte überprüfen Sie die folgenden Felder:' + header: + one: ! 'Konnte %{model} nicht speichern: ein Fehler.' + other: ! 'Konnte %{model} nicht speichern: %{count} Fehler.' + helpers: + select: + prompt: Bitte wählen + submit: + create: ! '%{model} erstellen' + submit: ! '%{model} speichern' + update: ! '%{model} aktualisieren' + number: + currency: + format: + delimiter: . + format: ! '%n %u' + precision: 2 + separator: ! ',' + significant: false + strip_insignificant_zeros: false + unit: € + format: + delimiter: . + precision: 2 + separator: ! ',' + significant: false + strip_insignificant_zeros: false + human: + decimal_units: + format: ! '%n %u' + units: + billion: + one: Milliarde + other: Milliarden + million: Millionen + quadrillion: + one: Billiarde + other: Billiarden + thousand: Tausend + trillion: Billionen + unit: '' + format: + delimiter: '' + precision: 1 + significant: true + strip_insignificant_zeros: true + storage_units: + format: ! '%n %u' + units: + byte: + one: Byte + other: Bytes + gb: GB + kb: KB + mb: MB + tb: TB + percentage: + format: + delimiter: '' + precision: + format: + delimiter: '' + support: + array: + last_word_connector: ! ' und ' + two_words_connector: ! ' und ' + words_connector: ! ', ' + time: + am: vormittags + formats: + default: ! '%d.%m.%Y, %H:%M Uhr' + long: ! '%A, %d. %B %Y, %H:%M Uhr' + short: ! '%d.%m.%Y, %H:%M Uhr' + pm: nachmittags diff --git a/config/locales/de.yml b/config/locales/de.yml index 8dbaa04..2784350 100755 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -39,9 +39,7 @@ de: show: title: "Auflistung aller Modulgruppen" link: "Modulgruppen auflisten" - neuigkeit: - new: - title: "Neue Neuigkeit" + home: mtitle: "Menu" willkommen: "Willkommen bei der Fachschaft Elektrotechnik" @@ -50,13 +48,7 @@ de: studien: "Studien" news: "Neuigkeiten" info: "Information" - - rubrik: - title: "Neuigkeiten und aktuelle Infos" - moderatoradded: "Neuen Moderator hinzugefügt!" - moderatoraddnorights: "Keine Berechtigung neue Moderatoren hinzuzufügen!" - new: "Neue Rubrik" - edit: "Rubrik bearbeiten" + formtastic: titles: modul: @@ -131,198 +123,3 @@ de: support: array: two_words_connector: ', ' - date: - abbr_day_names: - - So - - Mo - - Di - - Mi - - Do - - Fr - - Sa - abbr_month_names: - - - - Jan - - Feb - - Mär - - Apr - - Mai - - Jun - - Jul - - Aug - - Sep - - Okt - - Nov - - Dez - day_names: - - Sonntag - - Montag - - Dienstag - - Mittwoch - - Donnerstag - - Freitag - - Samstag - formats: - default: ! '%d.%m.%Y' - long: ! '%e. %B %Y' - short: ! '%e. %b' - month_names: - - - - Januar - - Februar - - März - - April - - Mai - - Juni - - Juli - - August - - September - - Oktober - - November - - Dezember - order: - - :day - - :month - - :year - datetime: - distance_in_words: - about_x_hours: - one: etwa eine Stunde - other: etwa %{count} Stunden - about_x_months: - one: etwa ein Monat - other: etwa %{count} Monate - about_x_years: - one: etwa ein Jahr - other: etwa %{count} Jahre - almost_x_years: - one: fast ein Jahr - other: fast %{count} Jahre - half_a_minute: eine halbe Minute - less_than_x_minutes: - one: weniger als eine Minute - other: weniger als %{count} Minuten - less_than_x_seconds: - one: weniger als eine Sekunde - other: weniger als %{count} Sekunden - over_x_years: - one: mehr als ein Jahr - other: mehr als %{count} Jahre - x_days: - one: ein Tag - other: ! '%{count} Tage' - x_minutes: - one: eine Minute - other: ! '%{count} Minuten' - x_months: - one: ein Monat - other: ! '%{count} Monate' - x_seconds: - one: eine Sekunde - other: ! '%{count} Sekunden' - prompts: - day: Tag - hour: Stunden - minute: Minuten - month: Monat - second: Sekunden - year: Jahr - errors: - format: ! '%{attribute} %{message}' - messages: - accepted: muss akzeptiert werden - blank: muss ausgefüllt werden - confirmation: stimmt nicht mit der Bestätigung überein - empty: muss ausgefüllt werden - equal_to: muss genau %{count} sein - even: muss gerade sein - exclusion: ist nicht verfügbar - greater_than: muss größer als %{count} sein - greater_than_or_equal_to: muss größer oder gleich %{count} sein - inclusion: ist kein gültiger Wert - invalid: ist nicht gültig - less_than: muss kleiner als %{count} sein - less_than_or_equal_to: muss kleiner oder gleich %{count} sein - not_a_number: ist keine Zahl - not_an_integer: muss ganzzahlig sein - odd: muss ungerade sein - record_invalid: ! 'Gültigkeitsprüfung ist fehlgeschlagen: %{errors}' - taken: ist bereits vergeben - too_long: ist zu lang (nicht mehr als %{count} Zeichen) - too_short: ist zu kurz (nicht weniger als %{count} Zeichen) - wrong_length: hat die falsche Länge (muss genau %{count} Zeichen haben) - template: - body: ! 'Bitte überprüfen Sie die folgenden Felder:' - header: - one: ! 'Konnte %{model} nicht speichern: ein Fehler.' - other: ! 'Konnte %{model} nicht speichern: %{count} Fehler.' - helpers: - select: - prompt: Bitte wählen - submit: - create: ! '%{model} erstellen' - submit: ! '%{model} speichern' - update: ! '%{model} aktualisieren' - number: - currency: - format: - delimiter: . - format: ! '%n %u' - precision: 2 - separator: ! ',' - significant: false - strip_insignificant_zeros: false - unit: € - format: - delimiter: . - precision: 2 - separator: ! ',' - significant: false - strip_insignificant_zeros: false - human: - decimal_units: - format: ! '%n %u' - units: - billion: - one: Milliarde - other: Milliarden - million: Millionen - quadrillion: - one: Billiarde - other: Billiarden - thousand: Tausend - trillion: Billionen - unit: '' - format: - delimiter: '' - precision: 1 - significant: true - strip_insignificant_zeros: true - storage_units: - format: ! '%n %u' - units: - byte: - one: Byte - other: Bytes - gb: GB - kb: KB - mb: MB - tb: TB - percentage: - format: - delimiter: '' - precision: - format: - delimiter: '' - support: - array: - last_word_connector: ! ' und ' - two_words_connector: ! ' und ' - words_connector: ! ', ' - time: - am: vormittags - formats: - default: ! '%d.%m.%Y, %H:%M Uhr' - long: ! '%A, %d. %B %Y, %H:%M Uhr' - short: ! '%d.%m.%Y, %H:%M Uhr' - pm: nachmittags \ No newline at end of file diff --git a/config/locales/neuigkeiten.de.yml b/config/locales/neuigkeiten.de.yml new file mode 100644 index 0000000..3e1aca0 --- /dev/null +++ b/config/locales/neuigkeiten.de.yml @@ -0,0 +1,22 @@ + +de: + neuigkeit: + new: + title: "Neue Neuigkeit" + rubriken: + alle: "Alle Rubriken" + rubrik: + title: "Neuigkeiten und aktuelle Infos" + moderatoradded: "Neuen Moderator hinzugefügt!" + moderatoraddnorights: "Keine Berechtigung neue Moderatoren hinzuzufügen!" + new: "Neue Rubrik" + edit: "Rubrik bearbeiten" + + activerecord: + errors: + models: + neuigkeit: + attributes: + title: + blank: "Bitte einen Titel angeben" + diff --git a/config/routes.rb b/config/routes.rb index bc24ab4..c29421b 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,6 +6,8 @@ scope '(:locale)/admin' do resources :users, :only => [:index] get 'users/:id/add_role/:role', :controller=>:users, :action=>:add_role, :as=>'user_add_role' + get 'users/:id/do_confirm', :controller=>:users, :action=>:do_confirm, :as=>'user_do_confirm' + get 'config',:controller=>:config,:action=>:index , :as => 'config' get 'config/get_git_update',:controller=>:config,:action=>:get_git_update, :as=>'config_getgitupdate' get 'config/get_git_update',:controller=>:config,:action=>:get_git_update @@ -43,6 +45,8 @@ end put 'rubriken/(:id)/addmoderator',:controller=>:rubriken,:action=>:addmoderator get 'rubriken/:id/verwalten',:controller=>:rubriken,:action=>:verwalten, :as=>'verwalten_rubrik' + get 'rubriken/verwalten',:controller=>:rubriken,:action=>:alle_verwalten, :as=>'rubriken_verwalten' + resources :home, :only=>[:index] get 'home/dev', :controller=>:home, :action=>:dev, :as=>'home_dev' resources :beispiele @@ -52,6 +56,8 @@ end resources :calendars + get 'verwalten/calendars', :controller=>:calendars, :action=>:verwalten, :as=>'calendars_verwalten' + resources :calentries end