Changeset 1238


Ignore:
Timestamp:
01/19/12 08:53:12 (4 months ago)
Author:
aike
Message:
  • lib/Schulkonsole/Cyrus.pm, lib/Schulkonsole/Error.pm, lib/Schulkonsole/Error/Cyrus.pm, lib/Schulkonsole/Error/Files.pm, lib/Schulkonsole/Error/Firewall.pm, lib/Schulkonsole/Error/Linbo.pm, lib/Schulkonsole/Error/OVPN.pm, lib/Schulkonsole/Error/Printer.pm, lib/Schulkonsole/Error/Sophomorix.pm, lib/Schulkonsole/Error/User.pm, lib/Schulkonsole/Files.pm, lib/Schulkonsole/Firewall.pm, lib/Schulkonsole/Info.pm, lib/Schulkonsole/Linbo.pm, lib/Schulkonsole/Makefile.am, lib/Schulkonsole/OVPN.pm, lib/Schulkonsole/Printer.pm, lib/Schulkonsole/Session.pm.in, lib/Schulkonsole/Sophomorix.pm, src/util/wrapper-files.pl.in, src/util/wrapper-firewall.pl.in, src/util/wrapper-linbo.pl.in, src/util/wrapper-ovpn.pl.in, src/util/wrapper-printer.pl.in, src/util/wrapper-sophomorix.pl.in: Verwende Konstanten für Fehlercodes auch in Wrappern
  • lib/Schulkonsole/Config.pm.in, src/util/wrapper-files.pl.in, src/util/wrapper-firewall.pl.in, src/util/wrapper-linbo.pl.in, src/util/wrapper-ovpn.pl.in, src/util/wrapper-printer.pl.in, src/util/wrapper-sophomorix.pl.in: Befehle nicht mehr in Liste sondern in Variablen konfiguriert
Location:
schulkonsole/linuxmuster-schulkonsole/trunk
Files:
9 added
18 edited

Legend:

Unmodified
Added
Removed
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Config.pm.in

    r1088 r1238  
    8989        $_wrapper_linbo 
    9090 
    91         %_root_app_name_ids 
    92         @_root_apps 
     91        %_id_root_app_names 
     92        $_cmd_internet_on_off 
     93        $_cmd_intranet_on_off 
     94        $_cmd_update_logins 
     95        $_cmd_update_linbofs 
     96        $_cmd_urlfilter_check 
     97        $_cmd_urlfilter_on_off 
     98        $_cmd_linuxmuster_reset 
     99        $_cmd_printer_accept 
     100        $_cmd_printer_reject 
     101        $_cmd_printer_lpadmin 
     102        $_cmd_sophomorix_teacher 
     103        $_cmd_sophomorix_room 
     104        $_cmd_sophomorix_print 
     105        $_cmd_sophomorix_passwd 
     106        $_cmd_sophomorix_project 
     107        $_cmd_sophomorix_check 
     108        $_cmd_sophomorix_add 
     109        $_cmd_sophomorix_move 
     110        $_cmd_sophomorix_kill 
     111        $_cmd_sophomorix_teachin 
     112        $_cmd_sophomorix_quota 
     113        $_cmd_sophomorix_class 
     114        $_cmd_import_workstations 
     115        $_cmd_import_printers 
     116        $_cmd_ovpn_client_cert 
    93117 
    94118        $_shell 
     
    125149        PRINTTEACHERSAPP 
    126150        SETPASSWORDSAPP 
    127         WWWPERMISSIONSAPP 
    128         CREATEDROPDBAPP 
    129         DROPDBUSERAPP 
    130         LISTDBAPP 
    131         LISTDBUSERAPP 
    132         CREATEDROPREPOSITORYAPP 
    133         LISTREPOSITORYAPP 
    134151        PROJECTMEMBERSAPP 
    135152        PROJECTCREATEDROPAPP 
     
    237254 
    238255use constant { 
    239         INTERNETONOFFAPP => 0, 
    240         INTRANETONOFFAPP => 1, 
    241         UPDATELOGINSAPP => 2, 
    242         UPDATELINBOFSAPP => 3, 
    243         URLFILTERCHECKAPP => 4, 
    244         URLFILTERONOFFAPP => 5, 
    245         ALLONAPP => 6, 
    246         ALLONATAPP => 7, 
    247         ROOMSRESETAPP => 8, 
     256        INTERNETONOFFAPP => 6001, 
     257        INTRANETONOFFAPP => 6002, 
     258        UPDATELOGINSAPP => 6003, 
     259        UPDATELINBOFSAPP => 6004, 
     260        URLFILTERCHECKAPP => 6005, 
     261        URLFILTERONOFFAPP => 6006, 
     262        ALLONAPP => 6007, 
     263        ALLONATAPP => 6008, 
     264        ROOMSRESETAPP => 6009, 
    248265}; 
    249266 
     
    264281C<printer_allow_deny> 
    265282 
     283=item C<PRINTERQUOTAAPP> 
     284 
     285C<printer_quota> 
     286 
    266287=back 
    267288 
     
    269290 
    270291use constant { 
    271         PRINTERINFOAPP => 9, 
    272         PRINTERONOFFAPP => 10, 
    273         PRINTERALLOWDENYAPP => 11, 
     292        PRINTERINFOAPP => 7001, 
     293        PRINTERONOFFAPP => 7002, 
     294        PRINTERALLOWDENYAPP => 7003, 
    274295}; 
    275296 
     
    322343C<set_passwords> 
    323344 
    324 =item C<WWWPERMISSIONSAPP> 
    325  
    326 C<www_permissions> 
    327  
    328345=item C<PROJECTMEMBERSAPP> 
    329346 
     
    391408 
    392409use constant { 
    393         SHARESTATESAPP => 12, 
    394         SHARESONOFFAPP => 13, 
    395         LSHANDOUTAPP => 14, 
    396         LSCOLLECTAPP => 15, 
    397         HANDOUTAPP => 16, 
    398         COLLECTAPP => 17, 
    399         RESETROOMAPP => 18, 
    400         EDITOWNCLASSMEMBERSHIPAPP => 19, 
    401         PRINTCLASSAPP => 20, 
    402         PRINTTEACHERSAPP => 21, 
    403         SETPASSWORDSAPP => 22, 
    404         WWWPERMISSIONSAPP => 23, 
    405         PROJECTMEMBERSAPP => 24, 
    406         PROJECTCREATEDROPAPP => 25, 
    407         PROJECTJOINNOJOINAPP => 26, 
    408         READSOPHOMORIXFILEAPP => 27, 
    409         WRITESOPHOMORIXFILEAPP => 28, 
    410         USERSCHECKAPP => 29, 
    411         USERSADDAPP => 30, 
    412         USERSMOVEAPP => 31, 
    413         USERSKILLAPP => 32, 
    414         USERSADDMOVEKILLAPP => 33, 
    415         TEACHINAPP => 34, 
    416         CHMODAPP => 35, 
    417         SETQUOTAAPP => 36, 
    418         SETOWNPASSWORDAPP => 37, 
    419         HIDEUNHIDECLASSAPP => 38, 
     410        SHARESTATESAPP => 8001, 
     411        SHARESONOFFAPP => 8002, 
     412        LSHANDOUTAPP => 8003, 
     413        LSCOLLECTAPP => 8004, 
     414        HANDOUTAPP => 8005, 
     415        COLLECTAPP => 8006, 
     416        RESETROOMAPP => 8007, 
     417        EDITOWNCLASSMEMBERSHIPAPP => 8008, 
     418        PRINTCLASSAPP => 8009, 
     419        PRINTTEACHERSAPP => 8010, 
     420        SETPASSWORDSAPP => 8011, 
     421        WWWPERMISSIONSAPP => 8012, 
     422        PROJECTMEMBERSAPP => 8013, 
     423        PROJECTCREATEDROPAPP => 8014, 
     424        PROJECTJOINNOJOINAPP => 8015, 
     425        READSOPHOMORIXFILEAPP => 8016, 
     426        WRITESOPHOMORIXFILEAPP => 8017, 
     427        USERSCHECKAPP => 8018, 
     428        USERSADDAPP => 8019, 
     429        USERSMOVEAPP => 8020, 
     430        USERSKILLAPP => 8021, 
     431        USERSADDMOVEKILLAPP => 8022, 
     432        TEACHINAPP => 8023, 
     433        CHMODAPP => 8024, 
     434        SETQUOTAAPP => 8025, 
     435        SETOWNPASSWORDAPP => 8026, 
     436        HIDEUNHIDECLASSAPP => 8027, 
    420437}; 
    421438 
     
    434451}; 
    435452 
    436 =head3 Constants for wrapper-collab 
    437  
    438 =over 
    439  
    440 =item C<CREATEDROPDBAPP> 
    441  
    442 C<create_drop_db> 
    443  
    444 =item C<DROPDBUSERAPP> 
    445  
    446 C<drop_db_user> 
    447  
    448 =item C<LISTDBAPP> 
    449  
    450 C<list_db> 
    451  
    452 =item C<LISTDBUSERAPP> 
    453  
    454 C<list_db_user> 
    455  
    456 =item C<CREATEDROPREPOSITORYAPP> 
    457  
    458 C<create_drop_repository> 
    459  
    460 =item C<LISTREPOSITORYAPP> 
    461  
    462 C<list_repository> 
     453 
     454=head3 Constants for wrapper-files 
     455 
     456=over 
     457 
     458=item C<WRITEFILEAPP> 
     459 
     460C<write_file> 
     461 
     462=item C<IMPORTWORKSTATIONSAPP> 
     463 
     464C<import_workstations> 
     465 
     466=item C<IMPORTPRINTERSAPP> 
     467 
     468C<import_printers> 
    463469 
    464470=back 
     
    467473 
    468474use constant { 
    469         CREATEDROPDBAPP => 39, 
    470         DROPDBUSERAPP => 40, 
    471         LISTDBAPP => 41, 
    472         LISTDBUSERAPP => 42, 
    473         CREATEDROPREPOSITORYAPP => 43, 
    474         LISTREPOSITORYAPP => 44, 
     475        WRITEFILEAPP => 11001, 
     476        IMPORTWORKSTATIONSAPP => 11002, 
     477        IMPORTPRINTERSAPP => 11003, 
    475478}; 
    476479 
    477480 
    478 =head3 Constants for wrapper-files 
    479  
    480 =over 
    481  
    482 =item C<WRITEFILEAPP> 
    483  
    484 C<write_file> 
    485  
    486 =item C<IMPORTWORKSTATIONSAPP> 
    487  
    488 C<import_workstations> 
    489  
    490 =item C<IMPORTPRINTERSAPP> 
    491  
    492 C<import_printers> 
     481=head3 Constants for wrapper-ovpn 
     482 
     483=over 
     484 
     485=item C<OVPNCHECKAPP> 
     486 
     487C<ovpn_check> 
     488 
     489=item C<OVPNDOWNLOADAPP> 
     490 
     491C<ovpn_download> 
     492 
     493=item C<OVPNCREATEAPP> 
     494 
     495C<ovpn_download> 
    493496 
    494497=back 
     
    497500 
    498501use constant { 
    499         WRITEFILEAPP => 45, 
    500         IMPORTWORKSTATIONSAPP => 46, 
    501         IMPORTPRINTERSAPP => 47, 
     502        OVPNCHECKAPP => 12001, 
     503        OVPNDOWNLOADAPP => 12002, 
     504        OVPNCREATEAPP => 12003, 
    502505}; 
    503506 
    504507 
    505 =head3 Constants for wrapper-ovpn 
    506  
    507 =over 
    508  
    509 =item C<OVPNCHECKAPP> 
    510  
    511 C<ovpn_check> 
    512  
    513 =item C<OVPNDOWNLOADAPP> 
    514  
    515 C<ovpn_download> 
    516  
    517 =item C<OVPNCREATEAPP> 
    518  
    519 C<ovpn_download> 
     508=head3 Constants for wrapper-linbo 
     509 
     510=over 
     511 
     512=item C<LINBOWRITESTARTCONFAPP> 
     513 
     514C<write_start_conf> 
     515 
     516=item C<LINBOCOPYSTARTCONFAPP> 
     517 
     518C<copy_start_conf> 
     519 
     520=item C<LINBOCOPYREGPATCHAPP> 
     521 
     522C<copy_regpatch> 
     523 
     524=item C<LINBODELETEAPP> 
     525 
     526C<linbo_delete> 
     527 
     528=item C<LINBOWRITEAPP> 
     529 
     530C<linbo_write> 
     531 
     532=item C<LINBOIMAGEAPP> 
     533 
     534C<linbo_manage_images> 
    520535 
    521536=back 
     
    524539 
    525540use constant { 
    526         OVPNCHECKAPP => 48, 
    527         OVPNDOWNLOADAPP => 49, 
    528         OVPNCREATEAPP => 50, 
    529 }; 
    530  
    531  
    532 =head3 Constants for wrapper-linbo 
    533  
    534 =over 
    535  
    536 =item C<LINBOWRITESTARTCONFAPP> 
    537  
    538 C<write_start_conf> 
    539  
    540 =item C<LINBOCOPYSTARTCONFAPP> 
    541  
    542 C<copy_start_conf> 
    543  
    544 =item C<LINBOCOPYREGPATCHAPP> 
    545  
    546 C<copy_regpatch> 
    547  
    548 =item C<LINBODELETEAPP> 
    549  
    550 C<linbo_delete> 
    551  
    552 =item C<LINBOWRITEAPP> 
    553  
    554 C<linbo_write> 
    555  
    556 =item C<LINBOIMAGEAPP> 
    557  
    558 C<linbo_manage_images> 
    559  
    560 =back 
    561  
    562 =cut 
    563  
    564 use constant { 
    565         LINBOWRITESTARTCONFAPP => 51, 
    566         LINBOCOPYSTARTCONFAPP => 52, 
    567         LINBOCOPYREGPATCHAPP => 53, 
    568         LINBODELETEAPP => 54, 
    569         LINBOWRITEAPP => 55, 
    570         LINBOIMAGEAPP => 56, 
     541        LINBOWRITESTARTCONFAPP => 13001, 
     542        LINBOCOPYSTARTCONFAPP => 13002, 
     543        LINBOCOPYREGPATCHAPP => 13003, 
     544        LINBODELETEAPP => 13004, 
     545        LINBOWRITEAPP => 13005, 
     546        LINBOIMAGEAPP => 13006, 
    571547}; 
    572548 
     
    892868=over 
    893869 
    894 =item C<%_root_app_name_ids> 
    895  
    896 Hash that maps the name of an application in the permissions configuration 
    897 file to its numerical ID 
    898  
    899 =item C<@_root_apps> 
    900  
    901 List of applications with each application on the index of its ID 
    902  
    903 =back 
    904  
    905 =cut 
    906  
    907 use vars qw(%_root_app_name_ids @_root_apps); 
     870=item C<%_id_root_app_names> 
     871 
     872Hash that maps the numerical ID of an application in the permissions  
     873configuration file to its name 
     874 
     875=item C<$_cmd_internet_on_off> 
     876 
     877Path to command used to block/unblock access to internet C<internet_on_off.sh> 
     878 
     879=item C<$_cmd_intranet_on_off> 
     880 
     881Path to command used to block/unblock access to intranet C<intranet_on_off.sh> 
     882 
     883=item C<$_cmd_update_logins> 
     884 
     885Path to command to update logins of room C<update-logins.sh> 
     886 
     887=item C<$_cmd_update_linbofs> 
     888 
     889Path to command to update Linbo filesystem C<update-linbofs.sh> 
     890 
     891=item C<$_cmd_urlfilter_check> 
     892 
     893Path to command to check if URL filter is active C<check_urlfilter.sh> 
     894 
     895=item C<$_cmd_urlfilter_on_off> 
     896 
     897Path to command to activate/deactivate URL filter C<urlfilter_on_off.sh> 
     898 
     899=item C<$_cmd_linuxmuster_reset> 
     900 
     901Path to command to reset room settings C<linuxmuster-reset> 
     902 
     903=item C<$_cmd_printer_accept> 
     904 
     905Path to command to set printer to accept jobs C<accept> 
     906 
     907=item C<$_cmd_printer_reject> 
     908 
     909Path to command to set printer to reject jobs C<reject> 
     910 
     911=item C<$_cmd_printer_lpadmin> 
     912 
     913Path to command to administrate printers C<lpadmin> 
     914 
     915=item C<$_cmd_sophomorix_teacher> 
     916 
     917Path to Sophomorix command C<sophomorix-teacher> 
     918 
     919=item C<$_cmd_sophomorix_room> 
     920 
     921Path to Sophomorix command C<sophomorix-room> 
     922 
     923=item C<$_cmd_sophomorix_print> 
     924 
     925Path to Sophomorix command C<sophomorix-print> 
     926 
     927=item C<$_cmd_sophomorix_passwd> 
     928 
     929Path to Sophomorix command C<sophomorix-passwd> 
     930 
     931=item C<$_cmd_sophomorix_project> 
     932 
     933Path to Sophomorix command C<sophomorix-project> 
     934 
     935=item C<$_cmd_sophomorix_check> 
     936 
     937Path to Sophomorix command C<sophomorix-check> 
     938 
     939=item C<$_cmd_sophomorix_add> 
     940 
     941Path to Sophomorix command C<sophomorix-add> 
     942 
     943=item C<$_cmd_sophomorix_move> 
     944 
     945Path to Sophomorix command C<sophomorix-move> 
     946 
     947=item C<$_cmd_sophomorix_kill> 
     948 
     949Path to Sophomorix command C<sophomorix-kill> 
     950 
     951=item C<$_cmd_sophomorix_teachin> 
     952 
     953Path to Sophomorix command C<sophomorix-teach-in> 
     954 
     955=item C<$_cmd_sophomorix_quota> 
     956 
     957Path to Sophomorix command C<sophomorix-quota> 
     958 
     959=item C<$_cmd_sophomorix_class> 
     960 
     961Path to Sophomorix command C<sophomorix-class> 
     962 
     963=item C<$_cmd_import_workstations> 
     964 
     965Path to command to import workstations into room C<import_workstations> 
     966 
     967=item C<$_cmd_import_printers> 
     968 
     969Path to command to import printers into room C<import_printers> 
     970 
     971=item C<$_cmd_ovpn_client_cert> 
     972 
     973Path to command to administer OVPN certificates C<ovpn-client-cert.sh> 
     974 
     975=back 
     976 
     977=cut 
     978 
     979use vars qw(%_id_root_app_names 
     980            $_cmd_internet_on_off 
     981            $_cmd_intranet_on_off 
     982            $_cmd_update_logins 
     983            $_cmd_update_linbofs 
     984            $_cmd_urlfilter_check 
     985            $_cmd_urlfilter_on_off 
     986            $_cmd_linuxmuster_reset 
     987            $_cmd_printer_accept 
     988            $_cmd_printer_reject 
     989            $_cmd_printer_lpadmin 
     990            $_cmd_sophomorix_teacher 
     991            $_cmd_sophomorix_room 
     992            $_cmd_sophomorix_print 
     993            $_cmd_sophomorix_passwd 
     994            $_cmd_sophomorix_project 
     995            $_cmd_sophomorix_check 
     996            $_cmd_sophomorix_add 
     997            $_cmd_sophomorix_move 
     998            $_cmd_sophomorix_kill 
     999            $_cmd_sophomorix_teachin 
     1000            $_cmd_sophomorix_quota 
     1001            $_cmd_sophomorix_class 
     1002            $_cmd_import_workstations 
     1003            $_cmd_import_printers 
     1004            $_cmd_ovpn_client_cert); 
    9081005 
    9091006 
     
    10101107 
    10111108 
    1012 %_root_app_name_ids = ( 
    1013         internet_on_off => INTERNETONOFFAPP, 
    1014         intranet_on_off => INTRANETONOFFAPP, 
    1015         update_logins => UPDATELOGINSAPP, 
    1016         update_linbofs => UPDATELINBOFSAPP, 
    1017         urlfilter_check => URLFILTERCHECKAPP, 
    1018         urlfilter_on_off => URLFILTERONOFFAPP, 
    1019         all_on => ALLONAPP, 
    1020         all_on_at => ALLONATAPP, 
    1021         rooms_reset => ROOMSRESETAPP, 
    1022         printer_info => PRINTERINFOAPP, 
    1023         printer_on_off => PRINTERONOFFAPP, 
    1024         printer_allow_deny => PRINTERALLOWDENYAPP, 
    1025         share_states => SHARESTATESAPP, 
    1026         shares_on_off => SHARESONOFFAPP, 
    1027         ls_handout => LSHANDOUTAPP, 
    1028         ls_collect => LSCOLLECTAPP, 
    1029         handout => HANDOUTAPP, 
    1030         collect => COLLECTAPP, 
    1031         room_reset => RESETROOMAPP, 
    1032         edit_own_class_membership => EDITOWNCLASSMEMBERSHIPAPP, 
    1033         print_class => PRINTCLASSAPP, 
    1034         print_teachers => PRINTTEACHERSAPP, 
    1035         set_passwords => SETPASSWORDSAPP, 
    1036         www_permissions => WWWPERMISSIONSAPP, 
    1037         project_members => PROJECTMEMBERSAPP, 
    1038         project_create_drop => PROJECTCREATEDROPAPP, 
    1039         project_join_no_join => PROJECTJOINNOJOINAPP, 
    1040         read_sophomorix_file => READSOPHOMORIXFILEAPP, 
    1041         write_sophomorix_file => WRITESOPHOMORIXFILEAPP, 
    1042         check_users => USERSCHECKAPP, 
    1043         add_users => USERSADDAPP, 
    1044         move_users => USERSMOVEAPP, 
    1045         kill_users => USERSKILLAPP, 
    1046         addmovekill_users => USERSADDMOVEKILLAPP, 
    1047         teachin => TEACHINAPP, 
    1048         'chmod' => CHMODAPP, 
    1049         'quota' => SETQUOTAAPP, 
    1050         'hide_unhide_class' => HIDEUNHIDECLASSAPP, 
    1051         set_own_password => SETOWNPASSWORDAPP, 
    1052         create_drop_db => CREATEDROPDBAPP, 
    1053         drop_db_user => DROPDBUSERAPP, 
    1054         list_db => LISTDBAPP, 
    1055         list_db_user => LISTDBUSERAPP, 
    1056         create_drop_repository => CREATEDROPREPOSITORYAPP, 
    1057         list_repository => LISTREPOSITORYAPP, 
    1058         write_file => WRITEFILEAPP, 
    1059         import_workstations => IMPORTWORKSTATIONSAPP, 
    1060         import_printers => IMPORTPRINTERSAPP, 
    1061         ovpn_check => OVPNCHECKAPP, 
    1062         ovpn_download => OVPNDOWNLOADAPP, 
    1063         ovpn_create => OVPNCREATEAPP, 
    1064         write_start_conf => LINBOWRITESTARTCONFAPP, 
    1065         copy_start_conf => LINBOCOPYSTARTCONFAPP, 
    1066         copy_regpatch => LINBOCOPYREGPATCHAPP, 
    1067         linbo_delete => LINBODELETEAPP, 
    1068         linbo_write => LINBOWRITEAPP, 
    1069         linbo_manage_images => LINBOIMAGEAPP, 
     1109%_id_root_app_names = ( 
     1110        INTERNETONOFFAPP() => 'internet_on_off', 
     1111        INTRANETONOFFAPP() => 'intranet_on_off', 
     1112        UPDATELOGINSAPP() => 'update_logins', 
     1113        UPDATELINBOFSAPP() => 'update_linbofs', 
     1114        URLFILTERCHECKAPP() => 'urlfilter_check', 
     1115        URLFILTERONOFFAPP() => 'urlfilter_on_off', 
     1116        ALLONAPP() => 'all_on', 
     1117        ALLONATAPP() => 'all_on_at', 
     1118        ROOMSRESETAPP() => 'rooms_reset', 
     1119        PRINTERINFOAPP() => 'printer_info', 
     1120        PRINTERONOFFAPP() => 'printer_on_off', 
     1121        PRINTERALLOWDENYAPP() => 'printer_allow_deny', 
     1122        SHARESTATESAPP() => 'share_states', 
     1123        SHARESONOFFAPP() => 'shares_on_off', 
     1124        LSHANDOUTAPP() => 'ls_handout', 
     1125        LSCOLLECTAPP() => 'ls_collect', 
     1126        HANDOUTAPP() => 'handout', 
     1127        COLLECTAPP() => 'collect', 
     1128        RESETROOMAPP() => 'room_reset', 
     1129        EDITOWNCLASSMEMBERSHIPAPP() => 'edit_own_class_membership', 
     1130        PRINTCLASSAPP() => 'print_class', 
     1131        PRINTTEACHERSAPP() => 'print_teachers', 
     1132        SETPASSWORDSAPP() => 'set_passwords', 
     1133        PROJECTMEMBERSAPP() => 'project_members', 
     1134        PROJECTCREATEDROPAPP() => 'project_create_drop', 
     1135        PROJECTJOINNOJOINAPP() => 'project_join_no_join', 
     1136        READSOPHOMORIXFILEAPP() => 'read_sophomorix_file', 
     1137        WRITESOPHOMORIXFILEAPP() => 'write_sophomorix_file', 
     1138        USERSCHECKAPP() => 'check_users', 
     1139        USERSADDAPP() => 'add_users', 
     1140        USERSMOVEAPP() => 'move_users', 
     1141        USERSKILLAPP() => 'kill_users', 
     1142        USERSADDMOVEKILLAPP() => 'addmovekill_users', 
     1143        TEACHINAPP() => 'teachin', 
     1144        CHMODAPP() => 'chmod', 
     1145        SETQUOTAAPP() => 'quota', 
     1146        HIDEUNHIDECLASSAPP() => 'hide_unhide_class', 
     1147        SETOWNPASSWORDAPP() => 'set_own_password', 
     1148        WRITEFILEAPP() => 'write_file', 
     1149        IMPORTWORKSTATIONSAPP() => 'import_workstations', 
     1150        IMPORTPRINTERSAPP() => 'import_printers', 
     1151        OVPNCHECKAPP() => 'ovpn_check', 
     1152        OVPNDOWNLOADAPP() => 'ovpn_download', 
     1153        OVPNCREATEAPP() => 'ovpn_create', 
     1154        LINBOWRITESTARTCONFAPP() => 'write_start_conf', 
     1155        LINBOCOPYSTARTCONFAPP() => 'copy_start_conf', 
     1156        LINBOCOPYREGPATCHAPP() => 'copy_regpatch', 
     1157        LINBODELETEAPP() => 'linbo_delete', 
     1158        LINBOWRITEAPP() => 'linbo_write', 
     1159        LINBOIMAGEAPP() => 'linbo_manage_images', 
    10701160); 
    10711161 
    10721162 
    1073 @_root_apps = ( 
    1074         '/usr/share/linuxmuster/scripts/internet_on_off.sh', 
    1075         '/usr/share/linuxmuster/scripts/intranet_on_off.sh', 
    1076         '/usr/share/linuxmuster/scripts/update-logins.sh', 
    1077         '/usr/share/linuxmuster-linbo/update-linbofs.sh', 
    1078         '/usr/share/linuxmuster/scripts/check_urlfilter.sh', 
    1079         '/usr/share/linuxmuster/scripts/urlfilter_on_off.sh', 
    1080         1, 
    1081         1, 
    1082         '/usr/sbin/linuxmuster-reset', 
    1083         1, 
    1084         [ '/usr/sbin/accept', '/usr/sbin/reject' ], 
    1085         '/usr/sbin/lpadmin', 
    1086         '/usr/bin/sophomorix-teacher', 
    1087         '/usr/bin/sophomorix-teacher', 
    1088         '/usr/bin/sophomorix-teacher', 
    1089         '/usr/bin/sophomorix-teacher', 
    1090         '/usr/bin/sophomorix-teacher', 
    1091         '/usr/bin/sophomorix-teacher', 
    1092         '/usr/sbin/sophomorix-room', 
    1093         '/usr/bin/sophomorix-teacher', 
    1094         '/usr/sbin/sophomorix-print', 
    1095         '/usr/sbin/sophomorix-print', 
    1096         '/usr/sbin/sophomorix-passwd', 
    1097         '/usr/sbin/sophomorix-www', 
    1098         '/usr/sbin/sophomorix-project', 
    1099         '/usr/sbin/sophomorix-project', 
    1100         '/usr/sbin/sophomorix-project', 
    1101         1, 
    1102         1, 
    1103         '/usr/sbin/sophomorix-check', 
    1104         '/usr/sbin/sophomorix-add', 
    1105         '/usr/sbin/sophomorix-move', 
    1106         '/usr/sbin/sophomorix-kill', 
    1107         [ '/usr/sbin/sophomorix-add', '/usr/sbin/sophomorix-move', 
    1108           '/usr/sbin/sophomorix-kill', ], 
    1109         '/usr/sbin/sophomorix-teach-in', 
    1110         1, 
    1111         [ '/usr/sbin/sophomorix-quota', '/usr/sbin/sophomorix-class', 
    1112           '/usr/sbin/sophomorix-project', ], 
    1113         '/usr/sbin/sophomorix-passwd', 
    1114         '/usr/sbin/sophomorix-class', 
    1115         '/usr/sbin/linuxmuster-mysql', 
    1116         '/usr/sbin/linuxmuster-mysql', 
    1117         '/usr/sbin/linuxmuster-mysql', 
    1118         '/usr/sbin/linuxmuster-mysql', 
    1119         '/usr/sbin/linuxmuster-svn', 
    1120         '/usr/sbin/linuxmuster-svn', 
    1121         1, 
    1122         '/usr/sbin/import_workstations', 
    1123         '/usr/sbin/import_printers', 
    1124         '/usr/share/linuxmuster/scripts/ovpn-client-cert.sh', 
    1125         '/usr/share/linuxmuster/scripts/ovpn-client-cert.sh', 
    1126         '/usr/share/linuxmuster/scripts/ovpn-client-cert.sh', 
    1127         1, 
    1128         1, 
    1129         1, 
    1130         1, 
    1131         1, 
    1132         1, 
    1133 ); 
     1163 
     1164$_cmd_import_printers = '/usr/sbin/import_printers'; 
     1165$_cmd_import_workstations = '/usr/sbin/import_workstations'; 
     1166$_cmd_internet_on_off = '/usr/share/linuxmuster/scripts/internet_on_off.sh'; 
     1167$_cmd_intranet_on_off = '/usr/share/linuxmuster/scripts/intranet_on_off.sh'; 
     1168$_cmd_linuxmuster_reset = '/usr/sbin/linuxmuster-reset'; 
     1169$_cmd_ovpn_client_cert = '/usr/share/linuxmuster/scripts/ovpn-client-cert.sh'; 
     1170$_cmd_printer_accept = '/usr/sbin/accept'; 
     1171$_cmd_printer_lpadmin = '/usr/sbin/lpadmin'; 
     1172$_cmd_printer_reject = '/usr/sbin/reject'; 
     1173$_cmd_sophomorix_add = '/usr/sbin/sophomorix-add'; 
     1174$_cmd_sophomorix_check = '/usr/sbin/sophomorix-check'; 
     1175$_cmd_sophomorix_class = '/usr/sbin/sophomorix-class'; 
     1176$_cmd_sophomorix_kill = '/usr/sbin/sophomorix-kill'; 
     1177$_cmd_sophomorix_move = '/usr/sbin/sophomorix-move'; 
     1178$_cmd_sophomorix_passwd = '/usr/sbin/sophomorix-passwd'; 
     1179$_cmd_sophomorix_print = '/usr/sbin/sophomorix-print'; 
     1180$_cmd_sophomorix_project = '/usr/sbin/sophomorix-project'; 
     1181$_cmd_sophomorix_quota = '/usr/sbin/sophomorix-quota'; 
     1182$_cmd_sophomorix_room = '/usr/sbin/sophomorix-room'; 
     1183$_cmd_sophomorix_teacher = '/usr/bin/sophomorix-teacher'; 
     1184$_cmd_sophomorix_teachin = '/usr/sbin/sophomorix-teach-in'; 
     1185$_cmd_update_linbofs = '/usr/share/linuxmuster-linbo/update-linbofs.sh'; 
     1186$_cmd_update_logins = '/usr/share/linuxmuster/scripts/update-logins.sh'; 
     1187$_cmd_urlfilter_check = '/usr/share/linuxmuster/scripts/check_urlfilter.sh'; 
     1188$_cmd_urlfilter_on_off = '/usr/share/linuxmuster/scripts/urlfilter_on_off.sh'; 
    11341189 
    11351190 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Cyrus.pm

    r209 r1238  
    6767                } else { 
    6868                        die new Schulkonsole::Error( 
    69                                 Schulkonsole::Error::WRAPPER_CYRUS_ERROR_BASE + $error, 
     69                                Schulkonsole::Error::Cyrus::WRAPPER_ERROR_BASE + $error, 
    7070                                $Schulkonsole::Config::_wrapper_cyrus); 
    7171                } 
     
    101101                } else { 
    102102                        die new Schulkonsole::Error( 
    103                                 Schulkonsole::Error::WRAPPER_CYRUS_ERROR_BASE + $error, 
     103                                Schulkonsole::Error::Cyrus::WRAPPER_ERROR_BASE + $error, 
    104104                                $Schulkonsole::Config::_wrapper_cyrus); 
    105105                } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Error.pm

    r921 r1238  
    11use strict; 
     2use Schulkonsole::Error::Cyrus; 
     3use Schulkonsole::Error::Files; 
     4use Schulkonsole::Error::Firewall; 
     5use Schulkonsole::Error::Linbo; 
     6use Schulkonsole::Error::OVPN; 
     7use Schulkonsole::Error::Printer; 
     8use Schulkonsole::Error::Sophomorix; 
     9use Schulkonsole::Error::User; 
    210 
    311package Schulkonsole::Error; 
     
    1725        QUOTA_NOT_ALL_MOUNTPOINTS 
    1826        PUBLIC_BG_ERROR 
    19         LINBO_START_CONF_ERROR 
    2027        INTERNAL_BG_ERROR 
    2128        DB_PREPARE_FAILED 
     
    3037        WRAPPER_BROKEN_PIPE_OUT 
    3138        WRAPPER_BROKEN_PIPE_IN 
    32         WRAPPER_USER_ERROR_BASE 
    33         WRAPPER_USER_GENERAL_ERROR 
    34         WRAPPER_USER_PROGRAM_ERROR 
    35         WRAPPER_USER_UNAUTHORIZED_UID 
    36         WRAPPER_USER_INVALID_UID 
    37         WRAPPER_USER_INVALID_SCRIPT 
    38         WRAPPER_USER_SCRIPT_EXEC_FAILED 
    39         WRAPPER_USER_SETUID_FAILED 
    40         WRAPPER_FIREWALL_ERROR_BASE 
    41         WRAPPER_FIREWALL_GENERAL_ERROR 
    42         WRAPPER_FIREWALL_UNAUTHORIZED_UID 
    43         WRAPPER_FIREWALL_SCRIPT_EXEC_FAILED 
    44         WRAPPER_FIREWALL_UNAUTHENTICATED_ID 
    45         WRAPPER_FIREWALL_APP_ID_DOES_NOT_EXIST 
    46         WRAPPER_FIREWALL_UNAUTHORIZED_ID 
    47         WRAPPER_FIREWALL_INVALID_MAC 
    48         WRAPPER_FIREWALL_NO_MACS 
    49         WRAPPER_FIREWALL_INVALID_HOST 
    50         WRAPPER_FIREWALL_NO_HOSTS 
    51         WRAPPER_FIREWALL_INVALID_ROOM 
    52         WRAPPER_FIREWALL_INVALID_LESSONMODE 
    53         WRAPPER_FIREWALL_INVALID_LESSONTIME 
    54         WRAPPER_FIREWALL_CANNOT_WRITE_ROOMFILE 
    55         WRAPPER_FIREWALL_CANNOT_READ_ROOMFILE 
    56         WRAPPER_FIREWALL_CANNOT_FORK 
    57         WRAPPER_PRINTER_ERROR_BASE 
    58         WRAPPER_PRINTER_GENERAL_ERROR 
    59         WRAPPER_PRINTER_PROGRAM_ERROR 
    60         WRAPPER_PRINTER_UNAUTHORIZED_UID 
    61         WRAPPER_PRINTER_SCRIPT_EXEC_FAILED 
    62         WRAPPER_PRINTER_UNAUTHENTICATED_ID 
    63         WRAPPER_PRINTER_APP_ID_DOES_NOT_EXIST 
    64         WRAPPER_PRINTER_UNAUTHORIZED_ID 
    65         WRAPPER_PRINTER_CANNOT_OPEN_PRINTERSCONF 
    66         WRAPPER_PRINTER_INVALID_PRINTER_NAME 
    67         WRAPPER_PRINTER_NO_PRINTERS 
    68         WRAPPER_PRINTER_INVALID_USER 
    69         WRAPPER_SOPHOMORIX_ERROR_BASE 
    70         WRAPPER_SOPHOMORIX_GENERAL_ERROR 
    71         WRAPPER_SOPHOMORIX_PROGRAM_ERROR 
    72         WRAPPER_SOPHOMORIX_UNAUTHORIZED_UID 
    73         WRAPPER_SOPHOMORIX_CANNOT_FORK 
    74         WRAPPER_SOPHOMORIX_SCRIPT_EXEC_FAILED 
    75         WRAPPER_SOPHOMORIX_UNAUTHENTICATED_ID 
    76         WRAPPER_SOPHOMORIX_APP_ID_DOES_NOT_EXIST 
    77         WRAPPER_SOPHOMORIX_UNAUTHORIZED_ID 
    78         WRAPPER_SOPHOMORIX_ON_UNDEFINED 
    79         WRAPPER_SOPHOMORIX_INVALID_USER 
    80         WRAPPER_SOPHOMORIX_NO_USERS 
    81         WRAPPER_SOPHOMORIX_INVALID_USERID 
    82         WRAPPER_SOPHOMORIX_NO_USERIDS 
    83         WRAPPER_SOPHOMORIX_NO_SUCH_DIRECTORY 
    84         WRAPPER_SOPHOMORIX_INVALID_DO_COPY 
    85         WRAPPER_SOPHOMORIX_INVALID_FROM 
    86         WRAPPER_SOPHOMORIX_INVALID_TYPE 
    87         WRAPPER_SOPHOMORIX_INVALID_ROOM 
    88         WRAPPER_SOPHOMORIX_INVALID_PROJECT 
    89         WRAPPER_SOPHOMORIX_INVALID_CLASS 
    90         WRAPPER_SOPHOMORIX_INVALID_SUBCLASS 
    91         WRAPPER_SOPHOMORIX_INVALID_DO_ADD 
    92         WRAPPER_SOPHOMORIX_INVALID_SET_PASSWORD_TYPE 
    93         WRAPPER_SOPHOMORIX_INVALID_PASSWORD 
    94         WRAPPER_SOPHOMORIX_INVALID_IS_GROUPS 
    95         WRAPPER_SOPHOMORIX_INVALID_IS_PUBLIC 
    96         WRAPPER_SOPHOMORIX_INVALID_IS_UPLOAD 
    97         WRAPPER_SOPHOMORIX_INVALID_PROJECTGID 
    98         WRAPPER_SOPHOMORIX_INVALID_MEMBERSCOPE 
    99         WRAPPER_SOPHOMORIX_INVALID_DO_CREATE 
    100         WRAPPER_SOPHOMORIX_INVALID_LONGNAME 
    101         WRAPPER_SOPHOMORIX_INVALID_FILENUMBER 
    102         WRAPPER_SOPHOMORIX_CANNOT_OPEN_FILE 
    103         WRAPPER_SOPHOMORIX_PROCESS_RUNNING 
    104         WRAPPER_SOPHOMORIX_INVALID_MODE 
    105         WRAPPER_SOPHOMORIX_CHMOD_FAILED 
    106         WRAPPER_SOPHOMORIX_INVALID_FLAGS 
    107         WRAPPER_SOPHOMORIX_INVALID_DISKQUOTA 
    108         WRAPPER_SOPHOMORIX_INVALID_MAILQUOTA 
    109         WRAPPER_CYRUS_ERROR_BASE 
    110         WRAPPER_CYRUS_UNAUTHORIZED_UID 
    111         WRAPPER_CYRUS_INVALID_SCRIPT 
    112         WRAPPER_CYRUS_SCRIPT_EXEC_FAILED 
    113         WRAPPER_CYRUS_NO_CYRUS_USER 
    114         WRAPPER_CYRUS_INVALID_EUID 
    115         WRAPPER_COLLAB_ERROR_BASE 
    116         WRAPPER_COLLAB_GENERAL_ERROR 
    117         WRAPPER_COLLAB_PROGRAM_ERROR 
    118         WRAPPER_COLLAB_UNAUTHENTICATED_ID 
    119         WRAPPER_COLLAB_APP_ID_DOES_NOT_EXIST 
    120         WRAPPER_COLLAB_UNAUTHORIZED_ID 
    121         WRAPPER_COLLAB_INVALID_IS_CREATE 
    122         WRAPPER_COLLAB_INVALID_IS_GID 
    123         WRAPPER_COLLAB_NO_DB 
    124         WRAPPER_COLLAB_READ_DB_LIST_FAILED 
    125         WRAPPER_FILES_ERROR_BASE 
    126         WRAPPER_FILES_GENERAL_ERROR 
    127         WRAPPER_FILES_PROGRAM_ERROR 
    128         WRAPPER_FILES_UNAUTHORIZED_UID 
    129         WRAPPER_FILES_CANNOT_FORK 
    130         WRAPPER_FILES_SCRIPT_EXEC_FAILED 
    131         WRAPPER_FILES_UNAUTHENTICATED_ID 
    132         WRAPPER_FILES_APP_ID_DOES_NOT_EXIST 
    133         WRAPPER_FILES_UNAUTHORIZED_ID 
    134         WRAPPER_FILES_INVALID_FILENUMBER 
    135         WRAPPER_FILES_CANNOT_OPEN_FILE 
    136         WRAPPER_OVPN_ERROR_BASE 
    137         WRAPPER_OVPN_GENERAL_ERROR 
    138         WRAPPER_OVPN_PROGRAM_ERROR 
    139         WRAPPER_OVPN_UNAUTHORIZED_UID 
    140         WRAPPER_OVPN_SCRIPT_EXEC_FAILED 
    141         WRAPPER_OVPN_UNAUTHENTICATED_ID 
    142         WRAPPER_OVPN_APP_ID_DOES_NOT_EXIST 
    143         WRAPPER_OVPN_UNAUTHORIZED_ID 
    144         WRAPPER_OVPN_INVALID_PASSWORD 
    145         WRAPPER_LINBO_ERROR_BASE 
    146         WRAPPER_LINBO_GENERAL_ERROR 
    147         WRAPPER_LINBO_PROGRAM_ERROR 
    148         WRAPPER_LINBO_UNAUTHORIZED_UID 
    149         WRAPPER_LINBO_SCRIPT_EXEC_FAILED 
    150         WRAPPER_LINBO_UNAUTHENTICATED_ID 
    151         WRAPPER_LINBO_APP_ID_DOES_NOT_EXIST 
    152         WRAPPER_LINBO_UNAUTHORIZED_ID 
    153         WRAPPER_LINBO_INVALID_GROUP 
    154         WRAPPER_LINBO_INVALID_FILENAME 
    155         WRAPPER_LINBO_INVALID_IS_EXAMPLE 
    156         WRAPPER_LINBO_INVALID_IMAGE 
    157         WRAPPER_LINBO_INVALID_ACTION 
    158         WRAPPER_LINBO_CANNOT_OPEN_FILE 
    15939); 
    16040 
     
    17252 
    17353        PUBLIC_BG_ERROR => 20, 
    174  
    175         LINBO_START_CONF_ERROR => 50, 
    17654 
    17755 
     
    19371        WRAPPER_BROKEN_PIPE_OUT => 3002, 
    19472        WRAPPER_BROKEN_PIPE_IN => 3003, 
    195  
    196         WRAPPER_USER_ERROR_BASE => 5000, 
    197         WRAPPER_USER_GENERAL_ERROR => 5000 -1, 
    198         WRAPPER_USER_PROGRAM_ERROR => 5000 -2, 
    199         WRAPPER_USER_UNAUTHORIZED_UID => 5000 -3, 
    200         WRAPPER_USER_INVALID_UID => 5000 -4, 
    201         WRAPPER_USER_INVALID_SCRIPT => 5000 -5, 
    202         WRAPPER_USER_SCRIPT_EXEC_FAILED => 5000 -6, 
    203         WRAPPER_USER_SETUID_FAILED => 5000 -9, 
    204  
    205         WRAPPER_FIREWALL_ERROR_BASE => 6000, 
    206         WRAPPER_FIREWALL_GENERAL_ERROR => 6000 -1, 
    207         WRAPPER_FIREWALL_PROGRAM_ERROR => 6000 -2, 
    208         WRAPPER_FIREWALL_UNAUTHORIZED_UID => 6000 -3, 
    209         WRAPPER_FIREWALL_SCRIPT_EXEC_FAILED => 6000 -6, 
    210         WRAPPER_FIREWALL_UNAUTHENTICATED_ID => 6000 -32, 
    211         WRAPPER_FIREWALL_APP_ID_DOES_NOT_EXIST => 6000 -33, 
    212         WRAPPER_FIREWALL_UNAUTHORIZED_ID => 6000 -34, 
    213         WRAPPER_FIREWALL_INVALID_MAC => 6000 -35, 
    214         WRAPPER_FIREWALL_NO_MACS => 6000 -36, 
    215         WRAPPER_FIREWALL_INVALID_HOST => 6000 -37, 
    216         WRAPPER_FIREWALL_NO_HOSTS => 6000 -38, 
    217         WRAPPER_FIREWALL_INVALID_ROOM => 6000 -39, 
    218         WRAPPER_FIREWALL_INVALID_LESSONMODE => 6000 -40, 
    219         WRAPPER_FIREWALL_INVALID_LESSONTIME => 6000 -41, 
    220         WRAPPER_FIREWALL_CANNOT_WRITE_ROOMFILE => 6000 -42, 
    221         WRAPPER_FIREWALL_CANNOT_READ_ROOMFILE => 6000 -43, 
    222         WRAPPER_FIREWALL_CANNOT_FORK => 6000 -44, 
    223         WRAPPER_FIREWALL_INVALID_ROOM_SCOPE => 6000 -45, 
    224  
    225         WRAPPER_PRINTER_ERROR_BASE => 7000, 
    226         WRAPPER_PRINTER_GENERAL_ERROR => 7000 -1, 
    227         WRAPPER_PRINTER_PROGRAM_ERROR => 7000 -2, 
    228         WRAPPER_PRINTER_UNAUTHORIZED_UID => 7000 -3, 
    229         WRAPPER_PRINTER_SCRIPT_EXEC_FAILED => 7000 -6, 
    230         WRAPPER_PRINTER_UNAUTHENTICATED_ID => 7000 -32, 
    231         WRAPPER_PRINTER_APP_ID_DOES_NOT_EXIST => 7000 -33, 
    232         WRAPPER_PRINTER_UNAUTHORIZED_ID => 7000 -34, 
    233         WRAPPER_PRINTER_CANNOT_OPEN_PRINTERSCONF => 7000 -64, 
    234         WRAPPER_PRINTER_INVALID_PRINTER_NAME => 7000 -65, 
    235         WRAPPER_PRINTER_NO_PRINTERS => 7000 -66, 
    236         WRAPPER_PRINTER_INVALID_USER => 7000 -67, 
    237  
    238         WRAPPER_SOPHOMORIX_ERROR_BASE => 8000, 
    239         WRAPPER_SOPHOMORIX_GENERAL_ERROR => 8000 -1, 
    240         WRAPPER_SOPHOMORIX_PROGRAM_ERROR => 8000 -2, 
    241         WRAPPER_SOPHOMORIX_UNAUTHORIZED_UID => 8000 -3, 
    242         WRAPPER_SOPHOMORIX_SCRIPT_EXEC_FAILED => 8000 -6, 
    243         WRAPPER_SOPHOMORIX_UNAUTHENTICATED_ID => 8000 -32, 
    244         WRAPPER_SOPHOMORIX_APP_ID_DOES_NOT_EXIST => 8000 -33, 
    245         WRAPPER_SOPHOMORIX_UNAUTHORIZED_ID => 8000 -34, 
    246         WRAPPER_SOPHOMORIX_CANNOT_FORK => 8000 -44, 
    247         WRAPPER_SOPHOMORIX_ON_UNDEFINED => 8000 -80, 
    248         WRAPPER_SOPHOMORIX_INVALID_USER => 8000 -81, 
    249         WRAPPER_SOPHOMORIX_NO_USERS => 8000 -82, 
    250         WRAPPER_SOPHOMORIX_INVALID_USERID => 8000 -83, 
    251         WRAPPER_SOPHOMORIX_NO_USERIDS => 8000 -84, 
    252         WRAPPER_SOPHOMORIX_NO_SUCH_DIRECTORY => 8000 -85, 
    253         WRAPPER_SOPHOMORIX_INVALID_DO_COPY => 8000 -86, 
    254         WRAPPER_SOPHOMORIX_INVALID_FROM => 8000 -87, 
    255         WRAPPER_SOPHOMORIX_INVALID_TYPE => 8000 -88, 
    256         WRAPPER_SOPHOMORIX_INVALID_ROOM => 8000 -89, 
    257         WRAPPER_SOPHOMORIX_INVALID_PROJECT => 8000 -90, 
    258         WRAPPER_SOPHOMORIX_INVALID_CLASS => 8000 -91, 
    259         WRAPPER_SOPHOMORIX_INVALID_SUBCLASS => 8000 -92, 
    260         WRAPPER_SOPHOMORIX_INVALID_IS_EXAM => 8000 -93, 
    261         WRAPPER_SOPHOMORIX_INVALID_DO_ADD => 8000 -94, 
    262         WRAPPER_SOPHOMORIX_INVALID_FILE_TYPE => 8000 -95, 
    263         WRAPPER_SOPHOMORIX_INVALID_SET_PASSWORD_TYPE => 8000 -96, 
    264         WRAPPER_SOPHOMORIX_INVALID_PASSWORD => 8000 -97, 
    265         WRAPPER_SOPHOMORIX_INVALID_IS_GROUPS => 8000 -98, 
    266         WRAPPER_SOPHOMORIX_INVALID_IS_PUBLIC => 8000 -99, 
    267         WRAPPER_SOPHOMORIX_INVALID_IS_UPLOAD => 8000 -100, 
    268         WRAPPER_SOPHOMORIX_INVALID_PROJECTGID => 8000 -101, 
    269         WRAPPER_SOPHOMORIX_INVALID_MEMBERSCOPE => 8000 -102, 
    270         WRAPPER_SOPHOMORIX_INVALID_DO_CREATE => 8000 -103, 
    271         WRAPPER_SOPHOMORIX_INVALID_LONGNAME => 8000 -104, 
    272         WRAPPER_SOPHOMORIX_INVALID_FILENUMBER => 8000 -105, 
    273         WRAPPER_SOPHOMORIX_CANNOT_OPEN_FILE => 8000 -106, 
    274         WRAPPER_SOPHOMORIX_PROCESS_RUNNING => 8000 -107, 
    275         WRAPPER_SOPHOMORIX_INVALID_MODE => 8000 -108, 
    276         WRAPPER_SOPHOMORIX_CHMOD_FAILED => 8000 -109, 
    277         WRAPPER_SOPHOMORIX_INVALID_FLAGS => 8000 -110, 
    278         WRAPPER_SOPHOMORIX_INVALID_DISKQUOTA => 8000 -111, 
    279         WRAPPER_SOPHOMORIX_INVALID_MAILQUOTA => 8000 -112, 
    280         WRAPPER_SOPHOMORIX_INVALID_IS_JOIN => 8000 -113, 
    281  
    282         WRAPPER_CYRUS_ERROR_BASE => 9000, 
    283         WRAPPER_CYRUS_UNAUTHORIZED_UID => 9000 -3, 
    284         WRAPPER_CYRUS_INVALID_SCRIPT => 9000 -5, 
    285         WRAPPER_CYRUS_SCRIPT_EXEC_FAILED => 9000 -6, 
    286         WRAPPER_CYRUS_NO_CYRUS_USER => 9000 -7, 
    287         WRAPPER_CYRUS_INVALID_EUID => 9000 -8, 
    288  
    289         WRAPPER_COLLAB_ERROR_BASE => 10000, 
    290         WRAPPER_COLLAB_GENERAL_ERROR => 10000 -1, 
    291         WRAPPER_COLLAB_PROGRAM_ERROR => 10000 -2, 
    292         WRAPPER_COLLAB_UNAUTHORIZED_UID => 10000 -3, 
    293         WRAPPER_COLLAB_SCRIPT_EXEC_FAILED => 10000 -6, 
    294         WRAPPER_COLLAB_UNAUTHENTICATED_ID => 10000 -32, 
    295         WRAPPER_COLLAB_APP_ID_DOES_NOT_EXIST => 10000 -33, 
    296         WRAPPER_COLLAB_UNAUTHORIZED_ID => 10000 -34, 
    297         WRAPPER_COLLAB_INVALID_IS_CREATE => 10000 -48, 
    298         WRAPPER_COLLAB_INVALID_IS_GID => 10000 -49, 
    299         WRAPPER_COLLAB_NO_DB => 10000 -50, 
    300         WRAPPER_COLLAB_READ_DB_LIST_FAILED => 10000 -51, 
    301  
    302         WRAPPER_FILES_ERROR_BASE => 11000, 
    303         WRAPPER_FILES_GENERAL_ERROR => 11000 -1, 
    304         WRAPPER_FILES_PROGRAM_ERROR => 11000 -2, 
    305         WRAPPER_FILES_UNAUTHORIZED_UID => 11000 -3, 
    306         WRAPPER_FILES_SCRIPT_EXEC_FAILED => 11000 -6, 
    307         WRAPPER_FILES_INVALID_SESSION_ID => 11000 -10, 
    308         WRAPPER_FILES_UNAUTHENTICATED_ID => 11000 -32, 
    309         WRAPPER_FILES_APP_ID_DOES_NOT_EXIST => 11000 -33, 
    310         WRAPPER_FILES_UNAUTHORIZED_ID => 11000 -34, 
    311         WRAPPER_FILES_CANNOT_FORK => 11000 -44, 
    312         WRAPPER_FILES_INVALID_FILENUMBER => 11000 -105, 
    313         WRAPPER_FILES_CANNOT_OPEN_FILE => 11000 -106, 
    314  
    315         WRAPPER_OVPN_ERROR_BASE => 12000, 
    316         WRAPPER_OVPN_GENERAL_ERROR => 12000 -1, 
    317         WRAPPER_OVPN_PROGRAM_ERROR => 12000 -2, 
    318         WRAPPER_OVPN_UNAUTHORIZED_UID => 12000 -3, 
    319         WRAPPER_OVPN_SCRIPT_EXEC_FAILED => 12000 -6, 
    320         WRAPPER_OVPN_UNAUTHENTICATED_ID => 12000 -32, 
    321         WRAPPER_OVPN_APP_ID_DOES_NOT_EXIST => 12000 -33, 
    322         WRAPPER_OVPN_UNAUTHORIZED_ID => 12000 -34, 
    323         WRAPPER_OVPN_INVALID_PASSWORD => 12000 -97, 
    324  
    325         WRAPPER_LINBO_ERROR_BASE => 13000, 
    326         WRAPPER_LINBO_GENERAL_ERROR => 13000 -1, 
    327         WRAPPER_LINBO_PROGRAM_ERROR => 13000 -2, 
    328         WRAPPER_LINBO_UNAUTHORIZED_UID => 13000 -3, 
    329         WRAPPER_LINBO_SCRIPT_EXEC_FAILED => 13000 -6, 
    330         WRAPPER_LINBO_UNAUTHENTICATED_ID => 13000 -32, 
    331         WRAPPER_LINBO_APP_ID_DOES_NOT_EXIST => 13000 -33, 
    332         WRAPPER_LINBO_UNAUTHORIZED_ID => 13000 -34, 
    333         WRAPPER_LINBO_INVALID_GROUP => 13000 -55, 
    334         WRAPPER_LINBO_INVALID_FILENAME => 13000 -56, 
    335         WRAPPER_LINBO_INVALID_IS_EXAMPLE => 13000 -57, 
    336         WRAPPER_LINBO_INVALID_IMAGE => 13000 -58, 
    337         WRAPPER_LINBO_INVALID_ACTION => 13000 -59, 
    338         WRAPPER_LINBO_CANNOT_OPEN_FILE => 13000 -106, 
    33973}; 
    34074 
     
    380114        $this->{code} == PUBLIC_BG_ERROR 
    381115                and return 'Fehler im Hintergrundprozess: ' . ${ $this->{info} }[0]; 
    382         $this->{code} == LINBO_START_CONF_ERROR 
     116        $this->{code} == Schulkonsole::Error::Linbo::START_CONF_ERROR 
    383117                and return "Fehler in der Konfiguration"; 
    384118        $this->{code} == INTERNAL_BG_ERROR 
     
    397131                and return 'Keine Workstationbenutzer'; 
    398132        (   $this->{code} == CANNOT_OPEN_FILE 
    399          or $this->{code} == WRAPPER_SOPHOMORIX_CANNOT_OPEN_FILE 
    400          or $this->{code} == WRAPPER_FILES_CANNOT_OPEN_FILE 
    401          or $this->{code} == WRAPPER_LINBO_CANNOT_OPEN_FILE) 
     133         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     134         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_CANNOT_OPEN_FILE 
     135         or $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_CANNOT_OPEN_FILE) 
    402136                and return 'Kann Datei nicht oeffnen'; 
    403137        $this->{code} == FILE_FORMAT_ERROR 
     
    409143        $this->{code} == WRAPPER_BROKEN_PIPE_IN 
    410144                and return 'Datenuebertragung (lesen) unterbrochen'; 
    411         (   $this->{code} == WRAPPER_USER_PROGRAM_ERROR 
    412          or $this->{code} == WRAPPER_FIREWALL_PROGRAM_ERROR 
    413          or $this->{code} == WRAPPER_PRINTER_PROGRAM_ERROR 
    414          or $this->{code} == WRAPPER_SOPHOMORIX_PROGRAM_ERROR 
    415          or $this->{code} == WRAPPER_COLLAB_PROGRAM_ERROR 
    416          or $this->{code} == WRAPPER_FILES_PROGRAM_ERROR 
    417          or $this->{code} == WRAPPER_OVPN_PROGRAM_ERROR 
    418          or $this->{code} == WRAPPER_LINBO_PROGRAM_ERROR) 
     145        (   $this->{code} == Schulkonsole::Error::User::WRAPPER_PROGRAM_ERROR 
     146         or $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_PROGRAM_ERROR 
     147         or $this->{code} == Schulkonsole::Error::Printer::WRAPPER_PROGRAM_ERROR 
     148         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_PROGRAM_ERROR 
     149         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_PROGRAM_ERROR 
     150         or $this->{code} == Schulkonsole::Error::OVPN::WRAPPER_PROGRAM_ERROR 
     151         or $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_PROGRAM_ERROR) 
    419152                and return 'Programmaufruf fehlgeschlagen'; 
    420         (   $this->{code} == WRAPPER_USER_UNAUTHORIZED_UID 
    421          or $this->{code} == WRAPPER_FIREWALL_UNAUTHORIZED_UID 
    422          or $this->{code} == WRAPPER_PRINTER_UNAUTHORIZED_UID 
    423          or $this->{code} == WRAPPER_SOPHOMORIX_UNAUTHORIZED_UID 
    424          or $this->{code} == WRAPPER_CYRUS_UNAUTHORIZED_UID 
    425          or $this->{code} == WRAPPER_COLLAB_UNAUTHORIZED_UID 
    426          or $this->{code} == WRAPPER_FILES_UNAUTHORIZED_UID 
    427          or $this->{code} == WRAPPER_OVPN_UNAUTHORIZED_UID 
    428          or $this->{code} == WRAPPER_LINBO_UNAUTHORIZED_UID) 
     153        (   $this->{code} == Schulkonsole::Error::User::WRAPPER_UNAUTHORIZED_UID 
     154         or $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_UNAUTHORIZED_UID 
     155         or $this->{code} == Schulkonsole::Error::Printer::WRAPPER_UNAUTHORIZED_UID 
     156         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_UNAUTHORIZED_UID 
     157         or $this->{code} == Schulkonsole::Error::Cyrus::WRAPPER_UNAUTHORIZED_UID 
     158         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_UNAUTHORIZED_UID 
     159         or $this->{code} == Schulkonsole::Error::OVPN::WRAPPER_UNAUTHORIZED_UID 
     160         or $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_UNAUTHORIZED_UID) 
    429161                and return 'Nicht autorisierter Aufrufer'; 
    430         $this->{code} == WRAPPER_USER_INVALID_UID 
     162        $this->{code} == Schulkonsole::Error::User::WRAPPER_INVALID_UID 
    431163                and return 'Wechsel zu diesem Benutzer nicht erlaubt'; 
    432         $this->{code} == WRAPPER_USER_SETUID_FAILED 
     164        $this->{code} == Schulkonsole::Error::User::WRAPPER_SETUID_FAILED 
    433165                and return 'Wechsel zu diesem Benutzer nicht moeglich'; 
    434         (   $this->{code} == WRAPPER_USER_INVALID_SCRIPT 
    435          or $this->{code} == WRAPPER_CYRUS_INVALID_SCRIPT) 
     166        (   $this->{code} == Schulkonsole::Error::User::WRAPPER_INVALID_SCRIPT 
     167         or $this->{code} == Schulkonsole::Error::Cyrus::WRAPPER_INVALID_SCRIPT) 
    436168                and return 'Skript nicht vorhanden'; 
    437         (   $this->{code} == WRAPPER_USER_SCRIPT_EXEC_FAILED 
    438          or $this->{code} == WRAPPER_FIREWALL_SCRIPT_EXEC_FAILED 
    439          or $this->{code} == WRAPPER_PRINTER_SCRIPT_EXEC_FAILED 
    440          or $this->{code} == WRAPPER_SOPHOMORIX_SCRIPT_EXEC_FAILED 
    441          or $this->{code} == WRAPPER_CYRUS_SCRIPT_EXEC_FAILED 
    442          or $this->{code} == WRAPPER_COLLAB_SCRIPT_EXEC_FAILED 
    443          or $this->{code} == WRAPPER_FILES_SCRIPT_EXEC_FAILED 
    444          or $this->{code} == WRAPPER_OVPN_SCRIPT_EXEC_FAILED 
    445          or $this->{code} == WRAPPER_LINBO_SCRIPT_EXEC_FAILED) 
     169        (   $this->{code} == Schulkonsole::Error::User::WRAPPER_SCRIPT_EXEC_FAILED 
     170         or $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_SCRIPT_EXEC_FAILED 
     171         or $this->{code} == Schulkonsole::Error::Printer::WRAPPER_SCRIPT_EXEC_FAILED 
     172         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_SCRIPT_EXEC_FAILED 
     173         or $this->{code} == Schulkonsole::Error::Cyrus::WRAPPER_SCRIPT_EXEC_FAILED 
     174         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_SCRIPT_EXEC_FAILED 
     175         or $this->{code} == Schulkonsole::Error::OVPN::WRAPPER_SCRIPT_EXEC_FAILED 
     176         or $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_SCRIPT_EXEC_FAILED) 
    446177                and return 'Skriptaufruf fehlgeschlagen'; 
    447         (   $this->{code} == WRAPPER_FIREWALL_UNAUTHENTICATED_ID 
    448          or $this->{code} == WRAPPER_PRINTER_UNAUTHENTICATED_ID 
    449          or $this->{code} == WRAPPER_SOPHOMORIX_UNAUTHENTICATED_ID 
    450          or $this->{code} == WRAPPER_COLLAB_UNAUTHENTICATED_ID 
    451          or $this->{code} == WRAPPER_FILES_UNAUTHENTICATED_ID 
    452          or $this->{code} == WRAPPER_OVPN_UNAUTHENTICATED_ID 
    453          or $this->{code} == WRAPPER_LINBO_UNAUTHENTICATED_ID) 
     178        (   $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_UNAUTHENTICATED_ID 
     179         or $this->{code} == Schulkonsole::Error::Printer::WRAPPER_UNAUTHENTICATED_ID 
     180         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_UNAUTHENTICATED_ID 
     181         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_UNAUTHENTICATED_ID 
     182         or $this->{code} == Schulkonsole::Error::OVPN::WRAPPER_UNAUTHENTICATED_ID 
     183         or $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_UNAUTHENTICATED_ID) 
    454184                and return 'Authentifizierung fehlgeschlagen nach ID'; 
    455         (   $this->{code} == WRAPPER_FIREWALL_APP_ID_DOES_NOT_EXIST 
    456          or $this->{code} == WRAPPER_PRINTER_APP_ID_DOES_NOT_EXIST 
    457          or $this->{code} == WRAPPER_SOPHOMORIX_APP_ID_DOES_NOT_EXIST 
    458          or $this->{code} == WRAPPER_COLLAB_APP_ID_DOES_NOT_EXIST 
    459          or $this->{code} == WRAPPER_FILES_APP_ID_DOES_NOT_EXIST 
    460          or $this->{code} == WRAPPER_OVPN_APP_ID_DOES_NOT_EXIST 
    461          or $this->{code} == WRAPPER_LINBO_APP_ID_DOES_NOT_EXIST) 
     185        (   $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_APP_ID_DOES_NOT_EXIST 
     186         or $this->{code} == Schulkonsole::Error::Printer::WRAPPER_APP_ID_DOES_NOT_EXIST 
     187         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_APP_ID_DOES_NOT_EXIST 
     188         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_APP_ID_DOES_NOT_EXIST 
     189         or $this->{code} == Schulkonsole::Error::OVPN::WRAPPER_APP_ID_DOES_NOT_EXIST 
     190         or $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_APP_ID_DOES_NOT_EXIST) 
    462191                and return 'Programm-ID unbekannt'; 
    463         (   $this->{code} == WRAPPER_FIREWALL_UNAUTHORIZED_ID 
    464          or $this->{code} == WRAPPER_PRINTER_UNAUTHORIZED_ID 
    465          or $this->{code} == WRAPPER_SOPHOMORIX_UNAUTHORIZED_ID 
    466          or $this->{code} == WRAPPER_COLLAB_UNAUTHORIZED_ID 
    467          or $this->{code} == WRAPPER_FILES_UNAUTHORIZED_ID 
    468          or $this->{code} == WRAPPER_OVPN_UNAUTHORIZED_ID 
    469          or $this->{code} == WRAPPER_LINBO_UNAUTHORIZED_ID) 
     192        (   $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_UNAUTHORIZED_ID 
     193         or $this->{code} == Schulkonsole::Error::Printer::WRAPPER_UNAUTHORIZED_ID 
     194         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_UNAUTHORIZED_ID 
     195         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_UNAUTHORIZED_ID 
     196         or $this->{code} == Schulkonsole::Error::OVPN::WRAPPER_UNAUTHORIZED_ID 
     197         or $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_UNAUTHORIZED_ID) 
    470198                and return 'Nicht autorisierter Aufrufer nach ID'; 
    471         $this->{code} == WRAPPER_FILES_INVALID_SESSION_ID 
     199        $this->{code} == Schulkonsole::Error::Files::WRAPPER_INVALID_SESSION_ID 
    472200                and return 'Ungueltige Session-ID'; 
    473         $this->{code} == WRAPPER_FIREWALL_INVALID_MAC 
     201        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_INVALID_MAC 
    474202                and return 'Ungueltige MAC-Adresse'; 
    475         $this->{code} == WRAPPER_FIREWALL_NO_MACS 
     203        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_NO_MACS 
    476204                and return 'Keine MAC-Adressen'; 
    477         $this->{code} == WRAPPER_FIREWALL_INVALID_HOST 
     205        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_INVALID_HOST 
    478206                and return 'Ungueltiger Host'; 
    479         $this->{code} == WRAPPER_FIREWALL_NO_HOSTS 
     207        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_NO_HOSTS 
    480208                and return 'Keine Hosts'; 
    481         $this->{code} == WRAPPER_FIREWALL_INVALID_ROOM 
     209        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_INVALID_ROOM 
    482210                and return 'Ungueltige Raumbezeichnung'; 
    483         $this->{code} == WRAPPER_FIREWALL_INVALID_LESSONMODE 
     211        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_INVALID_LESSONMODE 
    484212                and return 'Ungueltiger Modus fuer Unterricht'; 
    485         $this->{code} == WRAPPER_FIREWALL_INVALID_LESSONTIME 
     213        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_INVALID_LESSONTIME 
    486214                and return 'Ungueltige Zeitangabe fuer Unterrichtsende'; 
    487         $this->{code} == WRAPPER_FIREWALL_CANNOT_WRITE_ROOMFILE 
     215        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_CANNOT_WRITE_ROOMFILE 
    488216                and return 'Raumdatei kann nicht geschrieben werden'; 
    489         $this->{code} == WRAPPER_FIREWALL_CANNOT_READ_ROOMFILE 
     217        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_CANNOT_READ_ROOMFILE 
    490218                and return 'Raumdatei kann nicht gelesen werden'; 
    491         $this->{code} == WRAPPER_FIREWALL_INVALID_ROOM_SCOPE 
     219        $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_INVALID_ROOM_SCOPE 
    492220                and return 'Erwarte 0 oder 1 fuer scope'; 
    493         (   $this->{code} == WRAPPER_FIREWALL_CANNOT_FORK 
    494          or $this->{code} == WRAPPER_SOPHOMORIX_CANNOT_FORK 
    495          or $this->{code} == WRAPPER_FILES_CANNOT_FORK) 
     221        (   $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_CANNOT_FORK 
     222         or $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_FORK 
     223         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_CANNOT_FORK) 
    496224                and return 'Fork nicht moeglich'; 
    497         $this->{code} == WRAPPER_PRINTER_CANNOT_OPEN_PRINTERSCONF 
     225        (   $this->{code} == Schulkonsole::Error::Printer::WRAPPER_CANNOT_OPEN_PRINTERSCONF 
     226         or $this->{code} == Schulkonsole::Error::Firewall::WRAPPER_CANNOT_OPEN_PRINTERSCONF) 
    498227                and return 'Kann printers.conf nicht oeffnen'; 
    499         $this->{code} == WRAPPER_PRINTER_INVALID_PRINTER_NAME 
     228        $this->{code} == Schulkonsole::Error::Printer::WRAPPER_INVALID_PRINTER_NAME 
    500229                and return 'Ungueltiger Druckername'; 
    501         $this->{code} == WRAPPER_PRINTER_NO_PRINTERS 
     230        $this->{code} == Schulkonsole::Error::Printer::WRAPPER_NO_PRINTERS 
    502231                and return 'Keine Drucker'; 
    503         $this->{code} == WRAPPER_PRINTER_INVALID_USER 
     232        $this->{code} == Schulkonsole::Error::Printer::WRAPPER_INVALID_USER 
    504233                and return 'Ungueltiger Druckernutzer'; 
    505         $this->{code} == WRAPPER_SOPHOMORIX_ON_UNDEFINED 
     234        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_ON_UNDEFINED 
    506235                and return 'on muss 1 oder 0 sein'; 
    507         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_USER 
     236        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USER 
    508237                and return 'Ungueltiger Benutzer'; 
    509         $this->{code} == WRAPPER_SOPHOMORIX_NO_USERS 
     238        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERS 
    510239                and return 'Keine Benutzer'; 
    511         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_USERID 
     240        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USERID 
    512241                and return 'Ungueltige Benutzer-ID'; 
    513         $this->{code} == WRAPPER_SOPHOMORIX_NO_USERIDS 
     242        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERIDS 
    514243                and return 'Keine Benutzer-IDs'; 
    515         $this->{code} == WRAPPER_SOPHOMORIX_NO_SUCH_DIRECTORY 
     244        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_NO_SUCH_DIRECTORY 
    516245                and return 'Verzeichnis nicht gefunden'; 
    517         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_ROOM 
     246        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_ROOM 
    518247                and return 'Ungueltiger Raumbezeichner'; 
    519         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_DO_COPY 
     248        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_COPY 
    520249                and return 'Erwarte 1 oder 0 fuer do_copy'; 
    521         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_FROM 
     250        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FROM 
    522251                and return 'Erwarte numerische Angabe fuer "from"'; 
    523         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_TYPE 
     252        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_TYPE 
    524253                and return 'Erwarte numerische Angabe fuer "type"'; 
    525         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_ROOM 
     254        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_ROOM 
    526255                and return 'Ungueltiger Raum'; 
    527         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_PROJECT 
     256        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
    528257                and return 'Ungueltiges Projekt'; 
    529         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_CLASS 
     258        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
    530259                and return 'Ungueltige Klassen-GID'; 
    531         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_SUBCLASS 
     260        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_SUBCLASS 
    532261                and return 'Ungueltige Subklasse'; 
    533         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_DO_ADD 
     262        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_ADD 
    534263                and return 'Erwarte 1 oder 0 fuer do_add'; 
    535         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_FILE_TYPE 
     264        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILE_TYPE 
    536265                and return 'Erwarte 0 (PDF) oder 1 (CSV) fuer filetype'; 
    537         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_SET_PASSWORD_TYPE 
     266        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_SET_PASSWORD_TYPE 
    538267                and return 'Erwarte 0 (reset), 1 (passwd) oder 3 (random) fuer type'; 
    539         (   $this->{code} == WRAPPER_SOPHOMORIX_INVALID_PASSWORD 
    540          or $this->{code} == WRAPPER_OVPN_INVALID_PASSWORD) 
     268        (   $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PASSWORD 
     269         or $this->{code} == Schulkonsole::Error::OVPN::WRAPPER_INVALID_PASSWORD) 
    541270                and return 'Ungueltiger Wert fuer password'; 
    542         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_IS_GROUPS 
     271        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_IS_GROUPS 
    543272                and return 'Erwarte 1 oder 0 fuer is_groups'; 
    544         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_IS_PUBLIC 
     273        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_IS_PUBLIC 
    545274                and return 'Erwarte 1 oder 0 fuer is_public'; 
    546         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_IS_UPLOAD 
     275        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_IS_UPLOAD 
    547276                and return 'Erwarte 1 oder 0 fuer is_upload'; 
    548         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_PROJECTGID 
     277        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECTGID 
    549278                and return 'Ungueltiger Wert fuer projectgid'; 
    550         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_MEMBERSCOPE 
     279        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_MEMBERSCOPE 
    551280                and return 'Erwarte 0, 1, 2 oder 3 fuer scope'; 
    552         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_DO_CREATE 
     281        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_CREATE 
    553282                and return 'Erwarte 1 oder 0 fuer do_create'; 
    554         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_LONGNAME 
     283        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_LONGNAME 
    555284                and return 'Ungueltiger Wert fuer longname'; 
    556         $this->{code} == WRAPPER_CYRUS_NO_CYRUS_USER 
     285        $this->{code} == Schulkonsole::Error::Cyrus::WRAPPER_NO_CYRUS_USER 
    557286                and return 'Benutzer "cyrus" gibt es nicht'; 
    558         $this->{code} == WRAPPER_CYRUS_INVALID_EUID 
     287        $this->{code} == Schulkonsole::Error::Cyrus::WRAPPER_INVALID_EUID 
    559288                and return 'wrapper-cyrus gehoert nicht Benutzer "cyrus" oder SUID nicht gesetzt'; 
    560         $this->{code} == WRAPPER_COLLAB_INVALID_IS_CREATE 
    561                 and return 'Erwarte 1 oder 0 fuer is_create'; 
    562         $this->{code} == WRAPPER_COLLAB_INVALID_IS_GID 
    563                 and return 'Erwarte 1 oder 0 fuer is_gid'; 
    564         $this->{code} == WRAPPER_COLLAB_NO_DB 
    565                 and return 'Keine Datenbanken'; 
    566         $this->{code} == WRAPPER_COLLAB_READ_DB_LIST_FAILED 
    567                 and return 'DB-Liste kann nicht gelesen werden'; 
    568         $this->{code} == WRAPPER_LINBO_INVALID_GROUP 
     289        $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_INVALID_GROUP 
    569290                and return 'Ungueltiger Gruppenname'; 
    570         $this->{code} == WRAPPER_LINBO_INVALID_FILENAME 
     291        $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_INVALID_FILENAME 
    571292                and return 'Ungueltiger Dateiname'; 
    572         $this->{code} == WRAPPER_LINBO_INVALID_IS_EXAMPLE 
     293        $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_INVALID_IS_EXAMPLE 
    573294                and return 'Erwarte 1 oder 0 fuer is_example'; 
    574         $this->{code} == WRAPPER_LINBO_INVALID_IMAGE 
     295        $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_INVALID_IMAGE 
    575296                and return 'Ungueltiger Image-Dateiname'; 
    576         $this->{code} == WRAPPER_LINBO_INVALID_ACTION 
     297        $this->{code} == Schulkonsole::Error::Linbo::WRAPPER_INVALID_ACTION 
    577298                and return 'action muss 0, 1 oder 2 sein'; 
    578         (   $this->{code} == WRAPPER_SOPHOMORIX_INVALID_FILENUMBER 
    579          or $this->{code} == WRAPPER_FILES_INVALID_FILENUMBER) 
     299        (   $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILENUMBER 
     300         or $this->{code} == Schulkonsole::Error::Files::WRAPPER_INVALID_FILENUMBER) 
    580301                and return 'Ungueltiger Wert fuer number'; 
    581         $this->{code} == WRAPPER_SOPHOMORIX_PROCESS_RUNNING 
     302        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_PROCESS_RUNNING 
    582303                and return 'Prozess laeuft schon'; 
    583         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_MODE 
     304        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_MODE 
    584305                and return 'Erwarte 0, 1 oder 2 fuer mode'; 
    585         $this->{code} == WRAPPER_SOPHOMORIX_CHMOD_FAILED 
     306        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_CHMOD_FAILED 
    586307                and return 'Konnte Berechtigung nicht aendern'; 
    587         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_FLAGS 
     308        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FLAGS 
    588309                and return 'Erwarte 1 bis 7 fuer flags'; 
    589         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_DISKQUOTA 
     310        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DISKQUOTA 
    590311                and return 'Ungueltiger Wert fuer diskquota'; 
    591         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_MAILQUOTA 
     312        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_MAILQUOTA 
    592313                and return 'Ungueltiger Wert fuer mailquota'; 
    593         $this->{code} == WRAPPER_SOPHOMORIX_INVALID_IS_JOIN 
     314        $this->{code} == Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_IS_JOIN 
    594315                and return 'Erwarte 1 oder 0 fuer is_open'; 
    595316        $this->{what} 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Files.pm

    r921 r1238  
    8888                } else { 
    8989                        die new Schulkonsole::Error( 
    90                                 Schulkonsole::Error::WRAPPER_FILES_ERROR_BASE + $error, 
     90                                Schulkonsole::Error::Files::WRAPPER_ERROR_BASE + $error, 
    9191                                $Schulkonsole::Config::_wrapper_files); 
    9292                } 
     
    122122                } else { 
    123123                        die new Schulkonsole::Error( 
    124                                 Schulkonsole::Error::WRAPPER_FILES_ERROR_BASE + $error, 
     124                                Schulkonsole::Error::Files::WRAPPER_ERROR_BASE + $error, 
    125125                                $Schulkonsole::Config::_wrapper_files); 
    126126                } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Firewall.pm

    r1088 r1238  
    118118                } else { 
    119119                        die new Schulkonsole::Error( 
    120                                 Schulkonsole::Error::WRAPPER_FIREWALL_ERROR_BASE + $error, 
     120                                Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE + $error, 
    121121                                $Schulkonsole::Config::_wrapper_firewall); 
    122122                } 
     
    159159                } else { 
    160160                        die new Schulkonsole::Error( 
    161                                 Schulkonsole::Error::WRAPPER_FIREWALL_ERROR_BASE + $error, 
     161                                Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE + $error, 
    162162                                $Schulkonsole::Config::_wrapper_firewall, 
    163163                                ($input_buffer ? "Output: $input_buffer" : 'No Output')); 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Info.pm

    r223 r1238  
    5454                } else { 
    5555                        die new Schulkonsole::Error( 
    56                                 Schulkonsole::Error::WRAPPER_USER_ERROR_BASE + $error, 
     56                                Schulkonsole::Error::User::WRAPPER_ERROR_BASE + $error, 
    5757                                $Schulkonsole::Config::_wrapper_user); 
    5858                } 
     
    8585                } else { 
    8686                        die new Schulkonsole::Error( 
    87                                 Schulkonsole::Error::WRAPPER_USER_ERROR_BASE + $error, 
     87                                Schulkonsole::Error::User::WRAPPER_ERROR_BASE + $error, 
    8888                                $Schulkonsole::Config::_wrapper_user); 
    8989                } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Linbo.pm

    r1172 r1238  
    157157                } else { 
    158158                        die new Schulkonsole::Error( 
    159                                 Schulkonsole::Error::WRAPPER_LINBO_ERROR_BASE + $error, 
     159                                Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE + $error, 
    160160                                $Schulkonsole::Config::_wrapper_linbo); 
    161161                } 
     
    191191                } else { 
    192192                        die new Schulkonsole::Error( 
    193                                 Schulkonsole::Error::WRAPPER_LINBO_ERROR_BASE + $error, 
     193                                Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE + $error, 
    194194                                $Schulkonsole::Config::_wrapper_linbo); 
    195195                } 
     
    850850 
    851851 
    852         die new Schulkonsole::Error(Schulkonsole::Error::LINBO_START_CONF_ERROR, 
     852        die new Schulkonsole::Error(Schulkonsole::Error::Linbo::START_CONF_ERROR, 
    853853                                    \%errors) 
    854854                if %errors; 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Makefile.am

    r268 r1238  
    11perllibdir = $(pkgdatadir)/Schulkonsole 
    22perllib_DATA = Session.pm Config.pm 
    3 dist_perllib_DATA = DB.pm Error.pm ExternalError.pm Gettext.pm Template.pm \ 
     3nobase_dist_perllib_DATA = \ 
     4        DB.pm \ 
     5        Error.pm ExternalError.pm \ 
     6        Error/Cyrus.pm \ 
     7        Error/Files.pm \ 
     8        Error/Firewall.pm \ 
     9        Error/Linbo.pm \ 
     10        Error/OVPN.pm \ 
     11        Error/Printer.pm \ 
     12        Error/Sophomorix.pm \ 
     13        Error/User.pm \ 
     14        Gettext.pm Template.pm \ 
    415        Room.pm RoomSession.pm \ 
    516        TeachIn.pm \ 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/OVPN.pm

    r212 r1238  
    8686                } else { 
    8787                        die new Schulkonsole::Error( 
    88                                 Schulkonsole::Error::WRAPPER_OVPN_ERROR_BASE + $error, 
     88                                Schulkonsole::Error::OVPN::WRAPPER_ERROR_BASE + $error, 
    8989                                $Schulkonsole::Config::_wrapper_ovpn); 
    9090                } 
     
    126126                        } else { 
    127127                                die new Schulkonsole::Error( 
    128                                         Schulkonsole::Error::WRAPPER_OVPN_ERROR_BASE + $error, 
     128                                        Schulkonsole::Error::OVPN::WRAPPER_ERROR_BASE + $error, 
    129129                                        $Schulkonsole::Config::_wrapper_ovpn); 
    130130                        } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Printer.pm

    r209 r1238  
    6262                } else { 
    6363                        die new Schulkonsole::Error( 
    64                                 Schulkonsole::Error::WRAPPER_PRINTER_ERROR_BASE + $error, 
     64                                Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE + $error, 
    6565                                $Schulkonsole::Config::_wrapper_printer); 
    6666                } 
     
    9696                } else { 
    9797                        die new Schulkonsole::Error( 
    98                                 Schulkonsole::Error::WRAPPER_PRINTER_ERROR_BASE + $error, 
     98                                Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE + $error, 
    9999                                $Schulkonsole::Config::_wrapper_printer); 
    100100                } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Session.pm.in

    r268 r1238  
    895895                # password changed -> re-authenticate 
    896896                if (   $error->{code} 
    897                         == Schulkonsole::Error::WRAPPER_FIREWALL_UNAUTHENTICATED_ID 
     897                        == Schulkonsole::Error::Firewall::WRAPPER_UNAUTHENTICATED_ID 
    898898                    or $error->{code} 
    899                         == Schulkonsole::Error::WRAPPER_PRINTER_UNAUTHENTICATED_ID 
     899                        == Schulkonsole::Error::Printer::WRAPPER_UNAUTHENTICATED_ID 
    900900                    or $error->{code} 
    901                         == Schulkonsole::Error::WRAPPER_SOPHOMORIX_UNAUTHENTICATED_ID 
     901                        == Schulkonsole::Error::Sophomorix::WRAPPER_UNAUTHENTICATED_ID 
    902902                    or $error->{code} 
    903                         == Schulkonsole::Error::WRAPPER_COLLAB_UNAUTHENTICATED_ID 
    904                     or $error->{code} 
    905                         == Schulkonsole::Error::WRAPPER_FILES_UNAUTHENTICATED_ID) { 
     903                        == Schulkonsole::Error::Files::WRAPPER_UNAUTHENTICATED_ID) { 
    906904                        $this->exit_with_login_page($page); 
    907905                } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/lib/Schulkonsole/Sophomorix.pm

    r253 r1238  
    219219                } else { 
    220220                        die new Schulkonsole::Error( 
    221                                 Schulkonsole::Error::WRAPPER_SOPHOMORIX_ERROR_BASE + $error, 
     221                                Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE + $error, 
    222222                                $Schulkonsole::Config::_wrapper_sophomorix); 
    223223                } 
     
    254254                        $error -= 256; 
    255255                        die new Schulkonsole::Error( 
    256                                 Schulkonsole::Error::WRAPPER_SOPHOMORIX_ERROR_BASE + $error, 
     256                                Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE + $error, 
    257257                                $Schulkonsole::Config::_wrapper_sophomorix); 
    258258                } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/src/util/wrapper-files.pl.in

    r921 r1238  
    3030use Schulkonsole::Config; 
    3131use Schulkonsole::DB; 
     32use Schulkonsole::Error::Files; 
    3233 
    3334 
     
    3940 
    4041my $userdata = Schulkonsole::DB::verify_password_by_id($id, $password); 
    41 exit -32 unless $userdata; 
     42exit (  Schulkonsole::Error::Files::WRAPPER_UNAUTHENTICATED_ID 
     43      - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE) 
     44        unless $userdata; 
    4245 
    4346my $app_id = <>; 
    4447($app_id) = $app_id =~ /^(\d+)$/; 
    45 exit -33 
    46         unless defined $app_id && $Schulkonsole::Config::_root_apps[$app_id]; 
     48exit (  Schulkonsole::Error::Files::WRAPPER_APP_ID_DOES_NOT_EXIST 
     49      - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE) 
     50        unless defined $app_id; 
     51 
     52my $app_name = $Schulkonsole::Config::_id_root_app_names{$app_id}; 
     53exit (  Schulkonsole::Error::Files::WRAPPER_APP_ID_DOES_NOT_EXIST 
     54      - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE) 
     55        unless defined $app_name; 
    4756 
    4857 
     
    5261        $$userdata{uidnumber}, $$userdata{gidnumber}, $$userdata{gid}); 
    5362 
    54 my $app; 
     63my $is_permission_found = 0; 
    5564foreach my $group (('ALL', keys %$groups)) { 
    56         foreach my $name (keys %{ $$permissions{$group} }) { 
    57                 if ($Schulkonsole::Config::_root_app_name_ids{$name} == $app_id) { 
    58                         $app = $Schulkonsole::Config::_root_apps[$app_id]; 
    59                         last; 
    60                 } 
     65        if ($$permissions{$group}{$app_name}) { 
     66                $is_permission_found = 1; 
     67                last; 
    6168        } 
    6269} 
    63 exit -34 unless $app; 
     70exit (  Schulkonsole::Error::Files::WRAPPER_UNAUTHORIZED_ID 
     71      - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE) 
     72        unless $is_permission_found; 
    6473 
    6574 
     
    8796        my $file = <>; 
    8897        ($file) = $file =~ /^(\d+)$/; 
    89         exit -105 unless defined $file; 
     98        exit (  Schulkonsole::Error::Files::WRAPPER_INVALID_FILENUMBER 
     99              - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE) 
     100                unless defined $file; 
    90101 
    91102        my $filename; 
     
    125136        umask(022); 
    126137 
    127         open FILE, ">$filename" or exit -106; 
     138        open FILE, ">$filename" 
     139                or exit(  Schulkonsole::Error::Files::WRAPPER_ERROR_BASE 
     140                        - Schulkonsole::Error::Files::WRAPPER_CANNOT_OPEN_FILE); 
    128141        flock FILE, 2; 
    129142        seek FILE, 0, 0; 
     
    151164        my $sid = <>; 
    152165        ($sid) = $sid =~ /^(.+)$/; 
    153         exit -10 unless defined $sid; 
     166        exit (  Schulkonsole::Error::Files::WRAPPER_INVALID_SESSION_ID 
     167              - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE) 
     168                unless defined $sid; 
    154169 
    155170        my $pid = fork; 
    156         exit -44 unless defined $pid; 
     171        exit (  Schulkonsole::Error::Files::WRAPPER_CANNOT_FORK 
     172              - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE) 
     173                unless defined $pid; 
    157174 
    158175        if (not $pid) { 
     
    166183                umask(027); 
    167184                my $lockfile = Schulkonsole::Config::lockfile('import_workstations'); 
    168                 open LOCK, ">>$lockfile" or exit -106; 
     185                open LOCK, ">>$lockfile" 
     186                        or exit(  Schulkonsole::Error::Files::WRAPPER_ERROR_BASE 
     187                                - Schulkonsole::Error::Files::WRAPPER_CANNOT_OPEN_FILE); 
    169188                flock LOCK, 2; 
    170189                seek LOCK, 0, 0; 
     
    176195                $( = $); 
    177196                umask(022); 
    178                 open APP, "$app | " or last SWITCH; 
     197                open APP, "$Schulkonsole::Config::_cmd_import_workstations | " 
     198                        or last SWITCH; 
    179199                my $line; 
    180200                while (<APP>) { 
     
    186206                        use CGI::Session; 
    187207 
    188                         my $session_lockfile = Schulkonsole::Config::lockfile("cgisession_$sid"); 
    189                         open SESSIONLOCK, ">>$session_lockfile" or exit -106; 
     208                        my $session_lockfile 
     209                                = Schulkonsole::Config::lockfile("cgisession_$sid"); 
     210                        open SESSIONLOCK, ">>$session_lockfile" 
     211                                or exit (  Schulkonsole::Error::Files::WRAPPER_CANNOT_OPEN_FILE 
     212                                         - Schulkonsole::Error::Files::WRAPPER_ERROR_BASE); 
    190213                        flock SESSIONLOCK, 2; 
    191214 
    192                         my $session = new CGI::Session("driver:File", $sid, { Directory => $Schulkonsole::Config::_runtimedir }); 
     215                        my $session = new CGI::Session("driver:File", $sid, 
     216                                        { 
     217                                                Directory => $Schulkonsole::Config::_runtimedir 
     218                                        }); 
    193219                        if ($session->param('username')) { 
    194220                                chomp $line; 
     
    206232}; 
    207233 
    208 =head3 import_workstations 
     234=head3 import_printers 
    209235 
    210236numeric constant: C<Schulkonsole::Config::IMPORTPRINTERSAPP> 
     
    217243        $( = $); 
    218244        umask(022); 
    219         exec "$app" or last SWITCH; 
     245        exec $Schulkonsole::Config::_cmd_import_printers or last SWITCH; 
    220246}; 
    221247 
  • schulkonsole/linuxmuster-schulkonsole/trunk/src/util/wrapper-firewall.pl.in

    r1059 r1238  
    3434use Sophomorix::SophomorixConfig; 
    3535use Schulkonsole::Config; 
     36use Schulkonsole::Error::Firewall; 
    3637use Schulkonsole::DB; 
    3738use Schulkonsole::RoomSession; 
     
    4647 
    4748my $userdata = Schulkonsole::DB::verify_password_by_id($id, $password); 
    48 exit -32 unless $userdata; 
     49exit (  Schulkonsole::Error::Firewall::WRAPPER_UNAUTHENTICATED_ID 
     50      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     51        unless $userdata; 
     52 
    4953 
    5054my $app_id = <>; 
    5155($app_id) = $app_id =~ /^(\d+)$/; 
    52 exit -33 
    53         unless defined $app_id && $Schulkonsole::Config::_root_apps[$app_id]; 
     56exit (  Schulkonsole::Error::Firewall::WRAPPER_APP_ID_DOES_NOT_EXIST 
     57      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     58        unless defined $app_id; 
     59 
     60my $app_name = $Schulkonsole::Config::_id_root_app_names{$app_id}; 
     61exit (  Schulkonsole::Error::Firewall::WRAPPER_APP_ID_DOES_NOT_EXIST 
     62      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     63        unless defined $app_name; 
    5464 
    5565 
     
    5969        $$userdata{uidnumber}, $$userdata{gidnumber}, $$userdata{gid}); 
    6070 
    61 my $app; 
     71my $is_permission_found = 0; 
    6272foreach my $group (('ALL', keys %$groups)) { 
    63         foreach my $name (keys %{ $$permissions{$group} }) { 
    64                 if ($Schulkonsole::Config::_root_app_name_ids{$name} == $app_id) { 
    65                         $app = $Schulkonsole::Config::_root_apps[$app_id]; 
    66                         last; 
    67                 } 
     73        if ($$permissions{$group}{$app_name}) { 
     74                $is_permission_found = 1; 
     75                last; 
    6876        } 
    6977} 
    70 exit -34 unless $app; 
     78exit (  Schulkonsole::Error::Firewall::WRAPPER_UNAUTHORIZED_ID 
     79      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     80        unless $is_permission_found; 
    7181 
    7282 
     
    140150 
    141151                ($mac) = $mac =~ /^(\w{2}(?::\w{2}){5})$/; 
    142                 exit -35 unless $mac; 
     152                exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_MAC 
     153                      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     154                        unless $mac; 
    143155 
    144156                push @macs, $mac; 
    145157        } 
    146         exit -36 unless @macs; 
    147  
     158        exit (  Schulkonsole::Error::Firewall::WRAPPER_NO_MACS 
     159              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     160                unless @macs; 
     161 
     162        my $cmd = ($app_id == Schulkonsole::Config::INTERNETONOFFAPP ? 
     163                     $Schulkonsole::Config::_cmd_internet_on_off 
     164                   : $Schulkonsole::Config::_cmd_intranet_on_off); 
    148165        my $opts = "--trigger=$trigger --maclist=" . join(',', @macs); 
    149166 
     
    153170        local $( = $); 
    154171        umask(022); 
    155         exec "$app $opts" or last SWITCH; 
     172        exec "$cmd $opts" or last SWITCH; 
    156173}; 
    157174 
     
    192209 
    193210                ($host) = $host =~ /^([\w.-]+)$/i; 
    194                 exit -37 unless $host; 
     211                exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_HOST 
     212                      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     213                        unless $host; 
    195214 
    196215                push @hosts, $host; 
    197216        } 
    198         exit -38 unless @hosts; 
     217        exit (  Schulkonsole::Error::Firewall::WRAPPER_NO_HOSTS 
     218              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     219                unless @hosts; 
    199220 
    200221        my $opts = "--trigger=$trigger --hostlist=" . join(',', @hosts); 
     
    205226        local $( = $); 
    206227        umask(022); 
    207         exec "$app $opts" or last SWITCH; 
     228        exec "$Schulkonsole::Config::_cmd_urlfilter_on_off $opts" or last SWITCH; 
    208229}; 
    209230 
     
    221242        my $room = <>; 
    222243        ($room) = $room =~ /^([\w -]+)$/; 
    223         exit -39 unless $room; 
     244        exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_ROOM 
     245              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     246                unless $room; 
    224247        # set ruid 
    225248        local $< = $>; 
    226         exec "$app $room" or last SWITCH; 
     249        exec "$Schulkonsole::Config::_cmd_update_logins $room" or last SWITCH; 
    227250}; 
    228251 
     
    240263        # set ruid, so that ssh searches for .ssh/ in /root 
    241264        local $< = $>; 
    242         exec "$app" or last SWITCH; 
     265        exec $Schulkonsole::Config::_cmd_urlfilter_check or last SWITCH; 
    243266}; 
    244267 
     
    266289        my $room = <>; 
    267290        ($room) = $room =~ /^([\w -]+)$/; 
    268         exit -39 unless $room; 
     291        exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_ROOM 
     292              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     293                unless $room; 
    269294 
    270295        my $room_session = room_session($room); 
     
    304329        my $room = <>; 
    305330        ($room) = $room =~ /^([\w -]+)$/; 
    306         exit -39 unless $room; 
     331        exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_ROOM 
     332              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     333                unless $room; 
    307334 
    308335        my $time = <>; 
    309336        ($time) = $time =~ /^(\d+)$/; 
    310         exit -41 unless $time; 
     337        exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_LESSONTIME 
     338              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     339                unless $time; 
    311340 
    312341        { # write values and close session 
     
    316345 
    317346        my $pid = fork; 
    318         exit -44 unless defined $pid; 
     347        exit (  Schulkonsole::Error::Firewall::WRAPPER_CANNOT_FORK 
     348              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     349                unless defined $pid; 
    319350 
    320351        if (not $pid) { 
     
    330361 
    331362                my $stored_room = $room_session->param('name'); 
    332                 exit -45 unless $stored_room; 
     363                exit (  Schulkonsole::Error::Firewall::WRAPPER_CANNOT_READ_ROOMFILE 
     364                      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     365                        unless $stored_room; 
    333366                my $stored_id = $room_session->param('user_id'); 
    334                 exit -45 unless $stored_id; 
     367                exit (  Schulkonsole::Error::Firewall::WRAPPER_CANNOT_READ_ROOMFILE 
     368                      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     369                        unless $stored_id; 
    335370                my $stored_time = $room_session->param('end_time'); 
    336                 exit -45 unless $stored_time; 
     371                exit (  Schulkonsole::Error::Firewall::WRAPPER_CANNOT_READ_ROOMFILE 
     372                      - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     373                        unless $stored_time; 
    337374                my $is_exam_mode = $room_session->param('test_step'); 
    338375 
     
    375412        my $scope = <>; 
    376413        ($scope) = $scope =~ /^([01])$/; 
    377         exit -45 unless defined $scope; 
     414        exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_ROOM_SCOPE 
     415              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     416                unless defined $scope; 
    378417 
    379418        if ($scope == 0) { 
    380419                my $opts = '--all'; 
    381420                $< = $>; 
    382                 exec "$app $opts" or last SWITCH; 
     421                exec "$Schulkonsole::Config::_cmd_linuxmuster_reset $opts" 
     422                        or last SWITCH; 
    383423        } else { 
    384424                my @rooms_reset; 
     
    386426                        last if /^$/; 
    387427                        my ($room) = /^([\w -]+)$/; 
    388                         exit -39 unless $room; 
     428                        exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_ROOM 
     429                              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     430                                unless $room; 
    389431                        push @rooms_reset, $room; 
    390432                } 
     
    393435                        last if /^$/; 
    394436                        my ($host) = /^([\w.-]+)$/i; 
    395                         exit -37 unless $host; 
     437                        exit (  Schulkonsole::Error::Firewall::WRAPPER_INVALID_HOST 
     438                              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     439                                unless $host; 
    396440                        push @hosts_reset, $host; 
    397441                } 
     
    405449 
    406450                foreach my $room (@rooms_reset) { 
    407                         system("$app --room=\Q$room\E") == 0 or $is_error++; 
     451                        system("$Schulkonsole::Config::_cmd_linuxmuster_reset --room=\Q$room\E") == 0 
     452                                or $is_error++; 
    408453                } 
    409454                foreach my $host (@hosts_reset) { 
    410                         system("$app --host=\Q$host\E") == 0 or $is_error++; 
     455                        system("$Schulkonsole::Config::_cmd_linuxmuster_reset --host=\Q$host\E") == 0 
     456                                or $is_error++; 
    411457                } 
    412458 
     
    430476        my $session = new Schulkonsole::RoomSession($room); 
    431477 
    432         exit -1 unless $session; 
     478        exit (  Schulkonsole::Error::Firewall::WRAPPER_GENERAL_ERROR 
     479              - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE) 
     480                unless $session; 
    433481 
    434482        # 'unprivileged' is set in the main CGI-script 
     
    460508                        . " --room \Q$room"; 
    461509 
    462                 my $app = $Schulkonsole::Config::_root_apps[Schulkonsole::Config::COLLECTAPP]; 
    463510 
    464511                local $< = $>; 
     
    466513                local $( = $); 
    467514                umask(022); 
    468                 system "$app $opts"; 
    469  
    470                 $app = $Schulkonsole::Config::_root_apps[Schulkonsole::Config::RESETROOMAPP]; 
     515                system "$Schulkonsole::Config::_cmd_sophomorix_teacher $opts"; 
     516 
    471517                $opts = " --reset-room \Q$room"; 
    472                 system "$app $opts"; 
    473  
    474  
    475                 $app = $Schulkonsole::Config::_root_apps[Schulkonsole::Config::SETPASSWORDSAPP]; 
     518                system "$Schulkonsole::Config::_cmd_sophomorix_room $opts"; 
     519 
     520 
    476521                $opts = " --hide --random --rooms \Q$room"; 
    477                 system "$app $opts"; 
     522                system "$Schulkonsole::Config::_cmd_sophomorix_class $opts"; 
    478523        } 
    479524 
     
    534579#               my $opts = "--trigger=off --hostlist=" . join(',', @webfilter_offs); 
    535580# 
    536 #               system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::URLFILTERONOFFAPP] 
    537 #                               . ' ' . $opts; 
     581#               system $Schulkonsole::Config::_cmd_urlfilter_on_off     . ' ' . $opts; 
    538582#       } 
    539583#       if (@webfilter_ons) { 
    540584#               my $opts = "--trigger=on --hostlist=" . join(',', @webfilter_ons); 
    541585# 
    542 #               system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::URLFILTERONOFFAPP] 
    543 #                               . ' ' . $opts; 
     586#               system $Schulkonsole::Config::_cmd_urlfilter_on_off     . ' ' . $opts; 
    544587#       } 
    545588# 
     
    547590#               my $opts = "--trigger=on --maclist=" . join(',', @internet_ons); 
    548591# 
    549 #               system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::INTERNETONOFFAPP] 
    550 #                       . ' ' . $opts; 
     592#               system $Schulkonsole::Config::_cmd_internet_on_off      . ' ' . $opts; 
    551593#       } 
    552594#       if (@internet_offs) { 
    553595#               my $opts = "--trigger=off --maclist=" . join(',', @internet_offs); 
    554596# 
    555 #               system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::INTERNETONOFFAPP] 
    556 #                       . ' ' . $opts; 
     597#               system $Schulkonsole::Config::_cmd_internet_on_off      . ' ' . $opts; 
    557598#       } 
    558599# 
     
    560601#               my $opts = "--trigger=on --maclist=" . join(',', @intranet_ons); 
    561602# 
    562 #               system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::INTRANETONOFFAPP] 
    563 #                       . ' ' . $opts; 
     603#               system $Schulkonsole::Config::_cmd_intranet_on_off      . ' ' . $opts; 
    564604#       } 
    565605#       if (@intranet_offs) { 
    566606#               my $opts = "--trigger=off --maclist=" . join(',', @intranet_offs); 
    567607# 
    568 #               system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::INTRANETONOFFAPP] 
    569 #                       . ' ' . $opts; 
     608#               system $Schulkonsole::Config::_cmd_intranet_on_off      . ' ' . $opts; 
    570609#       } 
    571610 
    572611 
    573         # reset the room settings according to rooms_default instead of restoring the old state from session file 
    574         my $app = $Schulkonsole::Config::_root_apps[Schulkonsole::Config::ROOMSRESETAPP]; 
     612        # reset the room settings according to rooms_default instead of restoring  
     613        # the old state from session file 
    575614        my $opts = "--room=\Q$room\E"; 
    576         system "$app $opts"; 
     615        system "$Schulkonsole::Config::_cmd_linuxmuster_reset $opts"; 
    577616 
    578617 
     
    584623         
    585624                open PRINTERSCONF, "<$Schulkonsole::Config::_cups_printers_conf_file" 
    586                         or exit -64; 
    587          
     625                        or exit (  Schulkonsole::Error::Firewall::WRAPPER_CANNOT_OPEN_PRINTERSCONF 
     626                                 - Schulkonsole::Error::Firewall::WRAPPER_ERROR_BASE); 
     627 
    588628                my $printer; 
    589629                my %printer_info; 
     
    608648 
    609649 
    610                 my $printer_on_off_app 
    611                         = $Schulkonsole::Config::_root_apps[Schulkonsole::Config::PRINTERONOFFAPP]; 
    612650                foreach my $printer (keys %{ $$oldsettings{printers_accept} }) { 
    613651                        if (    $printer_info{$printer} 
     
    615653                                if ($$oldsettings{printers_accept}{$printer}) { 
    616654                                        if ($printer_info{$printer}{Accepting} ne 'Yes') { 
    617                                                 system "$$printer_on_off_app[0] \Q$printer"; 
     655                                                system "$Schulkonsole::Config::_cmd_printer_accept \Q$printer"; 
    618656                                        } 
    619657                                } else { 
    620658                                        if ($printer_info{$printer}{Accepting} eq 'Yes') { 
    621                                                 system "$$printer_on_off_app[1] \Q$printer"; 
     659                                                system "$Schulkonsole::Config::_cmd_printer_reject \Q$printer"; 
    622660                                        } 
    623661                                } 
     
    643681         
    644682                                if ( @deny_users ) { 
    645                                         system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::PRINTERALLOWDENYAPP] 
     683                                        system $Schulkonsole::Config::_cmd_printer_lpadmin 
    646684                                                . " -p\Q$printer\E -u deny:" . join(',', @deny_users); 
    647685                                } else { 
    648                                         system $Schulkonsole::Config::_root_apps[Schulkonsole::Config::PRINTERALLOWDENYAPP] 
     686                                        system $Schulkonsole::Config::_cmd_printer_lpadmin 
    649687                                                . " -p\Q$printer\E -u deny:none"; 
    650688                                } 
     
    671709         
    672710                                if ($$old_share_states{$login_id}) { 
    673                                         push @shares_on, "\Q$$login_userdata{uid}" unless $share_state; 
     711                                        push @shares_on, "\Q$$login_userdata{uid}" 
     712                                                unless $share_state; 
    674713                                } else { 
    675                                         push @shares_off, "\Q$$login_userdata{uid}" if $share_state; 
     714                                        push @shares_off, "\Q$$login_userdata{uid}" 
     715                                                if $share_state; 
    676716                                } 
    677717         
     
    679719                } 
    680720 
    681                 my $shares_app 
    682                   = $Schulkonsole::Config::_root_apps[Schulkonsole::Config::SHARESONOFFAPP]; 
    683  
    684                 system $shares_app 
    685                         . " --teacher \Q$$userdata{uid}\E --shares --users " . join(',', @shares_on) 
     721 
     722                system $Schulkonsole::Config::_cmd_sophomorix_teacher 
     723                        . " --teacher \Q$$userdata{uid}\E --shares --users " 
     724                        . join(',', @shares_on) 
    686725                        if @shares_on; 
    687                 system $shares_app 
    688                         . " --teacher \Q$$userdata{uid}\E --noshares --users " . join(',', @shares_off) 
     726                system $Schulkonsole::Config::_cmd_sophomorix_teacher 
     727                        . " --teacher \Q$$userdata{uid}\E --noshares --users " 
     728                        . join(',', @shares_off) 
    689729                        if @shares_off; 
    690730        } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/src/util/wrapper-linbo.pl.in

    r1088 r1238  
    3030use Schulkonsole::Config; 
    3131use Schulkonsole::DB; 
     32use Schulkonsole::Error::Linbo; 
    3233use POSIX; 
    3334 
     
    4041 
    4142my $userdata = Schulkonsole::DB::verify_password_by_id($id, $password); 
    42 exit -32 unless $userdata; 
     43exit (  Schulkonsole::Error::Linbo::WRAPPER_UNAUTHENTICATED_ID 
     44      - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     45        unless $userdata; 
    4346 
    4447my $app_id = <>; 
    4548($app_id) = $app_id =~ /^(\d+)$/; 
    46 exit -33 
    47         unless defined $app_id && $Schulkonsole::Config::_root_apps[$app_id]; 
     49exit (  Schulkonsole::Error::Linbo::WRAPPER_APP_ID_DOES_NOT_EXIST 
     50      - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     51        unless defined $app_id; 
     52 
     53my $app_name = $Schulkonsole::Config::_id_root_app_names{$app_id}; 
     54exit (  Schulkonsole::Error::Linbo::WRAPPER_APP_ID_DOES_NOT_EXIST 
     55      - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     56        unless defined $app_name; 
    4857 
    4958 
     
    5362        $$userdata{uidnumber}, $$userdata{gidnumber}, $$userdata{gid}); 
    5463 
    55 my $app; 
     64my $is_permission_found = 0; 
    5665foreach my $group (('ALL', keys %$groups)) { 
    57         foreach my $name (keys %{ $$permissions{$group} }) { 
    58                 if ($Schulkonsole::Config::_root_app_name_ids{$name} == $app_id) { 
    59                         $app = $Schulkonsole::Config::_root_apps[$app_id]; 
    60                         last; 
    61                 } 
     66        if ($$permissions{$group}{$app_name}) { 
     67                $is_permission_found = 1; 
     68                last; 
    6269        } 
    6370} 
    64 exit -34 unless $app; 
     71exit (  Schulkonsole::Error::Linbo::WRAPPER_UNAUTHORIZED_ID 
     72      - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     73        unless $is_permission_found; 
    6574 
    6675 
     
    8190        # set ruid, so that ssh searches for .ssh/ in /root 
    8291        local $< = $>; 
    83         exec "$app" or last SWITCH; 
     92        exec $Schulkonsole::Config::_cmd_update_linbofs or last SWITCH; 
    8493}; 
    8594 
     
    105114        my $group = <>; 
    106115        ($group) = $group =~ /^([a-z\d_]+)$/; 
    107         exit -55 unless defined $group; 
     116        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_GROUP 
     117              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     118                unless defined $group; 
    108119 
    109120        my $filename = $Schulkonsole::Config::_linbo_start_conf_prefix . $group; 
     
    127138        umask(022); 
    128139 
    129         open FILE, ">$filename" or exit -106; 
     140        open FILE, ">$filename" 
     141                or exit (  Schulkonsole::Error::Linbo::WRAPPER_CANNOT_OPEN_FILE 
     142                         - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE); 
    130143        flock FILE, 2; 
    131144        seek FILE, 0, 0; 
     
    161174        my $src = <>; 
    162175        ($src) = $src =~ /^([a-z\d_]+[^\/]*)$/; 
    163         exit -55 unless defined $src; 
     176        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_GROUP 
     177              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     178                unless defined $src; 
    164179 
    165180        my $dest = <>; 
    166181        ($dest) = $dest =~ /^([a-z\d_]+)$/; 
    167         exit -55 unless defined $dest; 
     182        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_GROUP 
     183              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     184                unless defined $dest; 
    168185 
    169186 
     
    189206        umask(022); 
    190207 
    191         open SRC, "<$src_filename" or exit -106; 
     208        open SRC, "<$src_filename" 
     209                or exit (  Schulkonsole::Error::Linbo::WRAPPER_CANNOT_OPEN_FILE 
     210                         - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE); 
    192211        flock SRC, 1; 
    193212        seek SRC, 0, 0; 
    194213 
    195         open DEST, ">$dest_filename" or exit -106; 
     214        open DEST, ">$dest_filename" 
     215                or exit (  Schulkonsole::Error::Linbo::WRAPPER_CANNOT_OPEN_FILE 
     216                         - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE); 
    196217        flock DEST, 2; 
    197218        seek DEST, 0, 0; 
     
    232253        my $regpatch = <>; 
    233254        ($regpatch) = $regpatch =~ /^([^\/]+\.reg)$/; 
    234         exit -56 unless defined $regpatch; 
     255        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_FILENAME 
     256              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     257                unless defined $regpatch; 
    235258 
    236259        my $is_example = <>; 
    237260        ($is_example) = $is_example =~ /^([01])$/; 
    238         exit -57 unless defined $is_example; 
     261        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_IS_EXAMPLE 
     262              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     263                unless defined $is_example; 
    239264 
    240265        my $image = <>; 
    241266        ($image) = $image =~ /^([^\/]+\.(?:cloop|rsync))$/; 
    242         exit -58 unless defined $image; 
     267        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_IMAGE 
     268              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     269                unless defined $image; 
    243270 
    244271        my $src_filename = ($is_example ? 
     
    253280        umask(022); 
    254281 
    255         open SRC, "<$src_filename" or exit -106; 
     282        open SRC, "<$src_filename" 
     283                or exit (  Schulkonsole::Error::Linbo::WRAPPER_CANNOT_OPEN_FILE 
     284                         - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE); 
    256285        flock SRC, 1; 
    257286        seek SRC, 0, 0; 
    258287 
    259         open DEST, ">$dest_filename" or exit -106; 
     288        open DEST, ">$dest_filename" 
     289                or exit (  Schulkonsole::Error::Linbo::WRAPPER_CANNOT_OPEN_FILE 
     290                         - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE); 
    260291        flock DEST, 2; 
    261292        seek DEST, 0, 0; 
     
    294325        my $filename = <>; 
    295326        ($filename) = $filename =~ /^([^\/]+\.(?:cloop|rsync)\.reg|pxegrub\.lst\.(?:[a-z\d_]+))$/; 
    296         exit -56 unless defined $filename; 
     327        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_FILENAME 
     328              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     329                unless defined $filename; 
    297330 
    298331 
     
    333366        my $action = <>; 
    334367        ($action) = $action =~ /^([012])$/; 
    335         exit -59 unless defined $action; 
     368        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_ACTION 
     369              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     370                unless defined $action; 
    336371 
    337372        my $filename = <>; 
    338373        my ($image, $image_suffix) = $filename =~ /^([^\/]+)\.(cloop|rsync)$/; 
    339         exit -58 unless defined $image; 
     374        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_IMAGE 
     375              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     376                unless defined $image; 
    340377 
    341378        my $file = "$Schulkonsole::Config::_linbo_dir/$image.$image_suffix"; 
     
    346383                my $new_image = <>; 
    347384                ($new_image) = $new_image =~ /^([^\/]+?)$/; 
    348                 exit -58 unless defined $new_image; 
    349  
    350                 my $new_file = "$Schulkonsole::Config::_linbo_dir/$new_image.$image_suffix"; 
     385                exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_IMAGE 
     386                      - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     387                        unless defined $new_image; 
     388 
     389                my $new_file 
     390                        = "$Schulkonsole::Config::_linbo_dir/$new_image.$image_suffix"; 
    351391                if ($action == 1) { 
    352392                        foreach my $suffix (@suffixes) { 
     
    388428        my $filename = <>; 
    389429        ($filename) = $filename =~ /^([^\/]+\.(?:cloop|rsync)\.(?:reg|desc)|pxegrub\.lst\.(?:[a-z\d_]+))$/; 
    390         exit -56 unless defined $filename; 
     430        exit (  Schulkonsole::Error::Linbo::WRAPPER_INVALID_FILENAME 
     431              - Schulkonsole::Error::Linbo::WRAPPER_ERROR_BASE) 
     432                unless defined $filename; 
    391433 
    392434        my $file = "$Schulkonsole::Config::_linbo_dir/$filename"; 
  • schulkonsole/linuxmuster-schulkonsole/trunk/src/util/wrapper-ovpn.pl.in

    r249 r1238  
    3030use Schulkonsole::Config; 
    3131use Schulkonsole::DB; 
     32use Schulkonsole::Error::OVPN; 
    3233 
    3334 
     
    3940 
    4041my $userdata = Schulkonsole::DB::verify_password_by_id($id, $password); 
    41 exit -32 unless $userdata; 
     42exit (  Schulkonsole::Error::OVPN::WRAPPER_UNAUTHENTICATED_ID 
     43      - Schulkonsole::Error::OVPN::WRAPPER_ERROR_BASE) 
     44        unless $userdata; 
    4245 
    4346my $app_id = <>; 
    4447($app_id) = $app_id =~ /^(\d+)$/; 
    45 exit -33 
    46         unless defined $app_id && $Schulkonsole::Config::_root_apps[$app_id]; 
     48exit (  Schulkonsole::Error::OVPN::WRAPPER_APP_ID_DOES_NOT_EXIST 
     49      - Schulkonsole::Error::OVPN::WRAPPER_ERROR_BASE) 
     50        unless defined $app_id; 
     51 
     52my $app_name = $Schulkonsole::Config::_id_root_app_names{$app_id}; 
     53exit (  Schulkonsole::Error::OVPN::WRAPPER_APP_ID_DOES_NOT_EXIST 
     54      - Schulkonsole::Error::OVPN::WRAPPER_ERROR_BASE) 
     55        unless defined $app_name; 
    4756 
    4857 
     
    5261        $$userdata{uidnumber}, $$userdata{gidnumber}, $$userdata{gid}); 
    5362 
    54 my $app; 
     63my $is_permission_found = 0; 
    5564foreach my $group (('ALL', keys %$groups)) { 
    56         foreach my $name (keys %{ $$permissions{$group} }) { 
    57                 if ($Schulkonsole::Config::_root_app_name_ids{$name} == $app_id) { 
    58                         $app = $Schulkonsole::Config::_root_apps[$app_id]; 
    59                         last; 
    60                 } 
    61         } 
     65    if ($$permissions{$group}{$app_name}) { 
     66        $is_permission_found = 1; 
     67        last; 
     68    } 
    6269} 
    63 exit -34 unless $app; 
     70exit (  Schulkonsole::Error::OVPN::WRAPPER_UNAUTHORIZED_ID 
     71      - Schulkonsole::Error::OVPN::WRAPPER_ERROR_BASE) 
     72    unless $is_permission_found; 
    6473 
    6574 
     
    109118                my $ovpn_password = <>; 
    110119                ($ovpn_password) = $ovpn_password =~ /^(.{6,})$/; 
    111                 exit -97 unless $ovpn_password; 
     120                exit (  Schulkonsole::Error::OVPN::WRAPPER_INVALID_PASSWORD 
     121                      - Schulkonsole::Error::OVPN::WRAPPER_ERROR_BASE) 
     122                        unless $ovpn_password; 
    112123 
    113124                $opts .= '--create'; 
    114125 
    115                 open PIPE, "| $app $opts" or last SWITCH; 
     126                open PIPE, "| $Schulkonsole::Config::_cmd_ovpn_client_cert $opts" 
     127                        or last SWITCH; 
    116128                print PIPE "$ovpn_password\n"; 
    117129                close PIPE; 
     
    128140 
    129141 
    130         exec "$app $opts" or last SWITCH; 
     142        exec "$Schulkonsole::Config::_cmd_ovpn_client_cert $opts" or last SWITCH; 
    131143}; 
    132144 
  • schulkonsole/linuxmuster-schulkonsole/trunk/src/util/wrapper-printer.pl.in

    r239 r1238  
    2828use Schulkonsole::Config; 
    2929use Schulkonsole::DB; 
     30use Schulkonsole::Error::Printer; 
    3031 
    3132 
     
    3738 
    3839my $userdata = Schulkonsole::DB::verify_password_by_id($id, $password); 
    39 exit -32 unless $userdata; 
     40exit (  Schulkonsole::Error::Printer::WRAPPER_UNAUTHENTICATED_ID 
     41      - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     42        unless $userdata; 
    4043 
    4144my $app_id = <>; 
    4245($app_id) = $app_id =~ /^(\d+)$/; 
    43 exit -33 
    44         unless defined $app_id && $Schulkonsole::Config::_root_apps[$app_id]; 
     46exit (  Schulkonsole::Error::Printer::WRAPPER_APP_ID_DOES_NOT_EXIST 
     47      - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     48        unless defined $app_id; 
     49 
     50my $app_name = $Schulkonsole::Config::_id_root_app_names{$app_id}; 
     51exit (  Schulkonsole::Error::Printer::WRAPPER_APP_ID_DOES_NOT_EXIST 
     52      - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     53        unless defined $app_name; 
    4554 
    4655 
     
    5059        $$userdata{uidnumber}, $$userdata{gidnumber}, $$userdata{gid}); 
    5160 
    52 my $app; 
     61my $is_permission_found = 0; 
    5362foreach my $group (('ALL', keys %$groups)) { 
    54         foreach my $name (keys %{ $$permissions{$group} }) { 
    55                 if ($Schulkonsole::Config::_root_app_name_ids{$name} == $app_id) { 
    56                         $app = $Schulkonsole::Config::_root_apps[$app_id]; 
    57                         last; 
    58                 } 
     63        if ($$permissions{$group}{$app_name}) { 
     64                $is_permission_found = 1; 
     65                last; 
    5966        } 
    6067} 
    61 exit -34 unless $app; 
     68exit (  Schulkonsole::Error::Printer::WRAPPER_UNAUTHORIZED_ID 
     69      - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     70        unless $is_permission_found; 
    6271 
    6372 
     
    93102 
    94103        open PRINTERSCONF, "<$Schulkonsole::Config::_cups_printers_conf_file" 
    95                 or exit -64; 
     104                or exit (  Schulkonsole::Error::Printer::WRAPPER_CANNOT_OPEN_PRINTERSCONF 
     105                         - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE); 
    96106 
    97107        my $printer; 
     
    132142 
    133143                ($printer) = $printer =~ /^(\S{0,127})$/; 
    134                 exit -65 unless $printer; 
     144                exit (  Schulkonsole::Error::Printer::WRAPPER_INVALID_PRINTER_NAME 
     145                      - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     146                        unless $printer; 
    135147 
    136148                push @printers, $printer 
    137149        } 
    138         exit -66 unless @printers; 
     150        exit (  Schulkonsole::Error::Printer::WRAPPER_NO_PRINTERS 
     151              - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     152                unless @printers; 
    139153 
    140154        if ($on) { 
    141155                foreach my $printer (@printers) { 
    142                         system "$$app[0] \Q$printer"; 
     156                        system "$Schulkonsole::Config::_cmd_printer_accept \Q$printer"; 
    143157                } 
    144158        } else { 
    145159                foreach my $printer (@printers) { 
    146                         system "$$app[1] \Q$printer"; 
     160                        system "$Schulkonsole::Config::_cmd_printer_reject \Q$printer"; 
    147161                } 
    148162        } 
     
    157171                last if $printer =~ /^$/; 
    158172                ($printer) = $printer =~ /^(\S{0,127})$/; 
    159                 exit -65 unless $printer; 
     173                exit (  Schulkonsole::Error::Printer::WRAPPER_INVALID_PRINTER_NAME 
     174                      - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     175                        unless $printer; 
    160176 
    161177                $printer_users{$printer} = []; 
     
    163179                        last if $user =~ /^$/; 
    164180                        ($user) = $user =~ /^(\S+)$/; 
    165                         exit -67 unless $user; 
     181                        exit (  Schulkonsole::Error::Printer::WRAPPER_INVALID_USER 
     182                              - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     183                                unless $user; 
    166184 
    167185                        push @{ $printer_users{$printer} }, "\Q$user"; 
    168186                } 
    169187        } 
    170         exit -66 unless %printer_users; 
     188        exit (  Schulkonsole::Error::Printer::WRAPPER_NO_PRINTERS 
     189              - Schulkonsole::Error::Printer::WRAPPER_ERROR_BASE) 
     190                unless %printer_users; 
    171191 
    172192 
    173193        foreach my $printer (keys %printer_users) { 
    174194                if ( @{ $printer_users{$printer} } ) { 
    175                         system "$app -p\Q$printer\E -u deny:" 
     195                        system "$Schulkonsole::Config::_cmd_printer_lpadmin -p\Q$printer\E -u deny:" 
    176196                                . join(',', @{ $printer_users{$printer} }); 
    177197                } else { 
    178                         system "$app -p\Q$printer\E -u deny:none"; 
     198                        system "$Schulkonsole::Config::_cmd_printer_lpadmin -p\Q$printer\E -u deny:none"; 
    179199                } 
    180200        } 
  • schulkonsole/linuxmuster-schulkonsole/trunk/src/util/wrapper-sophomorix.pl.in

    r629 r1238  
    4040 
    4141my $userdata = Schulkonsole::DB::verify_password_by_id($id, $password); 
    42 exit -32 unless $userdata; 
     42exit (  Schulkonsole::Error::Sophomorix::WRAPPER_UNAUTHENTICATED_ID 
     43      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     44        unless $userdata; 
    4345 
    4446my $app_id = <>; 
    4547($app_id) = $app_id =~ /^(\d+)$/; 
    46 exit -33 
    47         unless defined $app_id && $Schulkonsole::Config::_root_apps[$app_id]; 
     48exit (  Schulkonsole::Error::Sophomorix::WRAPPER_APP_ID_DOES_NOT_EXIST 
     49      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     50        unless defined $app_id; 
     51 
     52my $app_name = $Schulkonsole::Config::_id_root_app_names{$app_id}; 
     53exit (  Schulkonsole::Error::Sophomorix::WRAPPER_APP_ID_DOES_NOT_EXIST 
     54      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     55        unless defined $app_name; 
    4856 
    4957 
     
    5361        $$userdata{uidnumber}, $$userdata{gidnumber}, $$userdata{gid}); 
    5462 
    55 my $app; 
     63my $is_permission_found = 0; 
    5664foreach my $group (('ALL', keys %$groups)) { 
    57         foreach my $name (keys %{ $$permissions{$group} }) { 
    58                 if ($Schulkonsole::Config::_root_app_name_ids{$name} == $app_id) { 
    59                         $app = $Schulkonsole::Config::_root_apps[$app_id]; 
    60                         last; 
    61                 } 
     65        if ($$permissions{$group}{$app_name}) { 
     66                $is_permission_found = 1; 
     67                last; 
    6268        } 
    6369} 
    64 exit -34 unless $app; 
     70exit (  Schulkonsole::Error::Sophomorix::WRAPPER_UNAUTHORIZED_ID 
     71      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     72        unless $is_permission_found; 
    6573 
    6674 
     
    8997                last if $login_id =~ /^$/; 
    9098                ($login_id) = $login_id =~ /^(\d+)$/; 
    91                 exit -83 unless $login_id; 
     99                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USERID 
     100                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     101                        unless $login_id; 
    92102 
    93103                push @login_ids, $login_id; 
    94104        } 
    95         exit -84 unless @login_ids; 
     105        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERIDS 
     106              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     107                unless @login_ids; 
    96108 
    97109        my %share_states; 
     
    138150        my $on = <>; 
    139151        ($on) = $on =~ /^(\d+)$/; 
    140         exit -80 unless defined $on; 
     152        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_ON_UNDEFINED 
     153              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     154                unless defined $on; 
    141155 
    142156 
     
    146160                last if $user =~ /^$/; 
    147161                ($user) = $user =~ /^(.+)$/; 
    148                 exit -81 unless $user; 
     162                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USER 
     163                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     164                        unless $user; 
    149165 
    150166                push @users, "\Q$user"; 
    151167        } 
    152         exit -82 unless @users; 
     168        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERS 
     169              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     170                unless @users; 
    153171 
    154172        my $opts = "--teacher \Q$$userdata{uid}\E " 
     
    159177        $< = $>; 
    160178        $( = $); 
    161         exec "$app $opts" or last SWITCH; 
     179        exec "$Schulkonsole::Config::_cmd_sophomorix_teacher $opts" or last SWITCH; 
    162180}; 
    163181 
     
    183201        my $do_copy = <>; 
    184202        ($do_copy) = $do_copy =~ /^(\d+)$/; 
    185         exit -86 unless defined $do_copy; 
     203        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_COPY 
     204              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     205                unless defined $do_copy; 
    186206 
    187207 
     
    198218        my $type = <>; 
    199219        ($type) = $type =~ /^(\d+)/; 
    200         exit -88 unless defined $type; 
     220        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_TYPE 
     221              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     222                unless defined $type; 
    201223 
    202224        LSHANDOUTTYPE: { 
     
    212234                my $project = <>; 
    213235                ($project) = $project =~ /^(.+)$/; 
    214                 exit -90 unless $project; 
     236                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
     237                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     238                        unless $project; 
    215239                $share_dir .= $project; 
    216240                last LSHANDOUTTYPE; 
     
    219243                my $class = <>; 
    220244                ($class) = $class =~ /^(.+)$/; 
    221                 exit -91 unless $class; 
     245                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     246                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     247                        unless $class; 
    222248                $share_dir .= $class; 
    223249                last LSHANDOUTTYPE; 
     
    226252                my $subclass = <>; 
    227253                ($subclass) = $subclass =~ /^(.+)$/; 
    228                 exit -92 unless $subclass; 
     254                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_SUBCLASS 
     255                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     256                        unless $subclass; 
    229257                $share_dir .= $subclass; 
    230258                last LSHANDOUTTYPE; 
    231259        }; 
    232         exit -87; 
    233         } 
    234  
    235         chdir $share_dir or exit -85; 
     260        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FROM 
     261              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
     262        } 
     263 
     264        chdir $share_dir 
     265                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_SUCH_DIRECTORY 
     266                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    236267        my @files = glob '*'; 
    237268        my %files; 
     
    271302                last if $login_id =~ /^$/; 
    272303                ($login_id) = $login_id =~ /^(\d+)$/; 
    273                 exit -83 unless $login_id; 
     304                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USERID 
     305                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     306                        unless $login_id; 
    274307 
    275308                push @login_ids, $login_id; 
    276309        } 
    277         exit -84 unless @login_ids; 
     310        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERIDS 
     311              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     312                unless @login_ids; 
    278313 
    279314 
     
    357392        my $do_copy = <>; 
    358393        ($do_copy) = $do_copy =~ /^([01])$/; 
    359         exit -86 unless defined $do_copy; 
     394        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_COPY 
     395              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     396                unless defined $do_copy; 
    360397 
    361398        my $opts = "--teacher \Q$$userdata{uid}"; 
     
    363400                my $from = <>; 
    364401                ($from) = $from =~ /^([1248])$/; 
    365                 exit -87 unless defined $from; 
     402                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FROM 
     403                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     404                        unless defined $from; 
    366405 
    367406                FROMHANDOUT: { 
     
    373412                        my $project = <>; 
    374413                        ($project) = $project =~ /^(.+)$/; 
    375                         exit -90 unless $project; 
     414                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
     415                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     416                                unless $project; 
    376417                        $opts .= " --fromproject \Q$project"; 
    377418                        last FROMHANDOUT; 
     
    380421                        my $class = <>; 
    381422                        ($class) = $class =~ /^(.+)$/; 
    382                         exit -91 unless $class; 
     423                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     424                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     425                                unless $class; 
    383426                        $opts .= " --fromclass \Q$class"; 
    384427                        last FROMHANDOUT; 
     
    391434                        last if $user =~ /^$/; 
    392435                        ($user) = $user =~ /^(.+)$/; 
    393                         exit -81 unless $user; 
     436                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USER 
     437                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     438                                unless $user; 
    394439 
    395440                        push @users, "\Q$user"; 
    396441                } 
    397                 exit -82 unless @users; 
     442                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERS 
     443                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     444                        unless @users; 
    398445 
    399446                $opts .= ' --users ' . join(',', @users); 
     
    402449                my $type = <>; 
    403450                ($type) = $type =~ /^(\d+)/; 
    404                 exit -88 unless defined $type; 
     451                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_TYPE 
     452                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     453                        unless defined $type; 
    405454 
    406455 
     
    409458                        my $room = <>; 
    410459                        ($room) = $room =~ /^(.+)$/; 
    411                         exit -89 unless $room; 
     460                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_ROOM 
     461                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     462                                unless $room; 
    412463                        $opts .= " --room \Q$room"; 
    413464                } 
     
    415466                        my $project = <>; 
    416467                        ($project) = $project =~ /^(.+)$/; 
    417                         exit -90 unless $project; 
     468                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
     469                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     470                                unless $project; 
    418471                        $opts .= " --project \Q$project"; 
    419472                } 
     
    421474                        my $class = <>; 
    422475                        ($class) = $class =~ /^(.+)$/; 
    423                         exit -91 unless $class; 
     476                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     477                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     478                                unless $class; 
    424479                        $opts .= " --class \Q$class"; 
    425480                }; 
     
    427482                        my $subclass = <>; 
    428483                        ($subclass) = $subclass =~ /^(.+)$/; 
    429                         exit -92 unless $subclass; 
     484                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_SUBCLASS 
     485                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     486                                unless $subclass; 
    430487                        $opts .= " --subclass \Q$subclass"; 
    431488                }; 
     
    439496        $< = $>; 
    440497        $( = $); 
    441         exec "$app $opts" or last SWITCH; 
     498        exec "$Schulkonsole::Config::_cmd_sophomorix_teacher $opts" or last SWITCH; 
    442499}; 
    443500 
     
    475532        my $do_copy = <>; 
    476533        ($do_copy) = $do_copy =~ /^([01])$/; 
    477         exit -86 unless defined $do_copy; 
     534        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_COPY 
     535              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     536                unless defined $do_copy; 
    478537 
    479538        my $is_exam = <>; 
    480539        ($is_exam) = $is_exam =~ /^([01])$/; 
    481         exit -93 unless defined $is_exam; 
     540        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_IS_EXAM 
     541              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     542                unless defined $is_exam; 
    482543 
    483544        my $from = <>; 
    484545        ($from) = $from =~ /^([01248])$/; 
    485         exit -87 unless defined $from; 
     546        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FROM 
     547              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     548                unless defined $from; 
    486549 
    487550        my $opts = "--teacher \Q$$userdata{uid}"; 
     
    497560                        my $project = <>; 
    498561                        ($project) = $project =~ /^(.+)$/; 
    499                         exit -90 unless $project; 
     562                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
     563                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     564                                unless $project; 
    500565                        $opts .= " --fromproject \Q$project"; 
    501566                        last FROMCOLLECT; 
     
    504569                        my $class = <>; 
    505570                        ($class) = $class =~ /^(.+)$/; 
    506                         exit -91 unless $class; 
     571                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     572                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     573                                unless $class; 
    507574                        $opts .= " --fromclass \Q$class"; 
    508575                        last FROMCOLLECT; 
     
    515582                        last if $user =~ /^$/; 
    516583                        ($user) = $user =~ /^(.+)$/; 
    517                         exit -81 unless $user; 
     584                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USER 
     585                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     586                                unless $user; 
    518587 
    519588                        push @users, "\Q$user"; 
    520589                } 
    521                 exit -82 unless @users; 
     590                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERS 
     591                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     592                        unless @users; 
    522593 
    523594                $opts .= ' --users ' . join(',', @users); 
     
    525596                my $type = <>; 
    526597                ($type) = $type =~ /^(\d+)/; 
    527                 exit -88 unless $type; 
     598                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_TYPE 
     599                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     600                        unless $type; 
    528601 
    529602 
     
    532605                        my $room = <>; 
    533606                        ($room) = $room =~ /^(.+)$/; 
    534                         exit -89 unless $room; 
     607                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_ROOM 
     608                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     609                                unless $room; 
    535610                        $opts .= " --room \Q$room"; 
    536611                } 
     
    538613                        my $project = <>; 
    539614                        ($project) = $project =~ /^(.+)$/; 
    540                         exit -90 unless $project; 
     615                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
     616                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     617                                unless $project; 
    541618                        $opts .= " --project \Q$project"; 
    542619                } 
     
    544621                        my $class = <>; 
    545622                        ($class) = $class =~ /^(.+)$/; 
    546                         exit -91 unless $class; 
     623                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     624                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     625                                unless $class; 
    547626                        $opts .= " --class \Q$class"; 
    548627                } 
     
    550629                        my $subclass = <>; 
    551630                        ($subclass) = $subclass =~ /^(.+)$/; 
    552                         exit -92 unless $subclass; 
     631                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_SUBCLASS 
     632                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     633                                unless $subclass; 
    553634                        $opts .= " --subclass \Q$subclass"; 
    554635                } 
     
    562643        $< = $>; 
    563644        $( = $); 
    564         exec "$app $opts" or last SWITCH; 
     645        exec "$Schulkonsole::Config::_cmd_sophomorix_teacher $opts" or last SWITCH; 
    565646}; 
    566647 
     
    582663        my $room = <>; 
    583664        ($room) = $room =~ /^(.+)$/; 
    584         exit -89 unless $room; 
     665        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_ROOM 
     666              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     667                unless $room; 
    585668 
    586669        my $opts = "--reset-room \Q$room"; 
     
    589672        $< = $>; 
    590673        $( = $); 
    591         exec "$app $opts" or last SWITCH; 
     674        exec "$Schulkonsole::Config::_cmd_sophomorix_teacher $opts" or last SWITCH; 
    592675}; 
    593676 
     
    611694        my $class_gid = <>; 
    612695        ($class_gid) = $class_gid =~ /^(.+)$/; 
    613         exit -91 unless defined $class_gid; 
     696        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     697              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     698                unless defined $class_gid; 
    614699 
    615700        my $do_add = <>; 
    616701        ($do_add) = $do_add =~ /^(\d+)$/; 
    617         exit -94 unless defined $do_add; 
     702        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_ADD 
     703              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     704                unless defined $do_add; 
    618705 
    619706        my $opts = "--teacher \Q$$userdata{uid}\E " 
     
    625712        $( = $); 
    626713        umask(022); 
    627         exec "$app $opts" or last SWITCH; 
     714        exec "$Schulkonsole::Config::_cmd_sophomorix_teacher $opts" or last SWITCH; 
    628715}; 
    629716 
     
    649736        my $project_gid = <>; 
    650737        ($project_gid) = $project_gid =~ /^((?:p_)?[a-z0-9_-]{3,14})$/; 
    651         exit -101 unless defined $project_gid; 
     738        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECTGID 
     739              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     740                unless defined $project_gid; 
    652741 
    653742        my $do_add = <>; 
    654743        ($do_add) = $do_add =~ /^([01])$/; 
    655         exit -94 unless defined $do_add; 
     744        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_ADD 
     745              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     746                unless defined $do_add; 
    656747 
    657748        my $scope = <>; 
    658749        ($scope) = $scope =~ /^([0123])$/; 
    659         exit -102 unless defined $scope; 
     750        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_MEMBERSCOPE 
     751              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     752                unless defined $scope; 
    660753 
    661754        my @users; 
     
    663756                last if $user =~ /^$/; 
    664757                ($user) = $user =~ /^(.+)$/; 
    665                 exit -81 unless $user; 
     758                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USER 
     759                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     760                        unless $user; 
    666761 
    667762                push @users, "\Q$user"; 
    668763        } 
    669         exit -82 unless @users; 
     764        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERS 
     765              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     766                unless @users; 
    670767 
    671768        my $opts = "--caller \Q$$userdata{uid}\E " 
     
    698795        $( = $); 
    699796        umask(022); 
    700         exec "$app $opts" or last SWITCH; 
     797        exec "$Schulkonsole::Config::_cmd_sophomorix_project $opts" or last SWITCH; 
    701798}; 
    702799 
     
    724821        my $project_gid = <>; 
    725822        ($project_gid) = $project_gid =~ /^((?:p_)?[a-z0-9_-]{3,14})$/; 
    726         exit -101 unless defined $project_gid; 
     823        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECTGID 
     824              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     825                unless defined $project_gid; 
    727826 
    728827        my $do_create = <>; 
    729828        ($do_create) = $do_create =~ /^([01])$/; 
    730         exit -103 unless defined $do_create; 
     829        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DO_CREATE 
     830              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     831                unless defined $do_create; 
    731832 
    732833 
     
    735836                my $is_open = <>; 
    736837                ($is_open) = $is_open =~ /^([01])$/; 
    737                 exit -113 unless defined $is_open; 
     838                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_IS_JOIN 
     839                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     840                        unless defined $is_open; 
    738841 
    739842                $opts .= '--create ' 
     
    749852        $( = $); 
    750853        umask(022); 
    751         exec "$app $opts" or last SWITCH; 
     854        exec "$Schulkonsole::Config::_cmd_sophomorix_project $opts" or last SWITCH; 
    752855}; 
    753856 
     
    775878        my $class_gid = <>; 
    776879        ($class_gid) = $class_gid =~ /^(.+)$/; 
    777         exit -91 unless defined $class_gid; 
     880        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     881              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     882                unless defined $class_gid; 
    778883 
    779884        my $filetype = <>; 
    780885        ($filetype) = $filetype =~ /^([01])$/; 
    781         exit -95 unless defined $filetype; 
     886        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILE_TYPE 
     887              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     888                unless defined $filetype; 
    782889 
    783890        my $opts = "--class \Q$class_gid\E --postfix \Q$$userdata{uid}"; 
     
    786893        $< = $>; 
    787894        $( = $); 
    788         system("$app $opts >/dev/null 2>/dev/null") == 0 or exit ($? >> 8); 
     895        system("$Schulkonsole::Config::_cmd_sophomorix_print $opts >/dev/null 2>/dev/null") == 0 
     896                or exit ($? >> 8); 
    789897 
    790898        my $filename; 
     
    798906                last SWITCHFILETYPE; 
    799907        }; 
    800         exit -95; 
     908        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILE_TYPE 
     909              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    801910        } 
    802911         
    803         open DATA, "<$filename" or (print STDERR "$filename: $!\n" and exit -106); 
     912        open DATA, "<$filename" 
     913                or (    print STDERR "$filename: $!\n" 
     914                and exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     915                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE)); 
    804916        { 
    805917                local $/ = undef; 
     
    832944        my $filetype = <>; 
    833945        ($filetype) = $filetype =~ /^([01])$/; 
    834         exit -95 unless defined $filetype; 
     946        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILE_TYPE 
     947              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     948                unless defined $filetype; 
    835949 
    836950        my $opts = "--teacher"; 
     
    839953        $< = $>; 
    840954        $( = $); 
    841         system("$app $opts >/dev/null 2>/dev/null ") == 0 or exit ($? >> 8); 
     955        system("$Schulkonsole::Config::_cmd_sophomorix_print $opts >/dev/null 2>/dev/null ") == 0 
     956                or exit ($? >> 8); 
    842957 
    843958        my $filename; 
     
    851966                last SWITCHFILETYPE; 
    852967        }; 
    853         exit -95; 
     968        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILE_TYPE 
     969              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    854970        } 
    855971         
    856         open DATA, "<$filename" or (print STDERR "$filename: $!\n" and exit -106); 
     972        open DATA, "<$filename" 
     973                or (    print STDERR "$filename: $!\n" 
     974                    and exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     975                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE)); 
    857976        { 
    858977                local $/ = undef; 
     
    9011020        my $type = <>; 
    9021021        ($type) = $type =~ /^([012])$/; 
    903         exit -96 unless defined $type; 
     1022        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_SET_PASSWORD_TYPE 
     1023              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1024                unless defined $type; 
    9041025 
    9051026        my $scope = <>; 
    9061027        ($scope) = $scope =~ /^([01])$/; 
    907         exit -102 unless defined $scope; 
     1028        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_MEMBERSCOPE 
     1029              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1030                unless defined $scope; 
    9081031 
    9091032 
     
    9171040                my $password = <>; 
    9181041                ($password) = $password =~ /^(.+)$/; 
    919                 exit -97 unless $password; 
     1042                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PASSWORD 
     1043                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1044                        unless $password; 
    9201045 
    9211046                $opts .= "--password \Q$password"; 
     
    9321057                last if $user =~ /^$/; 
    9331058                ($user) = $user =~ /^(.+)$/; 
    934                 exit -81 unless $user; 
     1059                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USER 
     1060                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1061                        unless $user; 
    9351062 
    9361063                push @users, "\Q$user"; 
    9371064        } 
    938         exit -82 unless @users; 
     1065        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERS 
     1066              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1067                unless @users; 
    9391068 
    9401069        if ($scope == 0) { 
     
    9471076        $< = $>; 
    9481077        $( = $); 
    949         exec "$app $opts" or last SWITCH; 
     1078        exec "$Schulkonsole::Config::_cmd_sophomorix_passwd $opts" or last SWITCH; 
    9501079}; 
    9511080 
     
    9721101        my $number = <>; 
    9731102        ($number) = $number =~ /^([0-9]|1[01])$/; 
    974         exit -105 unless defined $number; 
     1103        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILENUMBER 
     1104              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1105                unless defined $number; 
    9751106 
    9761107        my $filename; 
     
    10331164 
    10341165 
    1035         open FILE, "<$filename" or exit -106; 
     1166        open FILE, "<$filename" 
     1167                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     1168                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    10361169        while (<FILE>) { 
    10371170                print; 
     
    10661199        my $number = <>; 
    10671200        ($number) = $number =~ /^([0123456])$/; 
    1068         exit -105 unless defined $number; 
     1201        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILENUMBER 
     1202              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1203                unless defined $number; 
    10691204 
    10701205        my $path; 
     
    11441279                if (not rename $full_filename, "$backup_path/$filename$suffix") { 
    11451280                        system("mv \Q$full_filename\E \Q$backup_path/$filename$suffix") 
    1146                                 == 0 or exit -107; 
     1281                                == 0 
     1282                                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_PROCESS_RUNNING 
     1283                                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    11471284                } 
    11481285        } else { 
     
    11511288        } 
    11521289 
    1153         open FILE, ">$full_filename" or exit -106; 
     1290        open FILE, ">$full_filename" 
     1291                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     1292                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    11541293        while (<>) { 
    11551294                print FILE; 
     
    11741313        $) = 0; 
    11751314        $( = $); 
    1176         exec "$app" or last SWITCH; 
     1315        exec $Schulkonsole::Config::_cmd_sophomorix_check or last SWITCH; 
    11771316}; 
    11781317 
     
    11961335 
    11971336        my $action; 
     1337        my $cmd; 
    11981338        ACTIONNAME: { 
    11991339        $app_id == Schulkonsole::Config::USERSADDAPP and do { 
    12001340                $action = 'add'; 
     1341                $cmd = $Schulkonsole::Config::_cmd_sophomorix_add; 
    12011342                last ACTIONNAME; 
    12021343        }; 
    12031344        $app_id == Schulkonsole::Config::USERSMOVEAPP and do { 
    12041345                $action = 'move'; 
     1346                $cmd = $Schulkonsole::Config::_cmd_sophomorix_move; 
    12051347                last ACTIONNAME; 
    12061348        }; 
    12071349        $app_id == Schulkonsole::Config::USERSKILLAPP and do { 
    12081350                $action = 'kill'; 
     1351                $cmd = $Schulkonsole::Config::_cmd_sophomorix_kill; 
    12091352                last ACTIONNAME; 
    12101353        }; 
     
    12131356 
    12141357        my $lockfile = Schulkonsole::Config::lockfile("user$action"); 
    1215         open LOCK, "+>>$lockfile" or exit -106; 
     1358        open LOCK, "+>>$lockfile" 
     1359                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     1360                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    12161361        if (not flock(LOCK, 4 | 2)) { 
    1217                 exit -107; 
     1362                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_PROCESS_RUNNING 
     1363                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    12181364        } else { 
    12191365                use Proc::ProcessTable; 
    12201366 
    12211367                my $process_table = new Proc::ProcessTable; 
    1222                 my $app_cmnd = $app; 
     1368                my $app_cmnd = $cmd; 
    12231369                $app_cmnd =~ s:.*/::; 
    12241370                foreach my $process (@{ $process_table->table }) { 
     
    12261372                            and $process->fname =~ /^sophomor/ 
    12271373                            and $process->cmndline =~ /$app_cmnd/) { 
    1228                                 exit -107; 
     1374                                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_PROCESS_RUNNING 
     1375                                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    12291376                        } 
    12301377                } 
     
    12431390 
    12441391        my $pid = fork; 
    1245         exit -44 unless defined $pid; 
     1392        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_FORK 
     1393              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1394                unless defined $pid; 
    12461395 
    12471396        if (not $pid) { 
     
    12561405                $ENV{PATH} = '/bin:/sbin:/usr/sbin:/usr/bin'; 
    12571406                $ENV{DEBIAN_FRONTEND} = 'teletype'; 
    1258                 exec "$app" or last SWITCH; 
     1407                exec $cmd or last SWITCH; 
    12591408        } else { 
    12601409                seek LOCK, 0, 0; 
     
    12741423 
    12751424$app_id == Schulkonsole::Config::USERSADDMOVEKILLAPP and do { 
    1276  
    12771425        my $action = 'addmovekill'; 
    12781426 
    12791427        my $addmovekill_lockfile = Schulkonsole::Config::lockfile("user$action"); 
    1280         open ALLLOCK, "+>>$addmovekill_lockfile" or exit -106; 
     1428        open ALLLOCK, "+>>$addmovekill_lockfile" 
     1429                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     1430                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    12811431        if (not flock(ALLLOCK, 4 | 2)) { 
    1282                 exit -107; 
     1432                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_PROCESS_RUNNING 
     1433                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    12831434        } 
    12841435 
    12851436 
    12861437        my $pid = fork; 
    1287         exit -44 unless defined $pid; 
     1438        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_FORK 
     1439              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1440                unless defined $pid; 
    12881441 
    12891442        if (not $pid) { 
     
    12981451 
    12991452                my @action = ('add', 'move', 'kill'); 
     1453                my @cmds = ( 
     1454                        $Schulkonsole::Config::_cmd_sophomorix_add, 
     1455                        $Schulkonsole::Config::_cmd_sophomorix_move, 
     1456                        $Schulkonsole::Config::_cmd_sophomorix_kill, 
     1457                ); 
    13001458                USERAPPS: for my $i (0..2) { 
    13011459                        my $lockfile = Schulkonsole::Config::lockfile("user$action[$i]"); 
    1302                         open LOCK, "+>>$lockfile" or exit -106; 
     1460                        open LOCK, "+>>$lockfile" 
     1461                                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     1462                                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    13031463                        if (not flock(LOCK, 4 | 2)) { 
    13041464                                next USERAPPS; 
     
    13071467 
    13081468                                my $process_table = new Proc::ProcessTable; 
    1309                                 my $app_cmnd = $$app[$i]; 
     1469                                my $app_cmnd = $cmds[$i]; 
    13101470                                $app_cmnd =~ s:.*/::; 
    13111471                                foreach my $process (@{ $process_table->table }) { 
     
    13301490                        open STDERR, ">>&STDOUT"; 
    13311491 
    1332                         system "$$app[$i]"; 
     1492                        system $cmds[$i]; 
    13331493 
    13341494                        close LOCK; 
     
    13681528        my $mode = <>; 
    13691529        ($mode) = $mode =~ /^([012])$/; 
    1370         exit -108 unless defined $mode; 
     1530        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_MODE 
     1531              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1532                unless defined $mode; 
    13711533 
    13721534        $< = $>; 
     
    13941556 
    13951557                        my ($username, $id) = /^(.+)\t(.*)$/; 
    1396                         exit -81 unless $username; 
     1558                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_USER 
     1559                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1560                                unless $username; 
    13971561 
    13981562                        if ($id) { 
     
    14021566                        } 
    14031567                } 
    1404                 exit -82 unless (@teachin_users or @ignore_users); 
     1568                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_NO_USERS 
     1569                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1570                        unless (@teachin_users or @ignore_users); 
    14051571 
    14061572                while (    @ignore_users 
     
    14091575                        $opts = '--all --ignore ' . quotemeta(join(',', @ignore_users[0..$end])); 
    14101576 
    1411                         system "$app $opts"; 
     1577                        system "$Schulkonsole::Config::_cmd_sophomorix_teachin $opts"; 
    14121578                        @ignore_users = @ignore_users[$end + 1..$#ignore_users]; 
    14131579                } 
     
    14171583                        my $end = (@teachin_users < 20) ? @teachin_users : 20; 
    14181584                        $opts = '--all --teachin ' . quotemeta(join(',', @teachin_users[0..$end])); 
    1419                         system "$app $opts"; 
     1585                        system "$Schulkonsole::Config::_cmd_sophomorix_teachin $opts"; 
    14201586                        @teachin_users = @teachin_users[$end + 1..$#teachin_users]; 
    14211587                } 
     
    14361602        } 
    14371603 
    1438         exec "$app $opts" or last SWITCH; 
     1604        exec "$Schulkonsole::Config::_cmd_sophomorix_teachin $opts" or last SWITCH; 
    14391605}; 
    14401606 
     
    14621628        my $number = <>; 
    14631629        ($number) = $number =~ /^([01])$/; 
    1464         exit -105 unless defined $number; 
     1630        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FILENUMBER 
     1631              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1632                unless defined $number; 
    14651633 
    14661634        my $on = <>; 
    14671635        ($on) = $on =~ /^([01])$/; 
    1468         exit -80 unless defined $on; 
     1636        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_ON_UNDEFINED 
     1637              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1638                unless defined $on; 
    14691639 
    14701640        my $filename; 
     
    14781648        } 
    14791649 
    1480         chmod $mode, $filename or exit -109; 
     1650        chmod $mode, $filename 
     1651                or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CHMOD_FAILED 
     1652                         - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    14811653 
    14821654        exit 0; 
     
    15081680        my $flags = <>; 
    15091681        ($flags) = $flags =~ /^(\d+)$/; 
    1510         exit -110 unless defined $flags || $flags > 17; 
     1682        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_FLAGS 
     1683              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1684                unless defined $flags || $flags > 17; 
    15111685 
    15121686        my $app_opts; 
     
    15151689                if ($flags == 16) { 
    15161690                        ($gid) = $gid =~ /^(.+)$/; 
    1517                         exit -91 unless $gid; 
     1691                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     1692                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1693                                unless $gid; 
    15181694                } else { 
    15191695                        ($gid) = $gid =~ /^((?:p_)?[a-z0-9_-]{3,14})$/; 
    1520                         exit -101 unless defined $gid; 
     1696                        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECTGID 
     1697                              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1698                                unless defined $gid; 
    15211699                } 
    15221700 
    15231701                my $diskquota = <>; 
    15241702                ($diskquota) = $diskquota =~ /^((?:\d+(?:\+\d+)*)?|quota)$/; 
    1525                 exit -111 unless defined $diskquota; 
     1703                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DISKQUOTA 
     1704                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1705                        unless defined $diskquota; 
    15261706 
    15271707                my $mailquota = <>; 
    15281708                ($mailquota) = $mailquota =~ /^(\d*|-1)$/; 
    1529                 exit -112 unless defined $mailquota; 
    1530  
    1531                 exit -111 unless length($diskquota) || length($mailquota); 
     1709                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_MAILQUOTA 
     1710                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1711                        unless defined $mailquota; 
     1712 
     1713                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_DISKQUOTA 
     1714                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1715                        unless length($diskquota) || length($mailquota); 
    15321716 
    15331717 
    15341718                if ($flags == 16) { 
    1535                         $app_opts = "$$app[1] --class \Q$gid"; 
     1719                        $app_opts 
     1720                                = "$Schulkonsole::Config::_cmd_sophomorix_class --class \Q$gid"; 
    15361721                        if (length($diskquota)) { 
    15371722                                if ($diskquota eq 'quota') { 
     
    15451730                        } 
    15461731                } else { 
    1547                         $app_opts =   $$app[2] 
     1732                        $app_opts =   $Schulkonsole::Config::_cmd_sophomorix_project 
    15481733                                    . " --caller \Q$$userdata{uid}\E --project \Q$gid"; 
    15491734                        if (length($diskquota)) { 
     
    15591744                } 
    15601745        } else { 
    1561                 $app_opts = "$$app[0] "; 
     1746                $app_opts = "$Schulkonsole::Config::_cmd_sophomorix_quota "; 
    15621747                $app_opts .= '--set ' if $flags & 1; 
    15631748                $app_opts .= '--teachers ' if $flags & 2; 
     
    15671752 
    15681753        my $pid = fork; 
    1569         exit -44 unless defined $pid; 
     1754        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_FORK 
     1755              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1756                unless defined $pid; 
    15701757 
    15711758        if (not $pid) { 
     
    15891776 
    15901777                my $lockfile = Schulkonsole::Config::lockfile('processquota'); 
    1591                 open LOCK, ">>$lockfile" or exit -106; 
     1778                open LOCK, ">>$lockfile" 
     1779                        or exit (  Schulkonsole::Error::Sophomorix::WRAPPER_CANNOT_OPEN_FILE 
     1780                                 - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE); 
    15921781                flock LOCK, 2; 
    15931782                truncate LOCK, 0; 
     
    16201809        my $password = <>; 
    16211810        ($password) = $password =~ /^(.+)$/; 
    1622         exit -97 unless $password; 
     1811        exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PASSWORD 
     1812              - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1813                unless $password; 
    16231814 
    16241815        my $opts = "--nofirstpassupdate --user \Q$$userdata{uid}\E --pass \Q$password"; 
     
    16271818        $< = $>; 
    16281819        $( = $); 
    1629         exec "$app $opts" or last SWITCH; 
     1820        exec "$Schulkonsole::Config::_cmd_sophomorix_passwd $opts" or last SWITCH; 
    16301821}; 
    16311822 
     
    16571848 
    16581849                my ($gid) = /^(.+)$/; 
    1659                 exit -91 unless $gid; 
     1850                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     1851                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1852                        unless $gid; 
    16601853 
    16611854                push @hides, $gid; 
     
    16651858 
    16661859                my ($gid) = /^(.+)$/; 
    1667                 exit -91 unless $gid; 
     1860                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_CLASS 
     1861                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1862                        unless $gid; 
    16681863 
    16691864                push @nohides, $gid; 
     
    16771872        my $opts = '--hide'; 
    16781873        foreach my $gid (@hides) { 
    1679                 system("$app $opts --class \Q$gid\E") == 0 or exit ($? >> 8); 
     1874                system("$Schulkonsole::Config::_cmd_sophomorix_class $opts --class \Q$gid\E") == 0 
     1875                        or exit ($? >> 8); 
    16801876        } 
    16811877        $opts = '--nohide'; 
    16821878        foreach my $gid (@nohides) { 
    1683                 system("$app $opts --class \Q$gid\E") == 0 or exit ($? >> 8); 
     1879                system("$Schulkonsole::Config::_cmd_sophomorix_class $opts --class \Q$gid\E") == 0 
     1880                        or exit ($? >> 8); 
    16841881        } 
    16851882 
     
    17151912 
    17161913                my ($gid) = /^(.+)$/; 
    1717                 exit -90 unless $gid; 
     1914                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
     1915                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1916                        unless $gid; 
    17181917 
    17191918                push @joins, $gid; 
     
    17231922 
    17241923                my ($gid) = /^(.+)$/; 
    1725                 exit -90 unless $gid; 
     1924                exit (  Schulkonsole::Error::Sophomorix::WRAPPER_INVALID_PROJECT 
     1925                      - Schulkonsole::Error::Sophomorix::WRAPPER_ERROR_BASE) 
     1926                        unless $gid; 
    17261927 
    17271928                push @nojoins, $gid; 
     
    17351936        my $opts = "--caller \Q$$userdata{uid}\E --join"; 
    17361937        foreach my $gid (@joins) { 
    1737                 system("$app $opts --project \Q$gid\E") == 0 or exit ($? >> 8); 
     1938                system("$Schulkonsole::Config::_cmd_sophomorix_project $opts --project \Q$gid\E") == 0 
     1939                        or exit ($? >> 8); 
    17381940        } 
    17391941        $opts = "--caller \Q$$userdata{uid}\E --nojoin"; 
    17401942        foreach my $gid (@nojoins) { 
    1741                 system("$app $opts --project \Q$gid\E") == 0 or exit ($? >> 8); 
     1943                system("$Schulkonsole::Config::_cmd_sophomorix_project $opts --project \Q$gid\E") == 0 
     1944                        or exit ($? >> 8); 
    17421945        } 
    17431946 
Note: See TracChangeset for help on using the changeset viewer.