if ($access{'ugroups'} eq "*" || $access{'uedit_gmode'} >= 3) { printf "\n", $n eq "" ? $config{'default_group'} : scalar(&my_getgrgid($uinfo{'gid'})); print "< /td>\n"; } print " \n"; web-lib.pl: ************ sub read_file sub write_file sub tempname # Returns the unique elements of some array sub unique # include :q!ls vi my_ :q! # Read and output the named file sub include # copydata # Read from one file handle and write to another sub copydata # ReadParseMime([maximum]) # Read data submitted via a POST request using the multipart/form-data coding. sub ReadParseMime # PrintHeader(charset) # Outputs the HTTP header for HTML sub PrintHeader # header(title, image, [help], [config], [nomodule], [nowebmin], [rightside], # [header], [body], [below]) # Output a page header with some title and image. The header may also # include a link to help, and a link to the config page. # The header will also have a link to to webmin index, and a link to the # module menu if there is no config link sub header # redirect # Output headers to redirect the browser to some page sub redirect # kill_byname(name, signal) # Use the command defined in the global config to find and send a signal # to a process matching some name sub kill_byname # find_byname(name) # Finds a process by name, and returns a list of matching PIDs sub find_byname # error([message]+) # Display an error message and exit. The variable $whatfailed must be set # to the name of the operation that failed. sub error # error_setup(message) # Register a message to be prepended to all error strings sub error_setup # make_date(seconds) # Converts a Unix date/time in seconds to a human-readable form sub make_date # file_chooser_button(input, type, [form], [chroot]) # Return HTML for a file chooser button, if the browser supports Javascript. # Type values are 0 for file or directory, or 1 for directory only sub file_chooser_button # check_os_support(&minfo) sub check_os_support # http_download(host, port, page, destfile, [&error], [&callback], [sslmode], # [user, pass]) # Download data from a HTTP url to a local file sub http_download # to_ipaddress(hostname) # Converts a hostname to an a.b.c.d format IP address sub to_ipaddress # hlink(text, page, [module]) sub hlink # user_chooser_button(field, multiple, [form]) # Returns HTML for a javascript button for choosing a Unix user or users sub user_chooser_button # get_webmin_version() # Returns the version of Webmin currently being run sub get_webmin_version # get_module_acl([user], [module]) # Returns an array containing access control options for the given user sub get_module_acl # get_module_info(module, [noclone], [forcache]) # Returns a hash containg a module name, desc and os_support sub get_module_info # lock_file(filename, [readonly], [forcefile]) # Lock a file for exclusive access. If the file is already locked, spin # until it is freed. This version uses a .lock file, which is not very reliable. sub lock_file # unlock_file(filename) # Release a lock on a file. When unlocking a file that was locked in # read mode, optionally save the update in RCS sub unlock_file # webmin_log(action, type, object, ¶ms, [module]) # Log some action taken by a user sub webmin_log # date_chooser_button(dayfield, monthfield, yearfield, [form]) # Returns HTML for a date-chooser button sub date_chooser_button # other_groups(user) # Returns a list of secondary groups a user is a member of sub other_groups