From 40596a9eb6d2625f016851d5b83af0c4d2fc069e Mon Sep 17 00:00:00 2001 From: hickert Date: Wed, 2 Apr 2008 14:24:17 +0000 Subject: [PATCH] Updated sudo stuff partly git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@10120 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../plugins/admin/sudo/class_sudoOptions.inc | 317 +++++++++--------- gosa-core/plugins/admin/sudo/options.tpl | 35 +- 2 files changed, 185 insertions(+), 167 deletions(-) diff --git a/gosa-core/plugins/admin/sudo/class_sudoOptions.inc b/gosa-core/plugins/admin/sudo/class_sudoOptions.inc index ce519a454..e15882dfd 100644 --- a/gosa-core/plugins/admin/sudo/class_sudoOptions.inc +++ b/gosa-core/plugins/admin/sudo/class_sudoOptions.inc @@ -34,181 +34,166 @@ class sudo_options extends plugin { plugin::plugin ($config, $dn); - foreach(array("sudoOption") as $attr){ - $this->$attr = array(); - if(isset($this->attrs[$attr])){ - $tmp = array(); - for($i = 0 ; $i < $this->attrs[$attr]['count']; $i++){ - $tmp[] = $this->attrs[$attr][$i]; + $options = array(); + + $option['long_otp_prompt']= array('NAME' =>'long_otp_prompt' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['ignore_dot']= array('NAME' =>'ignore_dot' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_always']= array('NAME' =>'mail_always' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_badpass']= array('NAME' =>'mail_badpass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_no_user']= array('NAME' =>'mail_no_user' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_no_host']= array('NAME' =>'mail_no_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_no_perms']= array('NAME' =>'mail_no_perms' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['tty_tickets']= array('NAME' =>'tty_tickets' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['authenticate']= array('NAME' =>'authenticate' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['root_sudo']= array('NAME' =>'root_sudo' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['log_host']= array('NAME' =>'log_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['log_year']= array('NAME' =>'log_year' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['shell_noargs']= array('NAME' =>'shell_noargs' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['set_home']= array('NAME' =>'set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['always_set_home']= array('NAME' =>'always_set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['path_info']= array('NAME' =>'path_info' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['preserve_groups']= array('NAME' =>'preserve_groups' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['fqdn']= array('NAME' =>'fqdn' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['insults']= array('NAME' =>'insults' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['requiretty']= array('NAME' =>'requiretty' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['env_editor']= array('NAME' =>'env_editor' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['rootpw']= array('NAME' =>'rootpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['runaspw']= array('NAME' =>'runaspw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['targetpw']= array('NAME' =>'targetpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['set_logname']= array('NAME' =>'set_logname' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['stay_setuid']= array('NAME' =>'stay_setuid' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['env_reset']= array('NAME' =>'env_reset' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['use_loginclass']= array('NAME' =>'use_loginclass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['noexec']= array('NAME' =>'noexec' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['ignore_local_sudoers']= array('NAME' =>'ignore_local_sudoers' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['passwd_tries']= array('NAME' =>'passwd_tries' , 'TYPE' => 'INTEGER' , 'DEFAULT' => ''); + $option['loglinelen']= array('NAME' =>'loglinelen' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['timestamp_timeout']= array('NAME' =>'timestamp_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['passwd_timeout']= array('NAME' =>'passwd_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['umask']= array('NAME' =>'umask' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['mailsub']= array('NAME' =>'mailsub' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['badpass_message']= array('NAME' =>'badpass_message' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['timestampdir']= array('NAME' =>'timestampdir' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['timestampowner']= array('NAME' =>'timestampowner' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['passprompt']= array('NAME' =>'passprompt' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['runas_default']= array('NAME' =>'runas_default' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['syslog_goodpri']= array('NAME' =>'syslog_goodpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['syslog_badpri']= array('NAME' =>'syslog_badpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['editor']= array('NAME' =>'editor' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['noexec_file']= array('NAME' =>'noexec_file' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['lecture']= array('NAME' =>'lecture' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['lecture_file']= array('NAME' =>'lecture_file' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['logfile']= array('NAME' =>'logfile' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['syslog']= array('NAME' =>'syslog' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['mailerpath']= array('NAME' =>'mailerpath' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['mailerflags']= array('NAME' =>'mailerflags' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['mailto']= array('NAME' =>'mailto' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['exempt_group']= array('NAME' =>'exempt_group' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['verifypw']= array('NAME' =>'verifypw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['listpw']= array('NAME' =>'listpw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['env_check']= array('NAME' =>'env_check' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); + $option['env_delete']= array('NAME' =>'env_delete' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); + $option['env_keep']= array('NAME' =>'env_keep' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); + $option['long_otp_prompt']= array('NAME' =>'long_otp_prompt' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['ignore_dot']= array('NAME' =>'ignore_dot' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_always']= array('NAME' =>'mail_always' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_badpass']= array('NAME' =>'mail_badpass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_no_user']= array('NAME' =>'mail_no_user' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_no_host']= array('NAME' =>'mail_no_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['mail_no_perms']= array('NAME' =>'mail_no_perms' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['tty_tickets']= array('NAME' =>'tty_tickets' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['authenticate']= array('NAME' =>'authenticate' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['root_sudo']= array('NAME' =>'root_sudo' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['log_host']= array('NAME' =>'log_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['log_year']= array('NAME' =>'log_year' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['shell_noargs']= array('NAME' =>'shell_noargs' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['set_home']= array('NAME' =>'set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['always_set_home']= array('NAME' =>'always_set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['path_info']= array('NAME' =>'path_info' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['preserve_groups']= array('NAME' =>'preserve_groups' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['fqdn']= array('NAME' =>'fqdn' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['insults']= array('NAME' =>'insults' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['requiretty']= array('NAME' =>'requiretty' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['env_editor']= array('NAME' =>'env_editor' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['rootpw']= array('NAME' =>'rootpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['runaspw']= array('NAME' =>'runaspw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['targetpw']= array('NAME' =>'targetpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['set_logname']= array('NAME' =>'set_logname' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['stay_setuid']= array('NAME' =>'stay_setuid' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['env_reset']= array('NAME' =>'env_reset' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['use_loginclass']= array('NAME' =>'use_loginclass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['noexec']= array('NAME' =>'noexec' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['ignore_local_sudoers']= array('NAME' =>'ignore_local_sudoers' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); + $option['passwd_tries']= array('NAME' =>'passwd_tries' , 'TYPE' => 'INTEGER' , 'DEFAULT' => ''); + $option['loglinelen']= array('NAME' =>'loglinelen' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['timestamp_timeout']= array('NAME' =>'timestamp_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['passwd_timeout']= array('NAME' =>'passwd_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['umask']= array('NAME' =>'umask' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); + $option['mailsub']= array('NAME' =>'mailsub' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['badpass_message']= array('NAME' =>'badpass_message' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['timestampdir']= array('NAME' =>'timestampdir' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['timestampowner']= array('NAME' =>'timestampowner' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['passprompt']= array('NAME' =>'passprompt' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['runas_default']= array('NAME' =>'runas_default' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['syslog_goodpri']= array('NAME' =>'syslog_goodpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['syslog_badpri']= array('NAME' =>'syslog_badpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['editor']= array('NAME' =>'editor' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['noexec_file']= array('NAME' =>'noexec_file' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); + $option['lecture']= array('NAME' =>'lecture' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['lecture_file']= array('NAME' =>'lecture_file' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['logfile']= array('NAME' =>'logfile' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['syslog']= array('NAME' =>'syslog' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['mailerpath']= array('NAME' =>'mailerpath' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['mailerflags']= array('NAME' =>'mailerflags' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['mailto']= array('NAME' =>'mailto' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['exempt_group']= array('NAME' =>'exempt_group' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['verifypw']= array('NAME' =>'verifypw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['listpw']= array('NAME' =>'listpw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); + $option['env_check']= array('NAME' =>'env_check' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); + $option['env_delete']= array('NAME' =>'env_delete' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); + $option['env_keep']= array('NAME' =>'env_keep' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); + ksort($option); + $this->options = $option; + + + $this->sudoOption = array(); + + if(isset($this->attrs['sudoOption'])){ + for($i = 0 ; $i < $this->attrs['sudoOption']['count']; $i++){ + + $negation = FALSE; + $value = ""; + + $opt = $this->attrs['sudoOption'][$i]; + if(preg_match("/^!/",$opt)){ + $negation = TRUE; + $opt = preg_replace("/^!/","",$opt); + } + + if(preg_match("/=/",$opt)){ + $value = preg_replace("/^[^=]*+=/","",$opt); + $opt = preg_replace("/=.*$/","",$opt); + } + + $option = array(); + $option['NAME'] = $opt; + $option['VALUE'] = array($value); + $option['NEGATE'] = $negation; + + if(!isset($this->sudoOption[$opt])){ + $this->sudoOption[$opt] = $option; + }else{ + $this->sudoOption[$opt]['VALUE'][] = $value; } - $this->$attr = $tmp; } } - - $options = array(); - $option[]= array('NAME' => 'long_otp_prompt' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'ignore_dot' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_always' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_badpass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_no_user' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_no_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_no_perms' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'tty_tickets' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'authenticate' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'root_sudo' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'log_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'log_year' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'shell_noargs' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'always_set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'path_info' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'preserve_groups' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'fqdn' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'insults' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'requiretty' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_editor' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'rootpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'runaspw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'targetpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'set_logname' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'stay_setuid' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_reset' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'use_loginclass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'noexec' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'ignore_local_sudoers' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'passwd_tries' , 'TYPE' => 'INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'loglinelen' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'timestamp_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'passwd_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'umask' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailsub' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'badpass_message' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'timestampdir' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'timestampowner' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'passprompt' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'runas_default' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'syslog_goodpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'syslog_badpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'editor' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'noexec_file' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'lecture' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'lecture_file' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'logfile' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'syslog' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailerpath' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailerflags' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailto' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'exempt_group' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'verifypw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'listpw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_check' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_delete' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_keep' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'long_otp_prompt' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'ignore_dot' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_always' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_badpass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_no_user' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_no_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mail_no_perms' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'tty_tickets' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'authenticate' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'root_sudo' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'log_host' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'log_year' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'shell_noargs' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'always_set_home' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'path_info' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'preserve_groups' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'fqdn' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'insults' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'requiretty' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_editor' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'rootpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'runaspw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'targetpw' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'set_logname' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'stay_setuid' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_reset' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'use_loginclass' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'noexec' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'ignore_local_sudoers' , 'TYPE' => 'BOOLEAN' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'passwd_tries' , 'TYPE' => 'INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'loglinelen' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'timestamp_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'passwd_timeout' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'umask' , 'TYPE' => 'BOOL_INTEGER' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailsub' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'badpass_message' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'timestampdir' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'timestampowner' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'passprompt' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'runas_default' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'syslog_goodpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'syslog_badpri' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'editor' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'noexec_file' , 'TYPE' => 'STRINGS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'lecture' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'lecture_file' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'logfile' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'syslog' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailerpath' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailerflags' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'mailto' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'exempt_group' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'verifypw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'listpw' , 'TYPE' => 'STRING_BOOL' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_check' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_delete' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); - $option[]= array('NAME' => 'env_keep' , 'TYPE' => 'LISTS' , 'DEFAULT' => ''); - $this->options = $option; } function execute() { /* Call parent execute */ plugin::execute(); - - - /********************* - NEGATE values - *********************/ - foreach($_POST as $name => $value){ - if(preg_match("/^neg_/",$name)){ - $attr = preg_replace("/^neg_([^_]*)_.*$/","\\1",$name); - $value= preg_replace("/^neg_[^_]*_([0-9]*)_.*$/","\\1",$name); - - $attrs = $this->$attr; - if(isset( $attrs[$value])){ - $v = $attrs[$value]; - if(preg_match("/^!/",$v)){ - $attrs[$value] = preg_replace("/^!/","",$v); - }else{ - $attrs[$value] = "!".$v; - } - $this->$attr = $attrs; - } - break; // Do it once, image inputs will be posted twice - } - } - - /********************* - Delete values - *********************/ - foreach($_POST as $name => $value){ - if(preg_match("/^del_/",$name)){ - $attr = preg_replace("/^del_([^_]*)_.*$/","\\1",$name); - $value= preg_replace("/^del_[^_]*_([0-9]*)_.*$/","\\1",$name); - $attrs = $this->$attr; - if(isset( $attrs[$value])){ - unset($attrs[$value]); - $this->$attr = $attrs; - } - break; // Do it once, image inputs will be posted twice - } - } - + $smarty = get_smarty(); $smarty->assign("map", array("STRINGS" => _("string"), "BOOLEAN" => _("bool"), "INTEGER" => _("integer") , "BOOL_INTEGER" => _("integer")."-"._("bool") , diff --git a/gosa-core/plugins/admin/sudo/options.tpl b/gosa-core/plugins/admin/sudo/options.tpl index d04439664..58cde1670 100644 --- a/gosa-core/plugins/admin/sudo/options.tpl +++ b/gosa-core/plugins/admin/sudo/options.tpl @@ -1,6 +1,39 @@ + + + +{foreach from=$sudoOption item=item key=key} + + + + + +{/foreach} +
{$key} + {if $item.NEGATE} + ! + {/if} + + + {if $options[$item.NAME].TYPE == "STRING"} + + {elseif $options[$item.NAME].TYPE == "BOOLEAN"} + + + {elseif $options[$item.NAME].TYPE == "STRING_BOOL"} + + + + {else} + {$options[$item.NAME].TYPE} + {/if} +
-- 2.30.2