Skip to content

Commit

Permalink
#68170636 merging fs_automatic_access_ip for demo
Browse files Browse the repository at this point in the history
  • Loading branch information
nimaai committed Apr 6, 2014
1 parent 6d302f1 commit 01d4f7b
Show file tree
Hide file tree
Showing 27 changed files with 210 additions and 123 deletions.
Expand Up @@ -11,7 +11,6 @@

class Authenticator::ShibbolethAuthenticationController < Authenticator::AuthenticatorController

DEFAULT_INVENTORY_POOLS = ["ITZ-Ausleihe", "AV-Ausleihe"]
SUPER_USERS = ["e157339@zhdk.ch", "e159123@zhdk.ch", "e10262@zhdk.ch", "e162205@zhdk.ch", "e171014@zhdk.ch"] #Jerome, Franco, Ramon, Tomáš
AUTHENTICATION_SYSTEM_CLASS_NAME = "ShibbolethAuthentication"

Expand Down Expand Up @@ -68,15 +67,7 @@ def create_or_update_user
user.lastname = "#{ENV['surname']}"
user.login = "#{user.firstname} #{user.lastname}"
user.authentication_system = AuthenticationSystem.where(:class_name => AUTHENTICATION_SYSTEM_CLASS_NAME).first
if user.new_record?
user.save
ips = InventoryPool.where(:name => DEFAULT_INVENTORY_POOLS)
ips.each do |ip|
user.access_rights.create(:role => :customer, :inventory_pool => ip)
end
else
user.save
end
user.save

if SUPER_USERS.include?(user.unique_id)
user.access_rights.create(:role => :admin, :inventory_pool => nil)
Expand Down
13 changes: 2 additions & 11 deletions app/controllers/authenticator/zhdk_controller.rb
Expand Up @@ -6,7 +6,6 @@ class Authenticator::ZhdkController < Authenticator::AuthenticatorController

AUTHENTICATION_URL = 'http://www.zhdk.ch/?auth/leihs2'
APPLICATION_IDENT = '7f6d33ca2ad44359c826e2337d9315b1'
DEFAULT_INVENTORY_POOLS = ["ITZ-Ausleihe", "AV-Ausleihe", "Veranstaltungstechnik"]
SUPER_USERS = ["e157339|zhdk", "e159123|zhdk", "e10262|zhdk", "e162205|zhdk", "e171014|zhdk"] #Jerome, Franco, Ramon, Tomáš
AUTHENTICATION_SYSTEM_CLASS_NAME = "Zhdk"

Expand Down Expand Up @@ -55,16 +54,8 @@ def create_or_update_user(xml)
user.city = "#{xml["authresponse"]["person"]["place"]}"
user.authentication_system = AuthenticationSystem.where(:class_name => AUTHENTICATION_SYSTEM_CLASS_NAME).first
user.extended_info = xml["authresponse"]["person"]
if user.new_record?
user.save
ips = InventoryPool.where(:name => DEFAULT_INVENTORY_POOLS)
ips.each do |ip|
user.access_rights.create(:role => :customer, :inventory_pool => ip)
end
else
user.save
end

user.save

if SUPER_USERS.include?(user.unique_id)
user.access_rights.create(:role => :admin, :inventory_pool => nil)
end
Expand Down
5 changes: 4 additions & 1 deletion app/controllers/manage/users_controller.rb
Expand Up @@ -126,7 +126,10 @@ def create_in_inventory_pool
@user.update_attributes!(authentication_system_id: AuthenticationSystem.find_by_class_name(DatabaseAuthentication.name).id)
end

@user.access_rights.create!(inventory_pool: @current_inventory_pool, role: params[:access_right][:role]) unless params[:access_right][:role].to_sym == :no_access
unless params[:access_right][:role].to_sym == :no_access
ar = @user.access_right_for(@current_inventory_pool) || @user.access_rights.build(inventory_pool: @current_inventory_pool)
ar.update_attributes! role: params[:access_right][:role]
end

respond_to do |format|
format.html do
Expand Down
7 changes: 7 additions & 0 deletions app/models/user.rb
Expand Up @@ -77,6 +77,13 @@ def with_general
self.language ||= Language.default_language
end

after_create do
ips = InventoryPool.where(automatic_access: true)
ips.each do |ip|
access_rights.create(:role => :customer, :inventory_pool => ip)
end
end

################################################

SEARCHABLE_FIELDS = %w(login firstname lastname badge_id)
Expand Down
7 changes: 7 additions & 0 deletions app/views/manage/inventory_pools/_form.html.haml
Expand Up @@ -73,6 +73,13 @@
.col1of2.text-align-right
%textarea{type: "text", name: "inventory_pool[automatic_suspension_reason]", rows: 6}= @inventory_pool.automatic_suspension_reason

.row.padding-inset-s.emboss.margin-bottom-xxs
%strong.font-size-m= _("Automatic access")
%div.padding-top-xs
= _("New users will get customer access automatically.")
.col1of2.text-align-center
%input{type: "checkbox", name: "inventory_pool[automatic_access]", checked: @inventory_pool.automatic_access}

.col1of2.padding-left-xs

%h2.headline-m.padding-left-s= _("Workdays")
Expand Down
@@ -0,0 +1,15 @@
class AddAutomaticAccessToInventoryPool < ActiveRecord::Migration
def change
add_column :inventory_pools, :automatic_access, :boolean

# the ZHdK authentication controller is not giving access rights anymore
# then we flag ips and the access rights are created in the after_create hook in user model
if AuthenticationSystem.default_system.first.try(:name) == "ZHDK Authentication"
zhdk_default_inventory_pools = ["ITZ-Ausleihe", "AV-Ausleihe", "Veranstaltungstechnik"]
ips = InventoryPool.where(:name => zhdk_default_inventory_pools)
ips.each do |ip|
ip.update_attributes automatic_access: true
end
end
end
end
12 changes: 12 additions & 0 deletions db/structure_with_views.sql
Expand Up @@ -503,6 +503,10 @@ CREATE TABLE `inventory_pools` (
`address_id` int(11) DEFAULT NULL,
`automatic_suspension` tinyint(1) NOT NULL DEFAULT '0',
`automatic_suspension_reason` text COLLATE utf8_unicode_ci,
<<<<<<< HEAD
=======
`automatic_access` tinyint(1) DEFAULT NULL,
>>>>>>> fs_automatic_access_ip
PRIMARY KEY (`id`),
UNIQUE KEY `index_inventory_pools_on_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Expand Down Expand Up @@ -1006,7 +1010,11 @@ CREATE TABLE `schema_migrations` (

LOCK TABLES `schema_migrations` WRITE;
/*!40000 ALTER TABLE `schema_migrations` DISABLE KEYS */;
<<<<<<< HEAD
INSERT INTO `schema_migrations` VALUES ('20101213125330'),('20110111175705'),('20110117113700'),('20110119193618'),('20110201160119'),('20110222163245'),('20110318110901'),('20110523133506'),('20110617090905'),('20110704075302'),('20110815110417'),('20110921134810'),('20111123154235'),('20111215221843'),('20120106214650'),('20120301140904'),('20120424080000'),('20120424080001'),('20120427113142'),('20120523134739'),('20120618143839'),('20120619083752'),('20120806140527'),('20120806203246'),('20120806203332'),('20120921102118'),('20121109141157'),('20130111105833'),('20130729120232'),('20130730145452'),('20130823104438'),('20130906084646'),('20130923141326'),('20130924180000'),('20130924180001'),('20131118144431'),('20131121171123'),('20140115134047'),('20140116125357'),('20140203140055'),('20140214111545'),('20140225143238'),('20140318103544'),('20140328105448');
=======
INSERT INTO `schema_migrations` VALUES ('20101213125330'),('20110111175705'),('20110117113700'),('20110119193618'),('20110201160119'),('20110222163245'),('20110318110901'),('20110523133506'),('20110617090905'),('20110704075302'),('20110815110417'),('20110921134810'),('20111123154235'),('20111215221843'),('20120106214650'),('20120301140904'),('20120424080000'),('20120424080001'),('20120427113142'),('20120523134739'),('20120618143839'),('20120619083752'),('20120806140527'),('20120806203246'),('20120806203332'),('20120921102118'),('20121109141157'),('20130111105833'),('20130729120232'),('20130730145452'),('20130823104438'),('20130906084646'),('20130923141326'),('20130924180000'),('20130924180001'),('20131118144431'),('20131121171123'),('20140115134047'),('20140116125357'),('20140203140055'),('20140214111545'),('20140225143238'),('20140318103544'),('20140328105448'),('20140402135726');
>>>>>>> fs_automatic_access_ip
/*!40000 ALTER TABLE `schema_migrations` ENABLE KEYS */;
UNLOCK TABLES;

Expand Down Expand Up @@ -1271,4 +1279,8 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

<<<<<<< HEAD
-- Dump completed on 2014-04-02 15:08:53
=======
-- Dump completed on 2014-04-02 16:35:08
>>>>>>> fs_automatic_access_ip
4 changes: 2 additions & 2 deletions features/examples/benutzerverwaltung10.feature
Expand Up @@ -9,7 +9,7 @@ Funktionalität: Benutzer verwalten
Angenommen man ist "Gino"
Und man befindet sich auf der Editierseite eines Benutzers, der kein Administrator ist und der Zugriffe auf Inventarpools hat
Wenn man diesen Benutzer die Rolle Administrator zuweist
Und man speichert den Benutzer
Und ich speichere
Dann sieht man die Erfolgsbestätigung
Und hat dieser Benutzer die Rolle Administrator
Und alle andere Zugriffe auf Inventarpools bleiben beibehalten
Expand All @@ -18,7 +18,7 @@ Funktionalität: Benutzer verwalten
Angenommen man ist "Gino"
Und man befindet sich auf der Editierseite eines Benutzers, der ein Administrator ist und der Zugriffe auf Inventarpools hat
Wenn man diesem Benutzer die Rolle Administrator wegnimmt
Und man speichert den Benutzer
Und ich speichere
Dann hat dieser Benutzer die Rolle Administrator nicht mehr
Und alle andere Zugriffe auf Inventarpools bleiben beibehalten

Expand Down
2 changes: 1 addition & 1 deletion features/examples/benutzerverwaltung11.feature
Expand Up @@ -27,6 +27,6 @@ Funktionalität: Benutzer verwalten
| Gruppen-Verwalter | group_manager |
| Ausleihe-Verwalter | lending_manager |
Und man teilt mehrere Gruppen zu
Und man speichert den Benutzer
Und ich speichere
Dann ist der Benutzer mit all den Informationen gespeichert

2 changes: 1 addition & 1 deletion features/examples/benutzerverwaltung12.feature
Expand Up @@ -14,7 +14,7 @@ Funktionalität: Benutzer verwalten
Und den Vornahmen eingibt
Und die Email-Addresse eingibt
Und man gibt die Login-Daten ein
Und man speichert den Benutzer
Und ich speichere
Dann wird man auf die Benutzerliste ausserhalb der Inventarpools umgeleitet
Und man sieht eine Bestätigungsmeldung
Und der neue Benutzer wurde erstellt
Expand Down
2 changes: 1 addition & 1 deletion features/examples/benutzerverwaltung13.feature
Expand Up @@ -24,5 +24,5 @@ Funktionalität: Benutzer verwalten
Angenommen man ist "Pius"
Und man editiert einen Benutzer der Zugriff auf das aktuelle Inventarpool hat
Wenn man den Zugriff entfernt
Und man speichert den Benutzer
Und ich speichere
Dann hat der Benutzer keinen Zugriff auf das Inventarpool
2 changes: 1 addition & 1 deletion features/examples/benutzerverwaltung14.feature
Expand Up @@ -19,7 +19,7 @@ Funktionalität: Benutzer verwalten
Angenommen man ist "Gino"
Und man editiert einen Benutzer der Zugriff auf ein Inventarpool hat
Wenn man den Zugriff entfernt
Und man speichert den Benutzer
Und ich speichere
Dann hat der Benutzer keinen Zugriff auf das Inventarpool

Szenario: Startseite setzen
Expand Down
4 changes: 2 additions & 2 deletions features/examples/benutzerverwaltung4.feature
Expand Up @@ -10,7 +10,7 @@ Funktionalität: Benutzer verwalten
Angenommen man ist "Mike"
Und man editiert einen Benutzer der Zugriff auf das aktuelle Inventarpool hat und keine Gegenstände mehr zurückzugeben hat
Wenn man den Zugriff entfernt
Und man speichert den Benutzer
Und ich speichere
Dann hat der Benutzer keinen Zugriff auf das Inventarpool

@javascript @upcoming
Expand Down Expand Up @@ -51,5 +51,5 @@ Funktionalität: Benutzer verwalten
| Ausleihe-Verwalter | lending_manager |
| Inventar-Verwalter | inventory_manager |
Und man teilt mehrere Gruppen zu
Und man speichert den Benutzer
Und ich speichere
Dann ist der Benutzer mit all den Informationen gespeichert
8 changes: 4 additions & 4 deletions features/examples/benutzerverwaltung5.feature
Expand Up @@ -15,15 +15,15 @@ Funktionalität: Benutzer verwalten
| Group manager |
| Lending manager |
Wenn man den Zugriff auf "Ausleihe-Verwalter" ändert
Und man speichert den Benutzer
Und ich speichere
Dann hat der Benutzer die Rolle Ausleihe-Verwalter

@javascript
Szenario: Zugriff auf Kunde ändern als Ausleihe-Verwalter
Angenommen man ist "Pius"
Und man editiert einen Benutzer der Ausleihe-Verwalter ist
Wenn man den Zugriff auf "Kunde" ändert
Und man speichert den Benutzer
Und ich speichere
Dann hat der Benutzer die Rolle Kunde

@javascript
Expand All @@ -37,14 +37,14 @@ Funktionalität: Benutzer verwalten
| Lending manager |
| Inventory manager |
Wenn man den Zugriff auf "Inventar-Verwalter" ändert
Und man speichert den Benutzer
Und ich speichere
Dann hat der Benutzer die Rolle Inventar-Verwalter

@javascript
Szenario: Zugriff auf ein Inventarpool gewährleisten als Inventar-Verwalter
Angenommen man ist "Mike"
Und man editiert einen Benutzer der kein Zugriff auf das aktuelle Inventarpool hat
Wenn man den Zugriff auf "Kunde" ändert
Und man speichert den Benutzer
Und ich speichere
Dann sieht man die Erfolgsbestätigung
Und hat der Benutzer die Rolle Kunde
2 changes: 1 addition & 1 deletion features/examples/benutzerverwaltung6.feature
Expand Up @@ -16,7 +16,7 @@ Funktionalität: Benutzer verwalten
| Lending manager |
| Inventory manager |
Wenn man den Zugriff auf "Inventar-Verwalter" ändert
Und man speichert den Benutzer
Und ich speichere
Dann hat der Benutzer die Rolle Inventar-Verwalter

@javascript
Expand Down
2 changes: 1 addition & 1 deletion features/examples/benutzerverwaltung7.feature
Expand Up @@ -16,7 +16,7 @@ Funktionalität: Benutzer verwalten
Angenommen man ist "Pius"
Und man editiert einen Benutzer der kein Zugriff auf das aktuelle Inventarpool hat
Wenn man ändert die Email
Und man speichert den Benutzer
Und ich speichere
Dann sieht man die Erfolgsbestätigung
Und die neue Email des Benutzers wurde gespeichert
Und der Benutzer hat nach wie vor keinen Zugriff auf das aktuelle Inventarpool
4 changes: 2 additions & 2 deletions features/examples/benutzerverwaltung8.feature
Expand Up @@ -29,7 +29,7 @@ Funktionalität: Benutzer verwalten
| Ausleihe-Verwalter | lending_manager |
| Inventar-Verwalter | inventory_manager |
Und man teilt mehrere Gruppen zu
Und man speichert den Benutzer
Und ich speichere
Dann ist der Benutzer mit all den Informationen gespeichert

@javascript
Expand All @@ -39,7 +39,7 @@ Funktionalität: Benutzer verwalten
Und man einen Benutzer hinzufügt
Und alle Pflichtfelder sind sichtbar und abgefüllt
Wenn man ein <Pflichtfeld> nicht eingegeben hat
Und man speichert den Benutzer
Und ich speichere
Dann sehe ich eine Fehlermeldung

Beispiele:
Expand Down
2 changes: 1 addition & 1 deletion features/examples/benutzerverwaltung9.feature
Expand Up @@ -10,7 +10,7 @@ Funktionalität: Benutzer verwalten
Angenommen man ist "Mike"
Und man editiert einen Benutzer der mal einen Zugriff auf das aktuelle Inventarpool hatte
Wenn man den Zugriff auf "Kunde" ändert
Und man speichert den Benutzer
Und ich speichere
Dann sieht man die Erfolgsbestätigung
Und hat der Benutzer die Rolle Kunde

Expand Down
40 changes: 22 additions & 18 deletions features/examples/geraetepark_grundinformationen.feature
Expand Up @@ -17,13 +17,13 @@ Funktionalität: Gerätepark-Grundinformationen
| E-Mail |
| Beschreibung |
| Standard-Vertragsnotiz |
| Verträge drucken |
#| Aut. zuweisen |
| Verträge drucken |
| Automatischer Zugriff |
Und ich kann die angegebenen Grundinformationen speichern
Dann sehe eine Bestätigung
Und sind die Informationen aktualisiert
Und ich bleibe auf derselben Ansicht

@javascript
Szenario: Pflichtfelder der Grundinformationen zusammen prüfen
Angenommen Personas existieren
Expand All @@ -35,40 +35,44 @@ Funktionalität: Gerätepark-Grundinformationen
| E-Mail |
Dann kann das Gerätepark nicht gespeichert werden
Und ich sehe eine Fehlermeldung
@upcoming

@javascript
Szenario: Aut. zuweisen bei Login über LDAP-Schnittstelle
Angenommen Personas existieren
Und es ist bei mehreren Geräteparks aut. Zuweisung aktiviert
Angenommen ich bin ein Benutzer, der sich zum ersten Mal einloggt
Wenn ich mich einlogge
Dann wird für meine Personendaten aus der Schnittstelle ein neuer Benutzer erstellt
Und ich kriege bei allen Geräteparks mit aut. Zuweisung die Rolle 'Kunde'

@upcoming

Szenario: Aut. zuweisen beim Benutzererstellen ausserhalb des Geräteparks
Angenommen Personas existieren
Und es ist bei mehreren Geräteparks aut. Zuweisung aktiviert
Angenommen ich bin Gino
Und ich erstelle einen neuen Benutzer
Und ich bin Gino
Und es ist bei mehreren Geräteparks aut. Zuweisung aktiviert
Und man befindet sich auf der Benutzerliste
Wenn ich einen Benutzer mit Login "username" und Passwort "password" erstellt habe
Dann kriegt der neu erstellte Benutzer bei allen Geräteparks mit aut. Zuweisung die Rolle 'Kunde'

@upcoming

Szenario: Aut. zuweisen beim Benutzererstellen innerhalb des Geräteparks
Angenommen Personas existieren
Und es ist bei mehreren und meinem Gerätepark aut. Zuweisung aktiviert
Und ich bin Mike
Wenn ich in meinem Gerätepark einen neuen Benutzer mit Rolle 'Inventar-Verwalter' erstelle
Und es ist bei mehreren Geräteparks aut. Zuweisung aktiviert
Und es ist bei meinem Gerätepark aut. Zuweisung aktiviert
Wenn ich in meinem Gerätepark einen neuen Benutzer mit Rolle 'Inventar-Verwalter' erstelle
Dann kriegt der neu erstellte Benutzer bei allen Geräteparks mit aut. Zuweisung ausser meinem die Rolle 'Kunde'
Und in meinem Gerätepark hat er die Rolle 'Inventar-Verwalter'
@upcoming

@javascript
Szenario: Aut. Zuweisen entfernen
Angenommen Personas existieren
Und ich bin Mike
Und ich editiere meinen Gerätepark
Wenn ich die aut. Zuweisung deaktiviere
Und ich speichere
Dann ist die aut. Zuweisung deaktiviert
Angenommen ich bin ein Benutzer, der sich zum ersten Mal einloggt
Dann erhalte ich keinen aut. Zugriff für diesen Gerätepark
Angenommen ich bin Gino
Und man befindet sich auf der Benutzerliste
Und ich einen Benutzer mit Login "username" und Passwort "password" erstellt habe
Angenommen ich bin Mike
Dann kriegt der neu erstellte Benutzer bei dem vorher editierten Gerätepark kein Zugriffsrecht
Und ich logge mich aus

0 comments on commit 01d4f7b

Please sign in to comment.