|  
	 
      
      
     | 
      | 
      | 
     
        
          
       
      This 
        Product has been discontinued, try SurgePlus 
        instead. 
      WebShareIt installation and management guide 
      This guide is intended for system administrators who are 
        installing / customising or managing a site running WebShareIt. WebShareIt 
        is a cgi and because it's output comes from html based template files 
        it can be extensively customized to provide a distinctive web based file 
        sharing service for your customers. WebShareIt comes with a default set 
        of template files this allows it to be used as is, or to be completely 
        rewritten to provide a particular look and feel to make it unique. 
      The following sections describe... 
       
       
      Configuration settings 
      In order to configure the WebShareIt you need to edit the configuration 
        file webshareit.ini found in the cgi's directory of your web server, the 
        settings you can use in the webshareit.ini file are as follows... 
      
         
          | Setting | 
          NT Example | 
          Unix Example | 
          Description | 
         
         
          | workarea | 
          \webshareit\work | 
          /var/spool/webshareit/work | 
          This is the directory where webshareit creates temporary 
            files, keeps it's data files and the newuser files newuser.dat, visit.idx 
            and site.idx files. This setting defaults to the templates directory. | 
         
         
          | templates | 
          \webshareit | 
          /var/spool/webshareit | 
          This is the directory where webshareit's .tpl files 
            are, these are the html pages shown to users using webshareit. | 
         
         
          | logpath | 
          \webshareit\logs | 
          /var/spool/webshareit/logs | 
          This is the directory where webshareit creates it's 
            log files. This setting defaults to the templates directory. | 
         
         
          | loglevel | 
          error | 
          (as nt) | 
          This is the level of logging information written into 
            the log file, if you are having problems with webshareit set this 
            to "debug", and read the log file, if this doesn't help 
            you please send that log file to support-webshareit@netwinsite.com. 
            The other values for this setting are "error" which only 
            logs error messags and "info" which logs useful information 
            about what commands get called and by whom. | 
         
         
          | manager | 
          postmaster | 
          (as nt) | 
          This is the user that has management control over the 
            webshareit system. This user gets extra management options when they 
            login to webshareit | 
         
         
          | auth_server | 
          1.2.3.4 | 
          (as nt) | 
          This is the ip number of the server that webshareit 
            uses to authenticate users, it can be a Pop3 or Ftp server. When a 
            user logs in webshareit attempt to login to this server with the supplied 
            username and password. | 
         
         
          | auth_port | 
          110 | 
          (as nt) | 
          This is the port for the above Pop3 or Ftp server. | 
         
         
          | auth_prefix | 
          domain_ | 
          (as nt) | 
          This is the prefix prepended to the username sent to 
            the pop3 or ftp server. Required if you have DMail Mail Server, this 
            is a virtual domain, and you have prefix based virtual domains. This 
            setting means a virtual domain user can just type thier name i.e. 
            bob and webshareit will prepend the required domain_ before authenticating. | 
         
         
          | auth_suffix | 
          @domain.com | 
          (as nt) | 
          This is the suffix appended to the username sent to 
            the pop3 or ftp server. Required if you have DMail Mail Server, this 
            is a virtual domain, and you have suffix based virtual domains. This 
            setting means a virtual domain user can just type thier name i.e. 
            bob and webshareit will append the required @domain.com before authenticating. | 
         
         
          | smtphost | 
          1.2.3.4 | 
          (as nt) | 
          This is the Smtp server that webshareit can use to email 
            shares to people. | 
         
         
          | smtpport | 
          25 | 
          (as nt) | 
          This is the port for the above Smtp server. | 
         
         
          | full_action | 
          true | 
          (as nt) | 
          This is a true false setting that tells webshareit to 
            use a full url for the ||acton|| output variable. "true" 
            causes webshareit to produce a full http:// url to itself and store 
            it in the ||action|| variable, "false" causes a relative 
            url to be produced i.e. "/scripts/webshareit.exe". | 
         
         
          | dflt_command | 
          show_login | 
          (as nt) | 
          This is the default command webshareit will carry out 
            if it is given no other command. | 
         
         
          | nwimg | 
          /nwimg/webshareit | 
          (as nt) | 
          This is the relative url to the webshareit images that 
            are used on the .tpl pages. | 
         
         
          | initial_folders | 
          Public,Private | 
          (as nt) | 
          This is a comma seperated list of folders to create 
            for a new user who logs in for he first time. | 
         
         
          | file_content | 
          readme text/plain | 
          (as nt) | 
          This is a setting that allows you to tell webshareit 
            what content-type header to use when sending files to the user when 
            they download them, the content-type header effects what the browser 
            does when it recieves the file. The first part of the setting is what 
            webshareit tries to match against the filename, it is a wild card 
            so you can have *.txt for example, the last part of the setting is 
            the content-type to use. | 
         
         
          | autologin | 
          /scripts/webmail.exe c:\webmail | 
          /cgi-bin/webmail.cgi /var/spool/webmail | 
          This setting allows you to setup auto-login from webshareit 
            to WebMail, WebNews or one of the other NetWin cgi programs. Auto-login 
            is a way of using the other cgi without having to enter login details 
            again, which means the transfer is seamless and if done well the user 
            may not even be able to tell they have started to use another cgi 
            program. | 
         
         
          | key | 
          aaaa-bbbb-cccc-dddd-eeee-ffff-gggg | 
          (as nt) | 
          This is the registration key, you will recieve one of 
            these when you register your copy of webshareit. | 
         
         
          | domain | 
          webshareit.com | 
          (as nt) | 
          This is the domain name of the webshareit web server 
            computer, webshareit uses it as the name of the local machine in the 
            pulldown on the folders page, i.e. it shows "user@webshareit.com" 
            where webshareit.com was the domain setting. | 
         
         
          | path_translation | 
          /web \inetpub\wwwroot\users\$(user)  Text | 
          /web /home/httpd/html/users/$(user) Text | 
          This setting creates a mounted folder in the users directory, 
            this folder acts like a normal folder except files in it are actually 
            stored in another location. The first part of the setting is the folder 
            name the user sees, the seccond is the actual path where the files 
            are stored and the third is a sentence or description of the folder 
            shown to the user on the mounts page. This setting can be used in 
            the webshareit.ini file and/ort the newuser.dat | 
         
         
          | default_ftp | 
          ftp.netwinsite.com Anonymous $(user)@$(auth_server) 
            /pub | 
          (as nt) | 
          This setting sets up ftp sites for the user upon thier 
            creation, these sites appear in the pull down list on the folders 
            page and also on the servers page. | 
         
         
          | max_diskspace_dflt | 
          25600 | 
          (as nt) | 
          This setting defines a global default value for a users 
            maximum diskspace allowance | 
         
         
          | max_download_dflt | 
          10240 | 
          (as nt) | 
          This setting defines a global default value for a user 
            accounts maximum download allowance | 
         
       
       
      Cgi commands 
      WebShareIt is a cgi and cgi programs gather input from web pages, as 
        a result to tell the cgi what you want it to do you need to send it a 
        command. To ask it to do something you use the "cmd" variable. 
        For example in a query "?cmd=login" or as a form input tag <input 
        type="text" name="cmd" value="login"> 
        or if you want you can use an <input type="image" tag but 
        you need to use the image name to specify the command e.g. <input type="image" 
        name="login". 
      All these method will tell the cgi to attempt to login. Of course more 
        information is required to do a login command, as in all the commands, 
        below is a table explaining the commands and what variables are required. 
        Most commands require you to be logged in, if so they require the utoken 
        variable produced by the login and auto_login commands. 
      * optional variable.  
        ^ command available before login. 
      
         
          | Command | 
          Other input | 
          Description | 
         
         
          | ^login_show | 
          *location | 
          This command displays the login page. | 
         
         
          | ^login | 
          user,pass,*location | 
          This command logs the user in provided the usename and 
            password are correct. If location is supplied then webshareit will 
            show that site as soon as login is complete, otherwise the local site 
            is shown. | 
         
         
          | ^download | 
          location,download_file | 
          This command starts the download of the download_file 
            from the location. | 
         
         
          | ^auto_login | 
          user,pass_file | 
          This command auto-logs into webshareit from somewhere 
            else, typically a NetWin cgi but detailed instructions on how to make 
            something else auto-login to a NetWin cgi are available. | 
         
         
          | ^folder_show | 
            | 
          This command loads the new folder page. | 
         
         
          | ^folder | 
          location,path,folder_name | 
          This command creates a new folder called folder_name 
            in path on site specified by location. | 
         
         
          | do_auto_login | 
          *al_index | 
          This command attempts to auto-login to another NetWin 
            cgi, you must setup the autologin settings in the config file first. 
            Each auto-login setting you add gets an index (from 0) and the variable 
            al_index is used to specify which autologin setting you actually want 
            to use, if no al_index is given webshareit will attempt to auto-login 
            to the first autologin setting (index  = 0). | 
         
         
          | logout | 
            | 
          This command logs the user out, making the utoken variable 
            useless. | 
         
         
          | location | 
          location | 
          This command displays the folder.tpl page, which then 
            lists the files in the location variable. | 
         
         
          | refresh | 
          location,*path | 
          This command removes any cached ftp server directory 
            listing, displays the folder.tpl page, which then lists the files 
            in the location variable. | 
         
         
          | upload | 
          at_upload_file,location | 
          This command uploads the file specified by at_upload_file 
            to location. | 
         
         
          | option_load | 
            | 
          This command displays the options page and loads the 
            users information. | 
         
         
          | option_save | 
          any _* variables | 
          This command saves the uses information. | 
         
         
          | server_load | 
            | 
          This command loads the servers page. | 
         
         
          | server_open | 
          server_address,*server_port,*server_user,*server_pass | 
          This command saves then displays the server specified 
            by then server_ variables.  | 
         
         
          | server_save | 
          server_address,*server_port,*server_user,*server_pass | 
          This command saves the server specified by the server_ 
            variables. The server_port setting defaults to 21, the server_username 
            to "Anonymous", and the server_pass to "webshareit@netwinsite.com". | 
         
         
          | server_delete | 
          server_address,server_port,server_user,server_pass | 
          This command deletes the server specified by the server_ 
            variables. | 
         
         
          | transfer_show | 
            | 
          This command displays the transfer page. | 
         
         
          | transfer | 
          location,*path,sel_<filepath>,transfer_location,*transfer_path | 
          This command transfers files / folders selected by the 
            sel_<filepath> checkboxes to the site and path specified by 
            transfer_location and transfer_path. | 
         
         
          | delete_show | 
            | 
          This command displays the delete page. | 
         
         
          | delete | 
          sel_<filepath> | 
          This command deletes all the files / folders selected 
            by the sel_<filepath> checkboxes. | 
         
         
          | rename_show | 
            | 
          This command displays the rename page. | 
         
         
          | rename | 
          location,*path,rename_from,rename_to | 
          This command renames rename_from to rename_to, on the 
            folder template there is some javascript which takes the first file 
            /folder selected by the sel_<filepath> checkboxes and places 
            it's value in a hidden rename_file variable and ignores any more (the 
            first in this case is the first passed to the cgi by the web server 
            in the post data - this is not necessarily the highest vertically 
            in the list on the page). | 
         
         
          | lock_show | 
            | 
          This command displays the lock page. | 
         
         
          | unlock_show | 
            | 
          This command displays the lock page. | 
         
         
          | lock | 
          location,*path,sel_<filepath> | 
          This command locks the file / folders selected by the 
            sel_<filepath> checkboxes. | 
         
         
          | unlock | 
          location,*path,sel_<filepath> | 
          This command un-locks the file / folders selected by 
            the sel_<filepath> checkboxes. | 
         
         
          | lock_load | 
            | 
          This command displays the locks page. | 
         
         
          | lock_save | 
          lock_path | 
          This command saves the lock data specified by the lock_path 
            variable. | 
         
         
          | lock_delete | 
          lock_path | 
          This command deletes the lock data specified by the 
            lock_path variable. | 
         
         
          | copy_show | 
            | 
          This command displays the copy page. | 
         
         
          | copy | 
          location,*path,copy_path,sel_<filepath> | 
          This command copies the files / folders specified by 
            the sel_<filepath> checkboxes to the folder specified by the 
            copy_path variable. | 
         
         
          | mount_load | 
            | 
          This command shows the mounts.tpl page listing the mounts 
            setup by the administrator. | 
         
         
          | move_show | 
            | 
          This command displays the move page. | 
         
         
          | move | 
          location,*path,move_path,sel_<filepath> | 
          This command moves the files / folders specified by 
            the sel_<filepath> checkboxes to the folder specified by the 
            move_path variable. | 
         
         
          | share_show | 
            | 
          This command displays the share page. | 
         
         
          | share | 
          location,*path,sel_<filepath> | 
          This command shares the folders specified by the sel_<filepath> 
            checkboxes. | 
         
         
          | share_load | 
            | 
          This command displays the shares page. | 
         
         
          | share_save | 
          share_path,share_pass,share_readonly,share_anonymous | 
          This command saves the share specified by the share_ 
            variables. | 
         
         
          | share_delete | 
          share_path | 
          This command deletes the share specified by the share_path 
            variable. | 
         
         
          | visit_load | 
            | 
          This command displays the visit page. | 
         
         
          | visit_open | 
          visit_user,visit_name,visit_pass | 
          This command saves and then displays the visit specified 
            by the visit_ variables. | 
         
         
          | visit_save | 
          visit_user,visit_name,visit_pass | 
          This command saves the visit specified by the visit_ 
            variables. | 
         
         
          | visit_delete | 
          visit_user,visit_name | 
          This command deletes the visit specified by the visit_user 
            and visit_name variables. | 
         
         
          | email_show | 
            | 
          This command displays the email page. | 
         
         
          | email | 
          email_address | 
          This command emails email_address a small email message 
            generated from the tofriend.tpl file which by default contains a url 
            to webshareit containing the shared folder information but can in 
            fact contain whatever you want. | 
         
       
       
      Templates 
      WebShareIt uses template files to determine the output seen by the user. 
        These files are simple html text files with extra bits. The extra bits 
        are either variables or commands. Variables and commands are replaced 
        or executed at runtime so while you only have one copy of the template 
        file WebShareIt may create hundreds of different pages form it. 
      In order to place the value of a variable in a page returned by WebShareIt, 
        simply place a || followed by the variable name and then another ||, like 
        so... 
        ||name||  
      and upon execution the ||name|| will be replaced by it's value and displayed. 
      There are several commands available and they all perform different operations. 
        Using a command is similar to inserting a variable's value. You precede 
        the command name with a || and finish it with a || as well, like so... 
        ||define||  
      some commands like the define command require parameters. In order to 
        add parameters to commands, simply seperate each parameter with a || like 
        so.... 
        ||define||setting||value|| 
      This command would create a variable called "setting" and give 
        it a value "value". 
      Some commands are used to perform logical operations, like ||ifdef|| 
        or ||ifequal||. In cases like these, the operation is performed and, depending 
        on the outcome, the html following the command is either displayed or 
        skipped. In order to reverse a logical operation, use the ||else|| command. 
        In order to end a logical operation, use the ||endif|| command. 
      IMPORTANT: There must be an equal number of logical commands and concluding 
        endif commands or errors will occur during template display. 
      Here is an example of a couple of logical operation commands... 
         
        ||ifequal||name||netwin|| 
          <p>Name is netwin</p> 
          ||ifdef||pass|| 
            <p>Password supplied</p> 
          ||else|| 
            <p>No pass</p> 
          ||endif|| 
        ||else|| 
          <p>Name is ||name||</p> 
        ||endif|| 
      Notice above that there are two logical operation commands -  ifequal 
        (if equal) and ifdef (if defined) - and thus there are two endif commands. 
        Also note that the lines have been tabbed to show which statements enclose 
        others. This makes no difference to the cgi but makes it easier to read. 
      The cgi interprets the above as follows... 
        Does name = "netwin", 
            If it does, the cgi writes "<p>Name is netwin</p>" 
        Does the variable pass exist, 
            If it does, the cgi writes "<p>Password 
        supplied</p>" 
            If it doesn't, the cgi reads but doesn't write lines 
        until the ||else|| statement on line five. 
                The cgi writes "<p>No 
        pass</p>" 
            If it doesn't, the cgi reads but doesn't write any 
        lines until the third to last line, an ||else|| command. 
                The cgi writes "<p>Name 
        is ||name||</p>" 
      Complete list of logical commands 
        The text variable, variableA, and variableB have been used where 
        you could type either a variable name or some text to be matched literally. 
      
         
          | Command | 
          Description | 
         
         
          | |ifdef||variable|| | 
          This tests whether a setting called variable exists. | 
         
         
          | ||ifequal||variableA||variableB|| | 
          This tests whether variableB (or the value of variableB) 
            is equal to variableA (or the value of variableA.) | 
         
         
          | ||iflower||variableA||variableB|| | 
          This has the opposite result to the above command. | 
         
         
          | ||ifinstr||variableA||variableB|| | 
          This tests whether variableB (or the value of variableB) 
            is within the variableA (or the value of variableA). | 
         
       
      The commands above may seem rather limited, say for example you wanted 
        to test whether something wasn't equal to something, there is no actual 
        command for that but you can use the ifequal command and an else statement 
        to achive the desired result, for example. 
        ||ifequal||foo||bar|| 
        ||else|| 
        ...etc... 
        ||endif|| 
      The same is true for ifdef, iflower, and ifinstr. 
      Other commands 
      
         
          | Command | 
          Description | 
         
         
          | ||define||variableA||variableB|| | 
          This creates variableA, or sets variableA to variableB 
            (or the value of variableB). | 
         
         
          | ||undef||variableA|| | 
          This removes variableA. | 
         
         
          | ||endif|| | 
          This ends a logical operation. | 
         
         
          | ||else|| | 
          This switches case inside a logial operation. | 
         
       
      More complicated commands 
      Below is a list of more complicated commands. These commands come in 
        two types, the commands which act like the commands above.... 
      i.e.   ||command_name||vars||vars...etc... 
      and a new type of command which "loops" around, giving new 
        information each time. These commands are identified by the "begin_" 
        prefix to the command name. A good example is the begin_files command, 
        this command can be implemented like this... 
        ||begin_files|| 
        ...html containing a ||file_name|| somewhere... 
        ||end_files|| 
        What the template above will show is the html between the begin_files 
        and the end_files label repeated for as many files as there are. So if 
        there are five files then it will be repeated five times. This is good 
        for a select list such as... 
        <select name=files> 
        ||begin_files|| 
        <option name="||files_name||">||files_name||</option> 
        ||end_files|| 
        </select> 
      
         
          | Command | 
          Description | 
         
         
          | begin_user_info | 
          This command displays the user information stored in 
            webshareit's user data files. Each time it looks it outputs: ui_name, 
            ui_label, ui_value, ui_total, ui_index, and ui_multi. For an example 
            of the data in each one of those variables have a look at the options.tpl 
            page. | 
         
         
          | begin_servers | 
          This command displays the information about the servers 
            setup on the servers page. Output: server_address, server_port, server_user, 
            server_pass, server_home, server_location. For an example see the 
            folder.tpl, and transfer.tpl pages. | 
         
         
          | begin_files | 
          This command displays the files in the site specified 
            by the location and path variables. Output: file_path, file_name, 
            file_type, file_link, file_txt, file_size, file_date, file_shared, 
            file_locked. For an example see the folder.tpl page. | 
         
         
          | begin_shares | 
          This command displays the shares setup on the shares 
            page. Output: share_path, share_name, share_pass, share_readonly, 
            share_anonymous, share_location. For an example see the shares.tpl 
            page. | 
         
         
          | begin_visits | 
          This command displays the visits setup on the visits 
            page. Output: visit_location, visit_user, visit_name, visit_pass. 
            For an example see visits.tpl. | 
         
         
          | begin_locks | 
          This command displays the locks setup on the folder 
            and locks page. Output: lock_path, lock_name, lock_who, lock_when, 
            lock_isdir. For an example see the locks page. | 
         
         
          | begin_mounts | 
          This command displays the mounts setup by the administrator 
            for the user. Output: mount_name, mount_path, mount_info. For an example 
            see the mounts page. | 
         
         
          | cdup | 
          This command takes one parameter, the parameter is a 
            path or a variable containing a path. The ouput from this command 
            is the path above the one passed in the parameter, for example "||cdup||/foo/bar||" 
            would be replaced by "/foo". For an example see the folder.tpl 
            page. | 
         
         
          | comma_number | 
          This command takes one parameter, the parameter is a 
            number or variable containing a number. The output from this command 
            is the same number but with comma's ever third digit, for example 
            "||comma_number||1234567||" would be replaced by "1,234,567". 
            For an example see the folder.tpl page. | 
         
         
          | time_all | 
          This command takes one parameter, the parameter is the 
            number of seconds elapsed since midnight (00:00:00), January 1, 1970, 
            coordinated universal time. The output from this function is a date 
            time string in the format "Wed Jan 02 02:03:55 1980" | 
         
         
          | time_date | 
          This command takes one parameter, the parameter is the 
            number of seconds elapsed since midnight (00:00:00), January 1, 1970, 
            coordinated universal time. The output from this function is a date 
            time string in the format "Wed Jan 02 1980" | 
         
         
          | time_time | 
          This command takes one parameter, the parameter is the 
            number of seconds elapsed since midnight (00:00:00), January 1, 1970, 
            coordinated universal time. The output from this function is a date 
            time string in the format "02:03:55" | 
         
         
          | html_encode | 
          This command takes one parameter, the parameter is a 
            href or other similar html that you want to appear as a string in 
            a url or on the page rather than it being interpreted as html and 
            processed. For example this "<input type='text' name=" 
            would be changed to "%3Cinput+type%3D%27text%27+name%3D". | 
         
       
       
      New user defaults 
      When a user logs in for the first time WebShareIt asks that user for 
        thier personal information, it also loads some default settings from a 
        file called newuser.dat found in the WebShareIt workarea directory. This 
        file is a plain text file in the same format as the ini file, so # means 
        comment and the lines contain "setting_name<whitespace>value<end_line>". 
        The settings you can place in this file are as follows: 
      
         
          | Setting name | 
          Example | 
          Description | 
         
         
          | max_diskspace | 
          51200 | 
          This is the number of bytes of disk space given to the 
            user. | 
         
         
          | max_download | 
          20480 | 
          This is the number of bytes of downloads available every 
            24 hours. | 
         
         
          | path_translation | 
          (see above) | 
          This setting is identical to the path_translation setting 
            in the ini file (see above) | 
         
       
      In addition to the newuser.dat file there are two more files that you 
        can place in the workarea directory to give new users default settings, 
        they are "site.idx" and "visit.idx". These files are 
        plain text files containing site and visit entries, these entries are 
        one per line and each file is seperated by a | symbol. 
      The visit.idx file entry format is: 
          username|path|password 
        for example: 
          john|/Public|secret 
      The site.idx entry format is: 
          site|port|username|password|path 
        for example: 
          ftp.netwinsite.com|21|Anonymous|email@netwinsite.com|/pub/webshareit 
      The easiest way to create these files is to set the entries up with the 
        cgi for a user then copy them out of the users folder to the workarea, 
        but you can edit them by hand if you prefer. 
       
      User administration 
      In order to administrate your users you first need a designated manager 
        account, to designate an account as the manager you simply edit the webshareit.ini 
        file and add / modify the manager setting so it specifies the manager 
        account, i.e. 
          manager thisaccount 
        you can add several manager accounts by simply adding more manager settings 
        i.e. 
          manager thisaccount 
          manager thataccount 
        and so on. 
      Next you login with the account designated as the manager, and you should 
        see the exact same page as normal except now there is a users button in 
        the menu that was not there before. Click this button. You will see a 
        list of all the users who have logged into WebShareIt, clicking any of 
        these username will display info on the user account like last login, 
        upload, and download and will also let you set quota's and add ftp servers, 
        visits and mounted folders to the user. Back on the user list page you 
        will see the same options for quota's, ftp servers, visits and mounted 
        folders but here you can specify a wild card and it will add what you 
        specify to all users matching that wild card. 
       
       
       |