home *** CD-ROM | disk | FTP | other *** search
/ WinFiles.com 1998 June / WF0698_3.ISO / servers-websrv / websuite.exe / USERS.AP_ / USERS.AP
Text File  |  1998-04-01  |  7KB  |  257 lines

  1. <[
  2. // WINC - User
  3. // (c) 1997-98 SmartDesk, Inc., All Rights Reserved
  4.  
  5. CLASS ChatUser
  6.   PUBLIC:
  7.     local session, basedir, id, userid, password, name, alias, email, pglen, refreshRate
  8.     local picture, utype, lastused
  9.     
  10.     METHOD new( session, basedir )
  11.         ::session = session
  12.         ::basedir = basedir
  13.         ::utype = ""
  14.         ::picture = ""
  15.         return( 1 )
  16.     end
  17.         
  18.     
  19.        METHOD load( id, newflag )
  20.            local data
  21.            ::id = id
  22.            if ( type( newflag ) != "N" )
  23.                newflag = 0
  24.            end
  25.            if ( ! fileExists( ::file ) )
  26.                if ( ! newflag ) 
  27.                    return( 0 )
  28.                end
  29.                data = ::session.var( "userid" ) + "|" + ::session.var( "pass" ) + "||||25|20|||" + date( "YYYY-MM-DD " ) + time( ) + "|"
  30.            else
  31.                data = fileReadASCII( ::file )
  32.            end
  33.         ::userid = strextract( data, "|", 1 )
  34.         ::password = strextract( data, "|", 2 )
  35.         ::name = strextract( data, "|", 3 )
  36.         ::alias = strextract( data, "|", 4 )
  37.         ::email = strextract( data, "|", 5 )
  38.            ::pglen = 0 + strextract( data, "|", 6 )
  39.            ::refreshRate = 0 + strextract( data, "|", 7 )
  40.            ::picture = strextract( data, "|", 8 )
  41.            ::utype = 0 + strextract( data, "|", 9 )
  42.            ::lastused = strextract( data, "|", 10 )
  43.            return( 1 )           
  44.        END
  45.  
  46.  
  47.     METHOD save( )
  48.         local hfile, str
  49.  
  50.         hfile = fcreate( ::file, 0 )
  51.         if ( hfile < 1 )
  52.             return( 0 )
  53.         end
  54.         ::lastused = date( "YYYY-MM-DD " ) + time( )
  55.  
  56.         str =  ::userid + "|" + ::password + "|" + ::name + "|" + ::alias + "|" + ::email + "|" + ::pglen + "|" + ::refreshRate + "|"
  57.         str += ::picture + "|" + ::utype + "|" + ::lastused
  58.         fwriteline( hfile, str )
  59.         fclose( hfile )
  60.         
  61.         return( 1 )
  62.     END
  63.  
  64.     
  65.     ACCESS file
  66.         return( ::basedir + "\\users\\" + ::id + ".dat" )
  67.     END
  68.  
  69.  
  70.     METHOD profile( channel, alias )
  71.         local str
  72.  
  73.           str =  "<font size=5>U S E R     P R E F E R E N C E S</font><br>\r\n"
  74.            str += "<form action=sdchat.htm method=get>\r\n"
  75.         str += " <table border=0 width=450 colspacing=0 cellspacing=0>\r\n"
  76.         str += "  <tr><td width=40% align=right>User-Id: </td><td width=60%><input type=text name=userid value=" + ::userid + "></td></tr>\r\n"
  77.         str += "  <tr><td></td></tr>\r\n"
  78.         str += "  <tr><td align=right>Password: </td><td><input type=text name=pass value=" + ::password + "></td></tr>\r\n"
  79.         str += "  <tr><td> </td></tr>\r\n"
  80.         str += "  <tr><td align=right>Full Name: </td><td><input type=text name=name value=" + ::name + "></td></tr>\r\n"
  81.         str += "  <tr><td align=right>Chat Alias: </td><td><input type=text name=alias value=" + ::alias + "></td></tr>\r\n"
  82.         str += "  <tr><td align=right>Email Address: </td><td><input type=text name=email value=" + ::email + "></td></tr>\r\n"
  83. //        str += "  <tr><td align=right>Picture: </td><td><input type=text name=picture value=" + ::picture + "></td></tr>"
  84.         str += "  <tr><td> </td></tr>\r\n"
  85.         str += "  <tr><td align=right>Display Page Length: </td><td><input type=text name=pglen size=10 value=" + ::pgLen + "></td></tr>\r\n"
  86.         str += "  <tr><td align=right>Refresh Rate: </td><td><input type=text name=refreshrate size=10 value=" + ::refreshRate + "></td></tr>\r\n"
  87. //        str += "  <tr><td> </td></tr>"        
  88. //        str += "  <tr><td align=right>Last Used: </td><td>" + ::lastused + "</td></tr>"
  89.         str += " </table>\r\n"
  90.         str += " <br><input type=submit name=action value=\"Update User Information\">\r\n"
  91.         str += " <input type=submit name=action value=\"Do Not Update\">\r\n"
  92.         str += " <input type=hidden name=cmd value=\"UpdateUser\">\r\n"
  93.         str += " <input type=hidden name=id value=\"" + ::id + "\">\r\n"
  94.  
  95.            str += " <input type=hidden name=channel value=\"" + channel + "\">\r\n"
  96.         str += " <INPUT TYPE=hidden NAME=alias VALUE=\"" + alias + "\">\r\n"
  97.  
  98.         str += "</form>\r\n"
  99.         str += "<font size=2>This information will automatically be maintained<br>for up to thirty days of inactivity.<br></font>\r\n"
  100.  
  101.         return( str )
  102.     END
  103.  
  104.     
  105.     METHOD doupdate( var, defval )
  106.         local v
  107.         v = ::session.var( var )
  108.         return( strempty( v ) ? defval : v )
  109.     END
  110.  
  111.  
  112.     METHOD UpdateId( )
  113.         local str, x, i, y
  114.  
  115.         str = upper( ::userid + ::password )
  116.         i=1
  117.         x=1
  118.         for ( i=2; i<=len(str); i++ )
  119.             y = asc( str[i] )
  120.             if ( y > 0 )
  121.                 x *= y
  122.             end
  123.         end
  124.         str = dec2hex( x )
  125.         if ( len( str ) > 8 )
  126.             str = right( str, 8 )
  127.         end
  128.         ::id = str
  129.         return( ::id )
  130.     END
  131.  
  132.     
  133.     METHOD SessionUpdate( )
  134.         local str
  135.  
  136.         ::userid = ::doupdate( "userid", ::userid )
  137.         ::password = ::doupdate( "pass", ::password )
  138.         ::name = ::doupdate( "name", ::name )
  139.         ::alias = ::doupdate( "alias", ::alias )
  140.         ::email = ::doupdate( "email", ::email )
  141.         ::picture = ::doupdate( "picture", ::picture )
  142.         ::pglen = 0 + ::doupdate( "pglen", ::pglen )
  143.         ::refreshRate = 0 + ::doupdate( "refreshRate", ::refreshRate )
  144.  
  145.         ::id = ::updateId( )
  146.  
  147.         str = ::validate( )
  148.         if ( ! strempty( str ) )
  149.             return( str )
  150.         end
  151.            ::pglen = ::pglen < 5 ? 5 : ::pglen
  152.            ::refreshRate = ::refreshRate < 5 ? 5 : ::refreshRate
  153.          ::save( )
  154.     
  155.         return( "" )
  156.     END
  157.  
  158.  
  159.     METHOD validate( )
  160.         local str
  161.         
  162.         str = ""
  163.         if ( strempty( ::userid ) )
  164.             str += "Must specify a User-id<br>"
  165.         end
  166.         if ( strempty( ::password ) )
  167.             str += "Must specify a Password<br>"
  168.         end
  169.         if ( strempty( ::name ) )
  170.             str += "Must specify a Name<br>"
  171.         end
  172.         if ( strempty( ::alias ) )
  173.             str += "Must specify an Alias<br>"
  174.         end
  175.         if ( strempty( ::email ) )
  176.             str += "Must specify an Email Address<br>"
  177.         end
  178.         if ( ! strempty( str ) )
  179.             return( "<h2>" + str + "</h2>Press the BACK button to return to the form..." )
  180.         end
  181.         return( "" )
  182.     END
  183.        
  184. END
  185.  
  186. _apGenerate( )
  187.  
  188. session = new( "session", param( 1 ), param( 2 ) )
  189. user    = new( "ChatUser", session, webServerHome( session.websrvr ) + "\\chat" )
  190.  
  191. channel = 0 + session.var( "channel" )
  192. if ( channel < 1 )
  193.     channel = 1
  194. end
  195.  
  196. alias  = session.var( "alias" )
  197.  
  198. id = session.var( "id" )
  199. if ( strempty( id ) || strempty( alias ) )
  200.     session._redir( "One Moment Please...", "sdchat.htm?channel=" + channel )
  201.     return( 0 )
  202. end
  203.  
  204. qstr = "?id=" + id + "&channel=" + channel + "&alias=" + alias
  205.  
  206. ]>
  207. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
  208. <!-- SmartDesk Active Page, www.smartdesk.com -->
  209. <HTML>
  210. <HEAD>
  211. <TITLE>WINC Users</TITLE>
  212. </HEAD>
  213. <BODY BGCOLOR="#000000" TEXT="#FFFFFF" LINK="#00FFFF" VLINK="#00FFFF" ALINK="#00FFFF">
  214.  
  215. <CENTER>
  216. <FONT SIZE=5>U S E R     L I S T</FONT><BR>
  217. <A HREF="sdchat.htm<[! qstr ]>&cmd=ChatText" TARGET="winc_bottom">Return to the chat</A>
  218. <P><BR></P>
  219.  
  220. <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=571 VSPACE=0>
  221.  <TR>
  222.   <TD WIDTH=300 VALIGN=top>
  223.  
  224. <[
  225.     basedir = webServerHome( session.websrvr ) + "\\chat"
  226.     filename = basedir + "\\chan" + channel + ".dat"
  227.     data = sessionDataGet( session.websrvr, -1, "CHATBUF." + filename )
  228.     cnt = chrcount( chr( 2 ), data )
  229.     j=0
  230.     users[1] = ""
  231.     for ( i=1; i<=cnt; i++ )
  232.         line = strextract( data, chr( 2 ), i )
  233.         id  = strextract( line, chr( 1 ), 5 )
  234.  
  235.         for ( k=1; k<=j; k++ )
  236.             if ( users[k] == id )
  237.                 break
  238.             end
  239.         end
  240.         if ( k > j )
  241.             j++
  242.             users[j] = id
  243.             
  244.             if ( user.load( id, 0 ) )
  245.                 ! "<A HREF=\"mailto:" + user.email + "\">" + user.name + "</A> is logged in as <FONT COLOR=yellow><B>" + user.alias + "</B></FONT><BR>"
  246.             end
  247.         end
  248.     end
  249.  
  250. ]>
  251.   </TD>
  252.  </TR>
  253. </TABLE>
  254.  
  255. </BODY>
  256. </HTML>
  257.