Home

At Your Service

Prepress AutoTools

Scripting
Frontier
Tonto
HTML
Suites

App Glue
Rumpus

REALbasic

Siteliner

In The News

Contact Info


 

Macrobyte Resources

Rumpus Glue

Version: 1.0

Table of Contents


What is Rumpus, and Rumpus Glue?

Rumpus is FTP Server Software for the Macintosh, produced by Maxum Development Corp. This is the application glue table, which allows you to add, delete, and modify user information in Rumpus's user database, through AppleEvents. Includes various utility scripts to make user-management easier.

If you're not using Rumpus (or Rumpus Pro) on your MacOS-based FTP server, then this glue table won't do you any good.

In order to use this glue table for successful, simple management of user accounts on your FTP server, you'll have to run version 1.3 or newer of Rumpus or Rumpus Pro. There is a bug in previous versions (of Rumpus) which render the suite fairly useless: changes made to Rumpus's user database through AppleEvents are lost when the server is rebooted. Again, this problem was fixed in Rumpus 1.3.

Back to top.


License and Usage Restrictions

You may use this software free of charge.

You may distribute this software with your own software (freeware, shareware, or commercial software), provided that you acknowledge in your documentation, or "credits", that this software was written by Seth Dillingham at Macrobyte Resources. With this acknowledgement, provide the following URL for user-reference:

http://www.macrobyteresources.com/

Back to top.


Download Rumpus Glue

File Encoding For Filesize
Rumpus.Frontier.bin MacBinary Frontier 5 - Mac 16 Kb
Rumpus.Frontier.hqx BinHex Frontier 5 - Mac 20 Kb

Back to top.


Rumpus Glue Documentation

Back to top.

Managing User Preferences

The AppleEvent interface (scripting interface) in Rumpus is designed for one purpose only: to allow user-management. A user, in this case, is an account on the FTP server. It provides functions (events) for creating new users, deleting users, and getting and setting a user's preferences (account permissions, mostly).

Back to top of docs.


Understanding the UserInfoRecord

Account information is passed back and forth to Rumpus as a string: each line of the string represents a single preference for the user. However, it was found that working with strings this way, in Frontier, made the suite fairly difficult to use. As a result, the basic block of information your scripts must deal with is a UserInfoRec.

The UserInfoRec is a record in which each key/value pair represents one account preference. Create a UserInfoRec by calling rumpus.utils.userInfoRec( ), which will return a record with every field pre-defined. Any parameters you pass are used to initialize the record. For example:

rumpus.utils.userInfoRec( "george@jungle.org", "youJane", "Macintosh HD:FTP Incoming:george@jungle.org:" )
That would return a record which looks like this:
{
'user': "george@jungle.org",
'pswd': "youJane",
'drop': "Macintosh HD:FTP Incoming:george@jungle.org:",
'maxf': 0,
'rtod': "",
'pLog': "",
'pSee': "",
'pDow': "",
'pUpl': "",
'pDel': "",
'pDlf': ""
}
Unspecified permission flags (keys begining with 'p') are created as empty strings, rather than as booleans. That way, if you don't specify the value by changing the record, Rumpus's default setting will be used.

The account preferences are as follows:

Record Key String4 Description
Username user String. The account's name, the name which the user uses to log into the FTP account. Example: george@jungle.org or ANONYMOUS.
Password pswd String. The account's password. Use an empty string "" if you don't want the account to have any password (such as the ANONYMOUS account).
MaxFolderSize maxf Integer. Maximum amount of disk space (expressed in megabytes), that the user can store in the drop folder.
PermitCreateFolders pCrf Boolean. Allow this user to create subfolders within the drop folder?
PermitDelete pDel Boolean. Allow this user to delete files?
PermitDeleteFolders pDlf Boolean. Allow this user to delete subfolders of the drop folder?
PermitDownload pDow Boolean. Allow this user to download files from the drop folder?
PermitLogin pLog Boolean. Allow this user to log in? If false, then the account is effectively disabled.
PermitSeeFiles pSee Boolean. Allow this user to see directory listsings. If false, then the user must know the exact pathname/filename in order to download a file.
PermitUpload pUpl Boolean. Allow this user to upload files to the drop folder?
RestrictToDropFolder rtod Boolean. Allow this user to climb out of the drop folder (up the directory hierarchy)?

Back to top of docs.


Creating a New User

Create new users with the script rumpus.addUser( ). AddUser takes one parameter: a UserInfoRec record, which you should create with rumpus.utils.userInfoRec( ). Example:

local ( userRec );
userRec = rumpus.utils.userInfoRec( "george@jungle.org", "youJane", \
  "Macintosh HD:FTP Incoming:george@jungle.org:" );
rumpus.addUser( userRec )

See the test code at the end of rumpus.addUser( ) for a more lengthy example.

Back to top of docs.


Deleting a User

To delete a user, pass the account name to rumpus.deleteUser( ). Example:

rumpus.deleteUser( "george@jungle.org" )

Back to top of docs.


Get Info on a User

To get all of the information for a single account, pass the account's username to rumpus.getUserDetail( ), which will return a UserInfoRec record as described above. Example:

rumpus.getUserDetail( "george@jungle.org" )

Back to top of docs.


Changing a User's Preferences

There are two ways to changes an account's settings. If you only want/need to change one setting, then use rumpus.changeUserPref( ), which takes three parameters.

  • username - the name of the account which is being changed
  • pref - the name of the preference setting which is being changed
  • newValue - the new value for the setting

Example:

with rumpus {
  rumpus.changeUserPref( "george@jungle.org", Password, "monkeyKing" ) }

If you need to change more than one setting, then do something similar to the following:

with rumpus {
  local ( user = "george@jungle.org" );
  // get the account info
  local ( userRec = rumpus.getUserDetail( user ) );
  // change the password
  userRec[ Password ] = "swingingSingle";
  // allow up to 12 megabytes in user account's directory
  userRec[ MaxFolderSize ] = 12;
  // permit the user to create directories
  userRec[ PermitCreateFolders ] = true;
  // premit the user to delete directories
  userRec[ PermitDeleteFolders ] = true;
  // delete the old user account
  deleteUser( user );
  // re-create the user account with the new settings
  addUser( userRec ) }

Back to top of docs.





This site built using Frontier 5 with a Macintosh. Last updated Monday, March 29, 1999
Contact Macrobyte Resources with comments or questions.