diff --git a/.travis.yml b/.travis.yml index 7e3bed85337..3b3aba8a5c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,10 +17,10 @@ before_install: - if php -r "exit( (int)! version_compare( '$TRAVIS_PHP_VERSION', '7.0', '>=' ) );"; then mkdir -p ~/bin && wget -O ~/bin/phpunit https://phar.phpunit.de/phpunit-5.7.phar && chmod +x ~/bin/phpunit; fi before_script: - - ./build-scripts/travis_before_script.sh + - ./build/travis_before_script.sh script: - - ./build-scripts/travis_script.sh + - ./build/travis_script.sh # ----------------------------------------------------------------------------- # What to build, and on which platforms diff --git a/KEYS.md b/KEYS.md new file mode 100644 index 00000000000..a65c64e819a --- /dev/null +++ b/KEYS.md @@ -0,0 +1,696 @@ +# MantisBT PGP Keys + +This file contains the [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) +keys of MantisBT Developers, which were used to sign official release packages +and the corresponding tags in the Git repository. + +Do not use these keys for email or other purposes without asking their owner +first, as some may be used for code signing only. + +Please note that this file as well public key servers may be compromised. +You are encouraged to confirm the keys' authenticity with their respective +owners. + + +## Usage + +### For End-Users + +Add the keys to your keyring +``` +gpg --import KEYS.md +``` + +After importing the keys, you may want to review them and eventually decide to +sign and trust them. +``` +gpg --sign-key KEY +``` + +Check a release's integrity + +``` +gpg --verify $SIGNATURE $RELEASE_FILE +``` + +Where _$SIGNATURE_ is the ASCII-armored signature file you downloaded (e.g. +`mantisbt-2.24.0.tar.gz.asc`) and _$RELEASE_FILE_ is the corresponding release's +zip or tarball (e.g. `mantisbt-2.24.0.tar.gz`). + +The above command's output should be similar to the following example, the +**Good signature** mention confirming that the downloaded file has not been +tampered with. + +``` +gpg: Signature made 2020-03-15T20:15:09 CET +gpg: using RSA key 5769AA4978E571A7BADB2A4DD4EAE2390A45E2D6 +gpg: Good signature from "keybase.io/vboctor " [full] +``` + +### For Developers + +To append your Public Key to this file, follow the instructions below. + +1. Edit this file +2. Go to the end and add a level 3 header (`###`) with your **username** on the +[mantisbt.org bug tracker](https://mantisbt.org/bugs) +3. Execute the following command + ``` + (echo '```' && + gpg --fingerprint $YOUR_KEY && + gpg --export --armor $YOUR_KEY && + echo '```' + ) >> KEYS.md + ``` + +Please also submit your key on a **public keyserver**, preferably one that is part +of the [SKS pool](https://sks-keyservers.net/), such as: +- http://keys.gnupg.net/ +- https://keyserver.ubuntu.com/ +- https://pgp.mit.edu/ + + +## Keys + +### vboctor +``` +pub rsa4096 2015-06-01 [SCEA] + 8079 96A5 AAFD C2F3 466D D672 9839 9BB0 8EBC 1D10 +uid [ full ] keybase.io/vboctor +sub rsa2048 2015-06-01 [S] [expires: 2023-05-30] +sub rsa2048 2015-06-01 [E] [expires: 2023-05-30] + +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFVssJABEADI8+xMSumDJr+OsaQ0839jtURXfYdjLFmxQC7keWwqjzaVoEao +mFpzSEEmg/KBUks8UnY+xqm8hqZguT7NETwf6m/IKUv8JHSbdbO8uWto3mPb+lDu +Suf/pMrK010x48A2K02iM7zKSsEQOyryuwLePc7t9Y5WDqak1mXqnucZnALg9l9T +M8zNnVzrbvcZSNXaPudoL6I4Ki5l57Yb21VUjPatglGhr97FWnrJFqzbWKs/khsx +L99UaCVC4dUNDZhVv2cKyNeTLkF3rxUcujbZxHyJYRRXJUdkXzEg23gAPDToAsPf +EY0Rz0liV9bPzHgPeonzdnPNlVb/2OI0oIUkU7CjZUkPPyDcispk5QTjJiRAjE6G +Qmy+SrSOslMmtrNsw/QJCNbUcld653bFDUopqr+vv5dgZa/MRx9n78sB+kkN3HZh +0GfpBLKooGanhDOGG8uzW8ivck1oEdxiKO91GRMrcvu3fz4lCvxl6hvcfImlS+cT +7EOCN0ViXGpwYTqZ6ZdQtDYrxWWY+AJVHW3SyBbngK1u50u16OZiHxPFdUQPNJrG +cUNuuklJwa+hbgYwey9yik1UmKo60kSgvFoYdMMfd50A0+Qe/v8bWa0CO6xc0dSM +zgXNpdnNaTZQ6X1DnbBR0tsB3LWIFKa4yXt15JyWaksSrtcwJVjh89/qbQARAQAB +tCdrZXliYXNlLmlvL3Zib2N0b3IgPHZib2N0b3JAa2V5YmFzZS5pbz6JAjAEEwEK +ABoFAlVssJACGy8DCwkHAxUKCAIeAQIXgAIZAQAKCRCYOZuwjrwdELvqEADG6GbU +IzE5nhry+IIUZvdhz6QTQj4/eGJuHpLK/rIaSE9mLtVTeq9OG+xxTdguyMqIXvW4 +YaUA734i2UwMKJBlzdtn2b1KatdPEMXldlJ/6m9H4zwK38/PFYaaw03WHv4nsCxe +xh657D7mYRdS/ACrOCDssa/lDSXAJd21kiQM4pxkK2etvD5H3ZF/2m4C2FcG/Ppb +d2IwGhPbzknmLyxBihhluggCh0zlV2JOeeGu4oKp1dL8doUPoYxZ38gRXdlrdLdC +uCkv6Mp2uBhlWxY2Z2CIF9LmIz6+ve7ySWrsJXf+cAqBJ8+Vzz8xAJRDIyPyxJvh +3vihGNgrAN1uVJp7D6qQDQ0m+nWVG0ifxQhNLQiH8/EDJWMq0vhAKt7flyy40vAc +NwPN+F59seyVVKyTmnd9AB3UdteEe/tjOYFHWM5+x6WvzgXP/UZCgTtAApQVyc2w +Wab0T1b0jzqURpnhFpj8m6S0NfJuctsYUFrZPl4b1Ma05nv8caKy4of//ajoG2A0 +dJgKaG9bqCwGsfmj07C/eP+CYP4n4ea4GfeYwv+W1vOLv/LcN7W+rnLadPKh31Rq ++Ziif8PnbkhLHCenPddZrhB9mSfQxK3qKVJavgtW4JhlfxtoPwwYxp9CU991fGEB +8h+6+yWUPakenig+RmcDM8msKifjHP0huoDLFLkBDQRVbLCQAQgAvDTDDkFM70I3 +iUFEtPGOCUHtswcujsxt9jjF5librT++NgkEdRhrN3M6+LIpigT90F1WXR8bTJ3F +73Vj/kQvujtvdXy0CzY74U4c7N9Or4hvbiGPGpS3Od4ZhqQhqAaCWhvuSV4aK56J +oiTMaS/TOhkIPxVP0uOUZoriQ7tl3Oiftb+7LY3LiVfH4kAdu0PoosqY7dTVuFZf +i2yS8qNCdvbxc3TBwQRzxtyipPcfd5i5rP0bz+kcCiSWEnIZXZVlO+/ZmzxBh4La +I0vGq/44+GwcuLL59ahBFFdUhX/ezhfH+u3b8pfG+7/oimfI3CM7WXTACe3V4h3K +UnE+NMePnQARAQABiQNEBBgBCgAPBQJVbLCQBQkPCZwAAhsCASkJEJg5m7COvB0Q +wF0gBBkBCgAGBQJVbLCQAAoJENTq4jkKReLW15YH/R+ySOENJy0dUSSxwgJafqa9 +8WT0idTZ5Qxd53qeO5JSQaJACsIuvesyhDFuWt0Jk2UAwlcijIS7bD9RrgUvhAtk +CIV9Qw9UDFypubUtW15j08eApYjiXOuClDd5SI+p/1AUBk8DXYd65iOBwD0YFrCw +08/738al1ctCTJANuxu+2DO95QMIZuWm2gYlKcdIn9MKeOlAk5fwwFWjQqiwi1LP ++mKX171HpX3dugqRDFndnTwdGCB/MwSEVQ0ZyOH9RFbcMZVadWHzuUqy9opTss2C +aF7jR2mlX/04eRgmcB+88OAoEwFKmyAm6XgBcWgtj8IAb99PrP0V3CL2GAPiHF6z +xg/+OBiEfjX0TPnKulSiFjm/iG35mqsdcnmDvoA1HA6y9UhGcR1y4O9mFVh+pLSu +Igt6jkV9ta/nQPh9oCqLpebzruunBiAoYXFwtvute7e0HqhQ9libbtzxHnbT4Ft+ +TZw39OlzUHpBHH/2k3EAP5cNgj2hGO9Zg4Wp8UKHpTDXynnLMT4M+Lxyf2ztEbEg +GFTqQGXYEjNeoMNzTNHYt/Io3W7YPsFKpAPy+R61Md45J58kicZDHUOE9HyP1kut +b0EGLzyPfZFfq0HFv4bCohyi4NxeC7Lmk0QXrAmmdKmgkgzhDv3HJriWu2f0+xXk +LYzsjKO2gsgQBmGvzj7+68GJIHN+GscftsZVBxqCA+9HaacY5dDiZiFQWbGYw0eu +xOmykOuzc/6Xd2LD1ckE+PfhA08GElzrKAFy8QbQfsAQHXzdIVLljWJF+m/AifBC +RaUf5LzpD4Hmm5ie8fnzflLMB6d1LBBC8xjWF4J8NRsxRKaFK8Oraeh90cf89LXk +PitJEdK6osF6R4SsifDRJhm0zDm2jcQjWnWhhIOM3nTMb90zRMyPbEIAOFPTLMOA +Ksq7d1cENnmzQR3itg/Ii117QhO89xx7pu5MBxVn20R0VMs0Hqoo+Z+Y2X4OwRsT +Kncrrl849alKurbM//OEh0fPG1WjTiawqTkocZqX2Oc7fsO5AQ0EVWywkAEIALcd +7XcAOAUyBHGMbQRqq40bA8LQTIGRaye0BUMLP1wWkOBKedxuzkg5rkYhgfwBGdqa +NI1IvsjSN0X++LEhdWUaEkI3FKkyvsaU7i0jkJSnaCj/JXkW3rj/b8D248kWzGq6 +02QLsTt+215E7h+1yY9dJgauIp1OmKC39CYrifuNs5oFIvMVK08WnB+Lg6NQEd5M +ZfN+LnS7J0bEcF2I5KZgcvUi49NhjG7FcazABa5uwOoh8aqzWYVBd782JP3+Mnn1 +7uvD65x8Vkx8fkPsQkf9Ul3GZvhiIS2Q55ZCfW8evCjyjy2x23zXQHCSATIfhuQd +t8KGAwwFWdpdjSZKvdUAEQEAAYkDRAQYAQoADwUCVWywkAUJDwmcAAIbDAEpCRCY +OZuwjrwdEMBdIAQZAQoABgUCVWywkAAKCRCftKugvN0B7VC9B/wKLg7VwMDQc5z2 +wRg2zRGAUT9vtq/AYHygM0Zqfv+y6WkBmMdXoJq/gr6prH/kmln5KArtpbGeDGZq +U/rXD0avyb04ZlIV6BBbBtVhQOO/A1DZj9/TnAUCFj+XYsHdVv/QFMrdLVv+h+sK +WElh8TgHXzblKRM9zuZiNe7X4dMWiiZD16Mps7Haoj0z/60lb1mhE2SXnxPKoKEQ +IKMiiRi/B4svvTJK5w+aC2sxbq3JDiBivCETXR+17sibw7XmJ6M+IAh6CFFVNh7X +MMRUI71FO9xLjEoxTc30/cKoxNpar4cDx7y9AstSO6g8bMQ1sLHj6pR7v8/2PQJ7 +CJ8buUKrRWoP/2Eyx5pfHKh2Lg4RsW8vxa4sFl5ezvzme5zRb2ixPNGvzJlvZJ5M +sc/JnGxzQb+Q8W//2R6SuZ1Y8pWLu0Yl1JF53nunPs6w9bO+BoOy9CeGzIrzF0PV +ugNyXIerCJByjHG1E5bkbY8ij24z1zoad/lRmK/Ahqcp1+PGlgOSsRj97u2FQxEk +oBCKeq8H6NuXUv2+SrFbZnhDqNS8XkQmU9eWSUChv/Yz+EeAR/koa8QmYagtxJNa +ctzb2xumA8x/eTiQp/o+7QhmNrccBaNKMch1Ipe8lCqUbEPXQ1LbQRWneUz9BIcu +W17zINu2w8FnrqCx2SpsM/1WGotDUclsXI+Iyw4XrVFEknGLLiwQjeM2YYZnuYTh +4qDADBSgigXr/bdrGfqiUfGeDrhfowf768P/kj2kVF/nxykKNdB1KWNsQhFVT9xz +bKqjegF1DCQoBqxUl3D67sqtomkBEPTfWuuEd3vBWB2gnQA5ReXda+FuPINXdWaF +jcKvKDt56No8vWWQPlVfOB0v1hqRG5lbhOtE4CnS5s38qPy+CW0ofC3u31HWHh9T +e/LGN4OT+MclNbAvGRHiRDUnANGhz3VDw4JknzDiLnk6Vhosp6D/GWUKoAwwBmtN +KiRlaLD81RecU9AzvULy+vcsPsSzA3pc8bAebAYhvvXIdBBTBi2F/jIm +=9aN+ +-----END PGP PUBLIC KEY BLOCK----- +``` + +``` +pub rsa2048 2014-12-08 [SC] + 4EA1 D867 7022 073E A38D 3914 0223 93FF F8CD 7E90 +uid [ full ] Victor Boctor +sub rsa2048 2014-12-08 [E] + +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +8Dj6H0+p +=2jbn +-----END PGP PUBLIC KEY BLOCK----- +``` + +### dregad +``` +pub rsa2048 2010-11-20 [SC] + EAA6 3F1F 284C A8F5 1537 4907 0FFE 77FB 7E08 105F +uid [ultimate] Damien Regad (MantisBT dev) +uid [ultimate] [jpeg image of size 7697] +sub rsa2048 2010-11-20 [E] + +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQENBEznhOQBCADZZh6L+9YH/bjmhQAuqeZUvk9y/Q8GZNMYpLx9accXabL8fnnG +Uu1CERympAKZmSdVvPIuRapAcLJVh/m+i+eQo7QQW8jiT4TwtivfsjPm+gqqyDyL +SFrbgXDCT32q4baAUoowfVP+stKpnTZLuthuh++DOZfJKKj4p6dy3qUEQf769lWq +oEzS6dHdtJrTLw6h5ORTpZrK4pLyo7w3BlxT4lso+a/BXFiWyQz17m2h63mNUDql +Q6KahO66jJg0veYsKrziMkaDO/yglMcOXMNoFQVh3ZpYq6oT+7LSfU9u0p1J7BnN +6fTZC9c8pTz707xJQWHjsKW8sBkI0iqVmVBpABEBAAG0MURhbWllbiBSZWdhZCAo +TWFudGlzQlQgZGV2KSA8ZHJfbWFudGlzQHJlZ2FkLm9yZz6JATgEEwECACIFAlCd +j8YCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEA/+d/t+CBBf5hsIALt2 +5cm4Qgz3eXTSSn0+Zb/6rf76IcuVrRCtF6G38g9sKvO1TOqAy1wrQOsmBmewKrC/ +89ku9nnZv7rWfwNCo/9LJPQQAy/wdse6jOjeWrSun8Zns+0NZilRvt4e4K9QvMO1 +pJDUQGF72wrexYlDXhtlPfkdk2OJ0yEVBsUZPOMF9Z53YMqOsA3geMaphL10U/Tq +nOiDfY10R/4HQYKlp2waCKjKU8NqqpvNnsQleuwJA352/BDgr5CINKm8Je9BoIzK +dOsf2LscXYAqPnyd9eD/h3SHVMuE+7+R6yORYjAkOANU8bgcEjrKlDPqG3TW9Zkl +FwGROcjQxn9MlDVQZHOJAU8EEwECADkCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4B +AheAFiEE6qY/HyhMqPUVN0kHD/53+34IEF8FAl6kD/QACgkQD/53+34IEF+E7gf/ +ed+ANT3T9wqTZLo5TTRZugdolb6PfqOn7H3LTUosrXEEPXWXIi1invTGI/Zp+Xs4 +bjXZUe0+mzfa+9hCqhAUyRkSuVfi/rDi/UbTBnlIgsFvbVbGRgiMOEKR+xtr7sQl +T7DOQKfXKpZa+QdzPR9LenmhK1UYVk6NA93B7oc9kRj4ff4KHCO6Vol47OK+xaki +ETr8S8SAIgXDFtCi5TBR4mUO7QUaIsBpPsT1PNw98gc7mr/Mm7cjES5gKhlEnDWk +G7YvtzCi6K/zMTQWdtrqhXckRIhXNcxWxSkNehMQ0DGRg838uYQnmdl7v+N/d8xt +co6tfsyLLxS1vu00N4ZRy9HdZN1iARAAAQEAAAAAAAAAAAAAAAD/2P/gABBKRklG +AAEBAAABAAEAAP/+AD5DUkVBVE9SOiBnZC1qcGVnIHYxLjAgKHVzaW5nIElKRyBK +UEVHIHY2MiksIGRlZmF1bHQgcXVhbGl0eQr/2wBDAAgGBgcGBQgHBwcJCQgKDBQN +DAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/ +2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy +MjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADIAMgDASIAAhEBAxEB/8QAHwAAAQUB +AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQID +AAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0 +NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKT +lJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl +5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL +/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHB +CSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpj +ZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 +uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIR +AxEAPwC4nhOzhZrlofMl9+c0681fTtGgO61eOU/Koxya2/t0aDANcp4u+wrbtqMk +TPLHtAG7j8q5VJ3szqei0OW8R3X2vUrR/N8xVjwh9F3Hir68+I7Qf3bRax7lZtUu +La6gtTsKZ2qMha6FbC5GtQXhQeT9nVAdw+9j0rpSsjm6k2vzeTa28gONsu79K4hZ +A2pl8/ek3frXY+Jw7aZH5QLyLJyoXPGOtcnb6Xe+aszWkvl7hlipFTBDkdD4S5hm +bocr/WqF8pbXrogcbT/Suj061gtINkMezdy3PWrDRIDJtVRv+9x1oukwtoYV9aJd +SFjwyng0mgWssFvdNMuDLdR4569a07S3ildyw3fMetWXCRpAqADdOvT6GhaId76G +lfxedasgOM/jXNyyW+nxvFIZVDrt3FMV0088UKlpJFVR13HpXL6lc2WqblhlEmw9 +lOPz6VmhtIveHXDW5CNuReFOMVuk4rlra+j0+FY4cb/Q1FNrF27YMwA/uIAabg2w +TsWL1h/aUhPRbhTn6LUEkqSRHy5FJBrLkuGmf/loEPVt561AyKcHzXPbtxV8mg4z +saVoJIkUHGC7MR+NX7o7NcJ/h8j+tc010Y+AuT6BmXP5GtGHWTFCIpi2wfMC5zj8 +aOWxXPct+JrKd4be8CDyVhRWORwSfStmNkjMT9VUqT9BXNXuoC6syqSocsvGO2a1 +o13DLSMfocUXHFFp1tor+S7ti4Mj73WTGCaGnga6abZEsjfeMa8t9fWohDGGx1p8 +WCO2aVylBIfNOSmEib6k4qliQSRbggDOo9/X+laEwynFZ877BExH3X3fkCallWNX +OKK5xfE3m3UUUVooDuEO52PU47YorL2bJZs6pqE0KDyF8xifXpXN351LUYnhd129 +Sma2GhvkO/ykAHzZdt2KyfEdxc2TwlGBkwd2ABW6hYx57mzokBtdPSFyNyr2rWT7 +orG0Wd5dMjlk++yc1qrIPKU0nuOxFqId7SVY5Gjcr8rqeRXPeRNNLumnkc/LnLcc +V0M7Ygfrj1rJLxpKoLpnrjIqNb6DSXU2IF+RPpTn+VSRVezu4LhVEEyybeu3tVab +WYFvWsjFJ5vTeCNoq9WJszSL0u7RjjP8JqS4nljtkWRGf5uQPXFS3TTW8sXkqrea ++1jnGK5jXNZczvbRcKp5PcmlqLRF06jHbo6RoqBqpPqs7qyo6L6AVkrK0qnk7qQb +twJrSwrmpa3jtu3yNtXHT+I1cNwjybQCue+cZrER/KUtnoahkuGkTAPOc5piOhlu +NkeyMKqA8igQRAMFyGb5s7qw4r07cSnK9K0ILhJlDA4dfvfjTAsvHsnYsy7mUbTn +oR1qSRtu5mAO7/awBVJ7nbOgfOFOd1WgzfeXDRlTx6Gi4rGTcXGx8pDknod2a29I +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 +bVBR+hxAY9RDtCdEYW1pZW4gUmVnYWQgKFBlcnNvKSA8ZGFtaWVuQHJlZ2FkLm9y +Zz6JAU8EEwECADkCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAFiEE6qY/HyhM +qPUVN0kHD/53+34IEF8FAl6kEIYACgkQD/53+34IEF8ysAgApIEwUAyQUBT4RGr0 +e19Cxwp0G54kctcRsgD7naxgv6HWJoh5TeFmjwO3fXGEYOACSBMFRQaIYt0dKW4W +W4pAw3Q9pusNv8ERE0LAED3NMYtj+ivdE1W6PkjTZYNs6X1YZVtP9A8+MBslcMhc +PF8AMHC+pfgUcOF3l4ZJ34GCMYrNmFZaVaoKBzzTVgeQzquPU/xIn5m9lrOjNDhT +CzKXyQifgPf/6EVahqqcLNdfyiu4zfPKXVI4koE9TqpCDyqRwwlxm6BgRiL3ejJK +MAK9d0tW/GVaLRYG9J+G7JrYDesJANXVgY8xnoIqRr5L/pDgabOyCnJqRGIHaS/F +DPdaI7QxRGFtaWVuIFJlZ2FkIChNYW50aXNCVCBkZXYpIDxkcmVnYWRAbWFudGlz +YnQub3JnPokBUgQTAQIAPAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AWIQTq +pj8fKEyo9RU3SQcP/nf7fggQXwUCXqQQhgIZAQAKCRAP/nf7fggQX0KCB/9QYhUA +iOBvX3rFVnmYS+kmE3vUAKnViMd7gOoZunuyIW2+opLvvZt1q0gMmYl0YiUwT0qB +CPTiIm7slMJnmfwsEyJu17/m4eVn4UfFut/cVm6Zq+9+ekQV++hmtB7f3Js2yXxz +wi8nOHzMS2E+UVzzEMUXbdkhcITaXfQJzBC1+qOFsZSkbsz7tVBLY685lZPg5wtY +pUqQgrFoDrQeoqGW0J2sGH4fSRm20HjHo62hBBAHi09hPztnDLCC2xUGVd9J9Jgy +6EZwZS8OIxu8lPIgP6lddbrcqGmG96I5zraWQ3RBBXRKij+tRP5pbyrxAtwrGf+Z +AD0yRlcMt+TxiDIVtCpEYW1pZW4gUmVnYWQgPGRhbWllbi5yZWdhZEBtZXJja2dy +b3VwLmNvbT6JAVgEMAEKAEIWIQTqpj8fKEyo9RU3SQcP/nf7fggQXwUCXqQQeiQd +IE5vIGxvbmdlciB3b3JraW5nIGZvciB0aGlzIGNvbXBhbnkACgkQD/53+34IEF8B +8wgAo+FtIEg82E1G2sYln7ijy0j951UrueZoxY8smryNrRU/5cAU9maUd9+MC8L4 +8QjWNvttinfhMFiw0A+beESPzt17u0H8b6+vz1PC1GDp+kt2ySGEirl+seU6fgVd +/wsHT7xypyXzac0jvdx9W6PLsC5i8EsWfm7wpRXZn0yZhx4RkGiSdComuiLPKTFG +sk380003tu/ac1X85h8YHnF1ncRijMFUKh6T7c+Tzz916qaRSnxexMlvgj7xhYFm +xXNSF1ODm97ARFuQRRpo60B1zBwzlc8k3QedPeKQh0OZxo/3f4D85ZlO/bxUai4R +5tz7QZcFUEkG5C77IgblpqQ3mYkBOAQTAQIAIgUCTOeE5AIbAwYLCQgHAwIGFQgC +CQoLBBYCAwECHgECF4AACgkQD/53+34IEF80/wgAhTwLO8f7iiaIbdIJvAQ4uH/h +Rs5oKegwsiNGLcOc4/IwGelvN7K8445c8pwA1AMhPgrtm+JL5pRenRnRKwHGrznO +GR2QPNM3IQzMPUbgu9t1qSywDtxGEgpo4JJ5uowPfcJ8UdNWCuFVvvs8bAd3RVC5 +KS6pc3QtW8TJhT7x70TSTjgxrgvPMm1JtHIPvUuYilcQ68J2/+0zan2WZqfWuC2T +XVMoe2AcW0tX48emShkQo3bWYiO1p8P4d+7CkRngV1vu6Sl2L4IZMKUbYUwwYJu5 +gHuQLT/ZiJ620qQj36IQnC9riwjkBhW1sr+IyglI3Ezzsvkxj+O990XKjFLI9rkB +DQRM54TkAQgA3zXciFE+FjtzwJvaB0fv1mu95Avd4Y8OIuAiaJah0UZpGoF5eyND +eBs2MdWbKJ0XhYaIFqMpTUSPyrWllY3ZyABFghmvlkDH7QbX39LDTkmS1t0S0Nv/ +bCwrs4rGujWr19cTSs4MP3pYJLevjsN/ZTIMQw0o7lirhgEEanehOBb2ol5iwmDV +2DdNUNfnSIhF8k3PEbaZ6s4HNhnMtZwlNhd+qmQZURTqOK9BDBeNtzozBNu2segD +updqBcvBRQTowHw8tJhcFJxyjfEXMxuwx/rxiKfuvU/7KxyPpgKFr3xtHnCra7Xd +Z5CostjDkScnlp7j6EaAE0hlXwkcT30wFwARAQABiQEfBBgBAgAJBQJM54TkAhsM +AAoJEA/+d/t+CBBfJNUH/jQkV71vfbG+U4rjB6txj0RQy+Q9yuFMBifrpSA5SCSY +Jz632HCqe/LrKFYlGgBasu3EYoKZ7XoZ9k0s2EjOMoy1L1licV+77WLHLZovTbq+ +hczNQ0Hu0kUX6DSK9UUibeVAe+PHX4T50QaRH3k7YVtXfRCiRUn+vWpkpQV5gsSo +SFgP1X7LDnjCHd35m8M97paplmtiWsgHt3QbFrOIla4t3MloAC453hRS7xL/vCS1 +onKYBh4pQVHQmrEJWodKSUgBqZ3lH88KG15KleOwAp2m+AgoobtX/gTOe5SwX81K +THmHhcJsZi5JnurOs68dN/lktqgKWslHTg5W0DF+xHQ= +=iLrs +-----END PGP PUBLIC KEY BLOCK----- +``` + +### jreese +``` +pub dsa1024 2008-02-23 [SC] + 1D5C CEEA 92DF 2E3F 7267 BA40 D53E A311 DE61 84DC +uid [ full ] John Reese +uid [ full ] John Reese (LeetCode.net) +sub elg2048 2008-02-23 [E] + +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +j7Jq +=oym2 +-----END PGP PUBLIC KEY BLOCK----- +``` + +``` +pub rsa4096 2011-04-05 [SC] + 9A24 B14A 6239 AA5A 4507 08B6 71FC FA26 C45D 960E +uid [ full ] John Reese +sub rsa4096 2011-04-05 [E] + +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +1QTF/3ROmMEh0OgRlzKa32o= +=jTOG +-----END PGP PUBLIC KEY BLOCK----- +``` + +### dhx +``` +pub rsa4096 2011-03-12 [SC] + 2442 14B5 2E51 CB0F CA3B 9DB8 59E0 E7B7 728F 3435 +uid [ full ] David Hicks +uid [ full ] David Hicks +uid [ full ] David Hicks +sub rsa4096 2011-03-12 [E] + +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +IYeGqkB/xuHgYKFWxfaIffA= +=aw2m +-----END PGP PUBLIC KEY BLOCK----- +``` diff --git a/admin/check/check_php_inc.php b/admin/check/check_php_inc.php index 0df318e8b3e..105266e6773 100644 --- a/admin/check/check_php_inc.php +++ b/admin/check/check_php_inc.php @@ -51,7 +51,8 @@ 'pcre', 'Reflection', 'session', - 'mbstring' + 'mbstring', + 'json' ); foreach( $t_extensions_required as $t_extension ) { @@ -115,18 +116,6 @@ array( false => 'The value of this directive is currently: ' . $t_variables_order ) ); -check_print_test_row( - 'magic_quotes_gpc php.ini directive is disabled', - !( function_exists( 'get_magic_quotes_gpc' ) && @get_magic_quotes_gpc() ), - array( false => 'PHP\'s magic quotes feature is deprecated in PHP 5.3.0 and should not be used.' ) -); - -check_print_test_row( - 'magic_quotes_runtime php.ini directive is disabled', - !( function_exists( 'get_magic_quotes_runtime' ) && @get_magic_quotes_runtime() ), - array( false => 'PHP\'s magic quotes feature is deprecated in PHP 5.3.0 and should not be used.' ) -); - check_print_test_warn_row( 'register_argc_argv php.ini directive is disabled', !ini_get_bool( 'register_argc_argv' ), diff --git a/api/rest/api.postman_collection.json b/api/rest/api.postman_collection.json new file mode 100644 index 00000000000..b82c05bde51 --- /dev/null +++ b/api/rest/api.postman_collection.json @@ -0,0 +1,4998 @@ +{ + "info": { + "_postman_id": "6ecad46e-cfa0-fb41-c005-2a82c25e74f6", + "name": "Mantis Bug Tracker REST API", + "description": "Mantis Bug Tracker (MantisHub) REST APIs.\n\nREST API calls have to be authenticated by creating an API token for the user doing the calls, and then passing the API token in the 'Authorization' header. However, for anonymous access, the API key and header are not needed. \n\nPostman Environment Variables:\n- {{token}} - The API token to be used for authentication.\n- {{url}} - The base URL for Mantis instance (e.g. 'https://instance-name.mantishub.io').\n\nThere has been significant improvements and feature additions for REST API in each of the recent releases. Hence, it is highly recommended to use latest release when leveraging the REST APIs.\n\nREST API is enabled by default since MantisBT 2.8.0 release.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "Issues", + "item": [ + { + "name": "Get an issue", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Get issue with the specified id.\n\nAvailable since MantisBT 2.3.0. Issue history included since MantisBT 2.9.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "21920", + "description": "The issue id" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "1509", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:43:16 GMT", + "name": "Date", + "description": "" + }, + { + "key": "ETag", + "value": "1625146a518db1112fdce101781fae3f6b5b936ec3b02ab77a78705489cfee67", + "name": "ETag", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"issues\": [\n {\n \"id\": 1,\n \"summary\": \"Sample issue title\",\n \"description\": \"Sample issue description\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 135,\n \"name\": \"General\"\n },\n \"reporter\": {\n \"id\": 1,\n \"name\": \"vboctor\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"vboctor@example.com\"\n },\n \"status\": {\n \"id\": 10,\n \"name\": \"new\",\n \"label\": \"new\",\n \"color\": \"#fcbdbd\"\n },\n \"resolution\": {\n \"id\": 10,\n \"name\": \"open\",\n \"label\": \"open\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"priority\": {\n \"id\": 30,\n \"name\": \"normal\",\n \"label\": \"normal\"\n },\n \"severity\": {\n \"id\": 50,\n \"name\": \"minor\",\n \"label\": \"minor\"\n },\n \"reproducibility\": {\n \"id\": 70,\n \"name\": \"have not tried\",\n \"label\": \"have not tried\"\n },\n \"sticky\": false,\n \"created_at\": \"2017-04-23T13:12:28-04:00\",\n \"updated_at\": \"2017-04-23T13:12:28-04:00\",\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"history\": [\n {\n \"created_at\": \"2017-04-23T13:12:28-04:00\",\n \"user\": {\n \"id\": 36771,\n \"name\": \"vboctor\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"vboctor@example.com\"\n },\n \"type\": {\n \"id\": 1,\n \"name\": \"issue-new\"\n },\n \"message\": \"New Issue\"\n }\n ]\n }\n ]\n}" + }, + { + "name": "Not Found", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "2192022", + "description": "The issue id" + } + ] + } + }, + "status": "Issue #2192022 not found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "89", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:53:57 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"message\": \"Issue #200000 not found\",\n \"code\": 1100,\n \"localized\": \"Issue 200000 not found.\"\n}" + } + ] + }, + { + "name": "Get issue files", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/files", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "files" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id to get files for" + } + ] + }, + "description": "Get all files associated with an issue.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [ + { + "name": "Not Found", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "2192022", + "description": "The issue id" + } + ] + } + }, + "status": "Issue #2192022 not found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "89", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:53:57 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"message\": \"Issue #200000 not found\",\n \"code\": 1100,\n \"localized\": \"Issue 200000 not found.\"\n}" + }, + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "21920", + "description": "The issue id" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "1509", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:43:16 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "ETag", + "value": "1625146a518db1112fdce101781fae3f6b5b936ec3b02ab77a78705489cfee67", + "name": "ETag", + "description": "An identifier for a specific version of a resource, often a message digest" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "Custom header" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "Custom header" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "Custom header" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"issues\": [\n {\n \"id\": 1,\n \"summary\": \"Sample issue title\",\n \"description\": \"Sample issue description\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 135,\n \"name\": \"General\"\n },\n \"reporter\": {\n \"id\": 1,\n \"name\": \"vboctor\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"vboctor@example.com\"\n },\n \"status\": {\n \"id\": 10,\n \"name\": \"new\",\n \"label\": \"new\",\n \"color\": \"#fcbdbd\"\n },\n \"resolution\": {\n \"id\": 10,\n \"name\": \"open\",\n \"label\": \"open\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"priority\": {\n \"id\": 30,\n \"name\": \"normal\",\n \"label\": \"normal\"\n },\n \"severity\": {\n \"id\": 50,\n \"name\": \"minor\",\n \"label\": \"minor\"\n },\n \"reproducibility\": {\n \"id\": 70,\n \"name\": \"have not tried\",\n \"label\": \"have not tried\"\n },\n \"sticky\": false,\n \"created_at\": \"2017-04-23T13:12:28-04:00\",\n \"updated_at\": \"2017-04-23T13:12:28-04:00\",\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"history\": [\n {\n \"created_at\": \"2017-04-23T13:12:28-04:00\",\n \"user\": {\n \"id\": 36771,\n \"name\": \"vboctor\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"vboctor@example.com\"\n },\n \"type\": {\n \"id\": 1,\n \"name\": \"issue-new\"\n },\n \"message\": \"New Issue\"\n }\n ]\n }\n ]\n}" + } + ] + }, + { + "name": "Get issue file (single)", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/files/:file_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "files", + ":file_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + }, + { + "key": "file_id", + "value": "", + "description": "The attachment file id" + } + ] + }, + "description": "Get a single file from an issue.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Get all issues", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues?page_size=10&page=1", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ], + "query": [ + { + "key": "page_size", + "value": "10", + "description": "The number of issues to return per page. Default is 50 but overridable by configuration." + }, + { + "key": "page", + "value": "1", + "description": "The page number (default is 1)" + } + ] + }, + "description": "Get paginated list of issues.\n\nAvailable since MantisBT 2.3.0. Issue history included since MantisBT 2.9.0. A fix was implemented in 2.20.0 to avoid filtering out of some issues (e.g. closed issues)." + }, + "response": [] + }, + { + "name": "Get issues for a project", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues?project_id=1", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ], + "query": [ + { + "key": "project_id", + "value": "1", + "description": "The project id" + } + ] + }, + "description": "Get all issues for the specified project.\n\nFiltering by project is supported since MantisBT 2.5.0. Issue history included since MantisBT 2.9.0." + }, + "response": [] + }, + { + "name": "Get issues matching filter", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues?filter_id=1", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ], + "query": [ + { + "key": "filter_id", + "value": "1", + "description": "The filter id" + } + ] + }, + "description": "Get all issues matching a user defined filter given the filter id.\n\nFiltering by project or filter is supported since MantisBT 2.5.0. Issue history included since MantisBT 2.9.0." + }, + "response": [] + }, + { + "name": "Get issues assigned to me", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues?filter_id=assigned", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ], + "query": [ + { + "key": "filter_id", + "value": "assigned", + "description": "The filter id" + } + ] + }, + "description": "This is a standard filter that gets all issues assigned to the logged in user.\n\nAvailable since MantisBT 2.10.0." + }, + "response": [] + }, + { + "name": "Get issues reported by me", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues?filter_id=reported", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ], + "query": [ + { + "key": "filter_id", + "value": "reported", + "description": "The filter id" + } + ] + }, + "description": "This is a standard filter that gets all issues reported by the logged in user.\n\nAvailable since MantisBT 2.10.0." + }, + "response": [] + }, + { + "name": "Get issues monitored by me", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues?filter_id=monitored", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ], + "query": [ + { + "key": "filter_id", + "value": "monitored", + "description": "The filter id" + } + ] + }, + "description": "This is a standard filter gets all issues monitored by the logged in user.\n\nAvailable since MantisBT 2.10.0." + }, + "response": [] + }, + { + "name": "Get unassigned issues", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues?filter_id=unassigned", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ], + "query": [ + { + "key": "filter_id", + "value": "unassigned", + "description": "The filter id" + } + ] + }, + "description": "This is a standard filter that gets all issues monitored by the logged in user.\n\nAvailable since MantisBT 2.10.0." + }, + "response": [] + }, + { + "name": "Create an issue (minimal)", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"summary\": \"This is a test issue\",\n \"description\": \"This is a test description\",\n \"category\": {\n \"name\": \"General\"\n },\n \"project\": {\n \"name\": \"project1\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + "" + ] + }, + "description": "Shows the creation of issue with minimal information.\n\nAvailable since MantisBT 2.3.0." + }, + "response": [] + }, + { + "name": "Create an issue", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"summary\": \"Sample REST issue\",\n \"description\": \"Description for sample REST issue.\",\n \"additional_information\": \"More info about the issue\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 5,\n \"name\": \"bugtracker\"\n },\n \"handler\": {\n \"name\": \"vboctor\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\"\n },\n \"priority\": {\n \"name\": \"normal\"\n },\n \"severity\": {\n \"name\": \"trivial\"\n },\n \"reproducibility\": {\n \"name\": \"always\"\n },\n \"sticky\": false,\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"tags\": [\n {\n \"name\": \"mantishub\"\n }\n ]\n}\n" + }, + "url": { + "raw": "{{url}}/api/rest/issues", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ] + }, + "description": "Create an issue with most fields supplied.\n\nAvailable since MantisBT 2.3.0." + }, + "response": [ + { + "name": "success", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"summary\": \"Sample REST issue\",\n \"description\": \"Description for sample REST issue.\",\n \"additional_information\": \"More info about the issue\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 5,\n \"name\": \"bugtracker\"\n },\n \"handler\": {\n \"name\": \"vboctor\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\"\n },\n \"priority\": {\n \"name\": \"normal\"\n },\n \"severity\": {\n \"name\": \"trivial\"\n },\n \"reproducibility\": {\n \"name\": \"always\"\n },\n \"sticky\": false,\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"tags\": [\n {\n \"name\": \"mantishub\"\n }\n ]\n}\n" + }, + "url": { + "raw": "{{url}}/api/rest/issues", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ] + } + }, + "status": "Issue Created with id 22131", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "2401", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 23:47:34 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "EvilMan", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"issue\": {\n \"id\": 1,\n \"summary\": \"Sample REST issue\",\n \"description\": \"Description for sample REST issue.\",\n \"additional_information\": \"More info about the issue\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 5,\n \"name\": \"bugtracker\"\n },\n \"reporter\": {\n \"id\": 2,\n \"name\": \"GermanReporter\"\n },\n \"handler\": {\n \"id\": 1,\n \"name\": \"vboctor\"\n },\n \"status\": {\n \"id\": 50,\n \"name\": \"assigned\",\n \"label\": \"zugewiesen\",\n \"color\": \"#c2dfff\"\n },\n \"resolution\": {\n \"id\": 10,\n \"name\": \"open\",\n \"label\": \"offen\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"öffentlich\"\n },\n \"priority\": {\n \"id\": 30,\n \"name\": \"normal\",\n \"label\": \"normal\"\n },\n \"severity\": {\n \"id\": 20,\n \"name\": \"trivial\",\n \"label\": \"Trivial\"\n },\n \"reproducibility\": {\n \"id\": 10,\n \"name\": \"always\",\n \"label\": \"immer\"\n },\n \"sticky\": false,\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"updated_at\": \"2018-01-07T18:47:35-05:00\",\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"tags\": [\n {\n \"id\": \"1\",\n \"name\": \"mantishub\"\n }\n ],\n \"history\": [\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"type\": {\n \"id\": 1,\n \"name\": \"issue-new\"\n },\n \"message\": \"Neuer Eintrag\"\n },\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"field\": {\n \"name\": \"status\",\n \"label\": \"Status\"\n },\n \"type\": {\n \"id\": 0,\n \"name\": \"field-updated\"\n },\n \"old_value\": {\n \"id\": 10,\n \"name\": \"new\",\n \"label\": \"neu\",\n \"color\": \"#fcbdbd\"\n },\n \"new_value\": {\n \"id\": 50,\n \"name\": \"assigned\",\n \"label\": \"zugewiesen\",\n \"color\": \"#c2dfff\"\n },\n \"message\": \"Status\",\n \"change\": \"neu => zugewiesen\"\n },\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"field\": {\n \"name\": \"handler\",\n \"label\": \"Bearbeitung durch\"\n },\n \"type\": {\n \"id\": 0,\n \"name\": \"field-updated\"\n },\n \"old_value\": {\n \"id\": 0\n },\n \"new_value\": {\n \"id\": 1,\n \"name\": \"vboctor\"\n },\n \"message\": \"Bearbeitung durch\",\n \"change\": \" => vboctor\"\n },\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"type\": {\n \"id\": 25,\n \"name\": \"tag-added\"\n },\n \"tag\": {\n \"id\": \"1\",\n \"name\": \"mantishub\"\n },\n \"message\": \"Tag zugeordnet: mantishub\"\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Create an issue with attachments", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"summary\": \"Sample REST issue with attachment\",\n \"description\": \"Description for sample REST issue.\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 5,\n \"name\": \"bugtracker\"\n },\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"files\": [\n {\n \"name\": \"test.txt\",\n \"content\": \"VGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4NClRoaXMgaXMgYSBURVNULg0KVGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4=\"\n },\n {\n \"name\": \"test2.txt\",\n \"content\": \"VGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4NClRoaXMgaXMgYSBURVNULg0KVGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4=\"\n }\n ]\n}\n" + }, + "url": { + "raw": "{{url}}/api/rest/issues", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ] + }, + "description": "Create an issue with attachments\n\nAvailable since MantisBT 2.12.0." + }, + "response": [ + { + "name": "success", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"summary\": \"Sample REST issue\",\n \"description\": \"Description for sample REST issue.\",\n \"additional_information\": \"More info about the issue\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 5,\n \"name\": \"bugtracker\"\n },\n \"handler\": {\n \"name\": \"vboctor\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\"\n },\n \"priority\": {\n \"name\": \"normal\"\n },\n \"severity\": {\n \"name\": \"trivial\"\n },\n \"reproducibility\": {\n \"name\": \"always\"\n },\n \"sticky\": false,\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"tags\": [\n {\n \"name\": \"mantishub\"\n }\n ]\n}\n" + }, + "url": { + "raw": "{{url}}/api/rest/issues", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues" + ] + } + }, + "status": "Issue Created with id 22131", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "2401", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 23:47:34 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "Custom header" + }, + { + "key": "X-Mantis-Username", + "value": "EvilMan", + "name": "X-Mantis-Username", + "description": "Custom header" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "Custom header" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"issue\": {\n \"id\": 1,\n \"summary\": \"Sample REST issue\",\n \"description\": \"Description for sample REST issue.\",\n \"additional_information\": \"More info about the issue\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 5,\n \"name\": \"bugtracker\"\n },\n \"reporter\": {\n \"id\": 2,\n \"name\": \"GermanReporter\"\n },\n \"handler\": {\n \"id\": 1,\n \"name\": \"vboctor\"\n },\n \"status\": {\n \"id\": 50,\n \"name\": \"assigned\",\n \"label\": \"zugewiesen\",\n \"color\": \"#c2dfff\"\n },\n \"resolution\": {\n \"id\": 10,\n \"name\": \"open\",\n \"label\": \"offen\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"öffentlich\"\n },\n \"priority\": {\n \"id\": 30,\n \"name\": \"normal\",\n \"label\": \"normal\"\n },\n \"severity\": {\n \"id\": 20,\n \"name\": \"trivial\",\n \"label\": \"Trivial\"\n },\n \"reproducibility\": {\n \"id\": 10,\n \"name\": \"always\",\n \"label\": \"immer\"\n },\n \"sticky\": false,\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"updated_at\": \"2018-01-07T18:47:35-05:00\",\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"tags\": [\n {\n \"id\": \"1\",\n \"name\": \"mantishub\"\n }\n ],\n \"history\": [\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"type\": {\n \"id\": 1,\n \"name\": \"issue-new\"\n },\n \"message\": \"Neuer Eintrag\"\n },\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"field\": {\n \"name\": \"status\",\n \"label\": \"Status\"\n },\n \"type\": {\n \"id\": 0,\n \"name\": \"field-updated\"\n },\n \"old_value\": {\n \"id\": 10,\n \"name\": \"new\",\n \"label\": \"neu\",\n \"color\": \"#fcbdbd\"\n },\n \"new_value\": {\n \"id\": 50,\n \"name\": \"assigned\",\n \"label\": \"zugewiesen\",\n \"color\": \"#c2dfff\"\n },\n \"message\": \"Status\",\n \"change\": \"neu => zugewiesen\"\n },\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"field\": {\n \"name\": \"handler\",\n \"label\": \"Bearbeitung durch\"\n },\n \"type\": {\n \"id\": 0,\n \"name\": \"field-updated\"\n },\n \"old_value\": {\n \"id\": 0\n },\n \"new_value\": {\n \"id\": 1,\n \"name\": \"vboctor\"\n },\n \"message\": \"Bearbeitung durch\",\n \"change\": \" => vboctor\"\n },\n {\n \"created_at\": \"2018-01-07T18:47:35-05:00\",\n \"user\": {\n \"id\": 2,\n \"name\": \"GermanReporter\",\n \"email\": \"german-reporter@example.com\"\n },\n \"type\": {\n \"id\": 25,\n \"name\": \"tag-added\"\n },\n \"tag\": {\n \"id\": \"1\",\n \"name\": \"mantishub\"\n },\n \"message\": \"Tag zugeordnet: mantishub\"\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Update an issue (minimal)", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"handler\": {\n \"name\": \"vboctor\"\n },\n \"status\": {\n \"name\": \"assigned\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Update an exiting issue.\n\nAvailable since MantisBT 2.8.0." + }, + "response": [ + { + "name": "Update an issue (access denied)", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "value": "{{token}}", + "disabled": false + }, + { + "key": "Content-Type", + "value": "application/json", + "disabled": false + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": 22066,\n \"summary\": \"This is a test rest issue w/ handler 2\",\n \"priority\": {\n \"name\": \"high\"\n },\n \"handler\": {\n \t\"name\": \"vboctor\"\n },\n \"status\": {\n \t\"name\": \"assigned\"\n },\n \"custom_fields\":\n [\n {\n \"field\": {\n \"name\": \"Email\"\n },\n \"value\": \"vboctor@gmail.com\"\n }\n ],\n \"notes\": [\n {\n \"id\": 54527,\n \"reporter\": {\n \"id\": 36771,\n \"name\": \"vboctoradmin\",\n \"real_name\": \"Victor Admin\",\n \"email\": \"vboctor@mantisbt.org\"\n },\n \"text\": \"This is a note from issue update -- 2.\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"type\": \"note\"\n },\n {\n \"reporter\": {\n \"id\": 36771,\n \"name\": \"vboctoradmin\",\n \"real_name\": \"Victor Admin\",\n \"email\": \"vboctor@mantisbt.org\"\n },\n \"text\": \"another note 1.\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"type\": \"note\"\n },\n {\n \"reporter\": {\n \"id\": 36771,\n \"name\": \"vboctoradmin\",\n \"real_name\": \"Victor Admin\",\n \"email\": \"vboctor@mantisbt.org\"\n },\n \"text\": \"Another note 2\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"type\": \"note\"\n }\n \n ]\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "22066", + "description": "The issue id" + } + ] + } + }, + "status": "Access denied for user GermanReporter. Reason: Not enough rights to update issues.", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "96", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Mon, 08 Jan 2018 00:04:43 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\"message\":\"Access denied for user GermanReporter. Reason: Not enough rights to update issues.\"}" + } + ] + }, + { + "name": "Update an issue", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"summary\": \"This is a test rest issue\",\n \"priority\": {\n \"name\": \"high\"\n },\n \"handler\": {\n \"name\": \"vboctor\"\n },\n \"status\": {\n \"name\": \"assigned\"\n },\n \"custom_fields\":\n [\n {\n \"field\": {\n \"name\": \"Email\"\n },\n \"value\": \"vboctor@example.com\"\n }\n ],\n \"notes\": [\n {\n \"id\": 54527,\n \"reporter\": {\n \"name\": \"vboctor\"\n },\n \"text\": \"This is a note from issue update.\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"type\": \"note\"\n },\n {\n \"reporter\": {\n \"name\": \"vboctor\"\n },\n \"text\": \"another note 1.\",\n \"view_state\": {\n \"name\": \"public\"\n },\n \"type\": \"note\"\n },\n {\n \"reporter\": {\n \"name\": \"vboctor\"\n },\n \"text\": \"Another note 2\",\n \"view_state\": {\n \"name\": \"public\"\n },\n \"type\": \"note\"\n }\n ]\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Update an exiting issue.\n\nAvailable since MantisBT 2.8.0." + }, + "response": [ + { + "name": "Update an issue (access denied)", + "originalRequest": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "value": "{{token}}", + "disabled": false + }, + { + "key": "Content-Type", + "value": "application/json", + "disabled": false + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": 22066,\n \"summary\": \"This is a test rest issue w/ handler 2\",\n \"priority\": {\n \"name\": \"high\"\n },\n \"handler\": {\n \t\"name\": \"vboctor\"\n },\n \"status\": {\n \t\"name\": \"assigned\"\n },\n \"custom_fields\":\n [\n {\n \"field\": {\n \"name\": \"Email\"\n },\n \"value\": \"vboctor@gmail.com\"\n }\n ],\n \"notes\": [\n {\n \"id\": 54527,\n \"reporter\": {\n \"id\": 36771,\n \"name\": \"vboctoradmin\",\n \"real_name\": \"Victor Admin\",\n \"email\": \"vboctor@mantisbt.org\"\n },\n \"text\": \"This is a note from issue update -- 2.\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"type\": \"note\"\n },\n {\n \"reporter\": {\n \"id\": 36771,\n \"name\": \"vboctoradmin\",\n \"real_name\": \"Victor Admin\",\n \"email\": \"vboctor@mantisbt.org\"\n },\n \"text\": \"another note 1.\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"type\": \"note\"\n },\n {\n \"reporter\": {\n \"id\": 36771,\n \"name\": \"vboctoradmin\",\n \"real_name\": \"Victor Admin\",\n \"email\": \"vboctor@mantisbt.org\"\n },\n \"text\": \"Another note 2\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"type\": \"note\"\n }\n \n ]\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "22066", + "description": "The issue id" + } + ] + } + }, + "status": "Access denied for user GermanReporter. Reason: Not enough rights to update issues.", + "code": 403, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "96", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Mon, 08 Jan 2018 00:04:43 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\"message\":\"Access denied for user GermanReporter. Reason: Not enough rights to update issues.\"}" + } + ] + }, + { + "name": "Delete an issue", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Deletes an issue given its id.\n\nAvailable since MantisBT 2.3.0." + }, + "response": [ + { + "name": "Delete an issue (success)", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}", + "disabled": false + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "22125", + "description": "The issue id" + } + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "plain", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Encoding", + "value": "gzip", + "name": "Content-Encoding", + "description": "" + }, + { + "key": "Content-Type", + "value": "", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 23:32:58 GMT", + "name": "Date", + "description": "" + }, + { + "key": "ETag", + "value": "5584552d93eb0f34ceecc1a65cca77d6c90a90df3f7f215b917606ccc06c2876", + "name": "ETag", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "Vary", + "value": "Accept-Encoding", + "name": "Vary", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "" + }, + { + "name": "Delete an issue (not found)", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}", + "disabled": false + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + } + }, + "status": "Issue #1234 not found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "89", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 23:35:27 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"message\": \"Issue #1234 not found\",\n \"code\": 1100,\n \"localized\": \"Issue 1234 not found.\"\n}" + } + ] + }, + { + "name": "Add attachments to issue", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"files\": [\n {\n \"name\": \"test.txt\",\n \"content\": \"VGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4NClRoaXMgaXMgYSBURVNULg0KVGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4=\"\n } \n ]\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/files", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "files" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Add attachments to an existing issue.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Create an issue note", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"text\": \"test note\",\n \"view_state\": {\n \"name\": \"public\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/notes", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "notes" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Create a simple note.\n\nAvailable since MantisBT 2.6.0." + }, + "response": [] + }, + { + "name": "Create an issue note with time tracking", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"text\": \"test note\",\n \"view_state\": {\n \"name\": \"public\"\n },\n \"time_tracking\": {\n \"duration\": \"00:15\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/notes", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "notes" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Create an issue note with time tracking information.\n\nAvailable since MantisBT 2.6.0. Time tracking support available in 2.11.0." + }, + "response": [] + }, + { + "name": "Create an issue note with attachment", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"text\": \"test note\",\n \"view_state\": {\n \"name\": \"public\"\n },\n \"time_tracking\": {\n \"duration\": \"00:15\"\n },\n \"files\": [\n {\n \"name\": \"test.txt\",\n \"content\": \"VGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4NClRoaXMgaXMgYSBURVNULg0KVGhpcyBpcyBhIFRFU1QuDQpUaGlzIGlzIGEgVEVTVC4=\"\n } \n ]\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/notes", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "notes" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Create an issue note with an associated attachment.\n\nAvailable since MantisBT 2.6.0. Attachments supported since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Delete an issue note", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"text\": \"This is a test rest issue\",\n \"view_state\": {\n \"name\": \"private\"\n },\n \"reporter\": {\n \"name\": \"vboctor\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/notes/:issue_note_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "notes", + ":issue_note_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + }, + { + "key": "issue_note_id", + "value": "12340", + "description": "The issue note id" + } + ] + }, + "description": "Delete an issue note.\n\nAvailable since MantisBT 2.6.0." + }, + "response": [] + }, + { + "name": "Monitor an issue", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/monitors", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "monitors" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Have logged in user monitor the specified issue.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Monitor an issue (for specified users)", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"users\": [\n {\n \"name\": \"vboctor-admin\"\n },\n {\n \"name_or_realname\": \"Victor Boctor\"\n }\n ]\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/monitors", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "monitors" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Have one or more users monitor the specified issue. The users can be identified via:\n\n- id - their user id.\n- name - their username\n- email - their email address\n- name_or_realname - a string that corresponds to their username or real name.\n\nIf user id is not specified, the logged in user id is added to the issue as the monitoring user.\n\nIf user id is not the same as logged in user id, a high access level is required which enables adding other users to the monitor list.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Attach a tag to issue", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"text\": \"test note\",\n \"view_state\": {\n \"name\": \"public\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/notes", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "notes" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Attach a tag to issue\n\nAvailable since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Detach a tag from an issue", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"text\": \"test note\",\n \"view_state\": {\n \"name\": \"public\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/notes", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "notes" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Detach a tag from an issue.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Attach a tag to issue copy", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"issue\": {\n \"id\": 1235\n },\n \"type\": {\n \"id\": 1,\n \"name\": \"related-to\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/relationships/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "relationships", + "" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + } + ] + }, + "description": "Add issue relationship to an issue. If a relationship with the target issue already exists, it will be updated.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [] + }, + { + "name": "Add an issue relatiobship", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"issue\": {\n\t\t\"id\": 22030\n\t},\n\t\"type\": {\n\t\t\"name\": \"related-to\"\n\t}\n}" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/relationships/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "relationships", + "" + ], + "variable": [ + { + "description": "The issue id", + "key": "issue_id", + "value": "1234" + } + ] + }, + "description": "Delete an issue relationship.\n\nAvailable since MantisBT 2.6.0." + }, + "response": [] + }, + { + "name": "Delete an issue relationship", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id/relationships/:relationship_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id", + "relationships", + ":relationship_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "1234", + "description": "The issue id" + }, + { + "key": "relationship_id", + "value": "", + "description": "The relationship id" + } + ] + }, + "description": "Delete an issue relationship.\n\nAvailable since MantisBT 2.6.0." + }, + "response": [] + } + ], + "description": "A set of REST API for handling issues.", + "protocolProfileBehavior": {} + }, + { + "name": "Projects", + "item": [ + { + "name": "Get all projects", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/projects/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + "" + ] + }, + "description": "Get all projects and sub-projects accessible to user.\n\nAvailable since MantisBT 2.5.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}", + "disabled": false + } + ], + "url": { + "raw": "{{url}}/api/rest/projects/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + "" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "51651", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 14 Jan 2018 18:01:42 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 14 Jan 2018 01:07:49 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"projects\": [\n {\n \"id\": 1,\n \"name\": \"mantisbt\",\n \"status\": {\n \"id\": 10,\n \"name\": \"development\",\n \"label\": \"development\"\n },\n \"description\": \"Mantis. Report problems with the actual bug tracker here. (Do not remove this account)\",\n \"enabled\": true,\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"access_level\": {\n \"id\": 90,\n \"name\": \"administrator\",\n \"label\": \"administrator\"\n },\n \"custom_fields\": [\n {\n \"id\": 8,\n \"name\": \"Email\",\n \"type\": \"email\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 1,\n \"name\": \"Version Enum\",\n \"type\": \"enum\",\n \"default_value\": \"\",\n \"possible_values\": \"|0.19.0a2|0.19.0a1|0.19.0|0.18.3|0.18.2|0.18.1|0.18.0rc2|0.18.0a5|0.18.0a4|0.18.0a3|0.18.0a2|0.18.0a1\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 55,\n \"name\": \"developer\",\n \"label\": \"developer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 5,\n \"name\": \"Floaty\",\n \"type\": \"float\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 6,\n \"name\": \"Listy\",\n \"type\": \"multilist\",\n \"default_value\": \"\",\n \"possible_values\": \"a|b|c|d|e|f|g\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": false,\n \"display_closed\": false,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 3,\n \"name\": \"Place in Queue\",\n \"type\": \"float\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": false,\n \"display_closed\": false,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 10,\n \"name\": \"SomeCheckbox\",\n \"type\": \"checkbox\",\n \"default_value\": \"\",\n \"possible_values\": \"Test|Test2\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 7,\n \"name\": \"SomeDate\",\n \"type\": \"date\",\n \"default_value\": \"{+2 days}\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 25,\n \"name\": \"reporter\",\n \"label\": \"reporter\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": false,\n \"display_closed\": false,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 11,\n \"name\": \"SomeRadio\",\n \"type\": \"9\",\n \"default_value\": \"\",\n \"possible_values\": \"Radio1|Radio2\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 9,\n \"name\": \"SomeTextArea\",\n \"type\": \"textarea\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n },\n {\n \"id\": 4,\n \"name\": \"The City\",\n \"type\": \"string\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 25,\n \"name\": \"reporter\",\n \"label\": \"reporter\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": true,\n \"require_update\": true,\n \"require_resolved\": true,\n \"require_closed\": true\n }\n ],\n \"versions\": [\n {\n \"id\": 258,\n \"name\": \"2.0.x\",\n \"description\": \"\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T18:45:04-04:00\"\n },\n {\n \"id\": 257,\n \"name\": \"1.3.x\",\n \"description\": \"\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T18:44:00-04:00\"\n },\n {\n \"id\": 256,\n \"name\": \"2.0.0-beta.3\",\n \"description\": \"\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T11:31:00-04:00\"\n },\n {\n \"id\": 255,\n \"name\": \"1.3.2\",\n \"description\": \"\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T11:30:00-04:00\"\n },\n {\n \"id\": 254,\n \"name\": \"2.0.0-beta.2\",\n \"description\": \"\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2016-08-27T04:00:00-04:00\"\n },\n {\n \"id\": 253,\n \"name\": \"1.3.1\",\n \"description\": \"\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2016-08-27T03:00:00-04:00\"\n },\n {\n \"id\": 240,\n \"name\": \"1.2.20\",\n \"description\": \"MantisBT 1.2.20 is the final maintenance and security release for the 1.2.x series. \\r\\nAll installations that are currently running any 1.2.x version are strongly advised to upgrade. \\r\\n\\r\\nThis release resolves 3 security and a couple of PHP 7 compatibility issues.\\r\\n\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2016-08-14T18:00:00-04:00\"\n },\n {\n \"id\": 243,\n \"name\": \"2.0.0-beta.1\",\n \"description\": \"MantisBT 2.0.0 release focuses on improvements to the UI compared to 1.3.x release. As of this release, the db schema is the same between 1.3.x and 2.0.0-beta.1, enabling users to easily try 2.0.0-beta.1 and provide feedback.\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2016-07-19T14:15:00-04:00\"\n },\n {\n \"id\": 250,\n \"name\": \"1.3.0\",\n \"description\": \"MantisBT 1.3.0 stable release\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2016-07-09T19:26:00-04:00\"\n }\n ],\n \"categories\": [\n {\n \"id\": 2,\n \"name\": \"administration\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n },\n {\n \"id\": 3,\n \"name\": \"api soap\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n },\n {\n \"id\": 71,\n \"name\": \"attachments\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n },\n {\n \"id\": 70,\n \"name\": \"auth openid\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n },\n {\n \"id\": 4,\n \"name\": \"authentication\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n },\n {\n \"id\": 132,\n \"name\": \"authorization\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n },\n {\n \"id\": 5,\n \"name\": \"bugtracker\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n },\n {\n \"id\": 6,\n \"name\": \"change log\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n }\n }\n ],\n \"subProjects\": [\n {\n \"id\": 31,\n \"name\": \"SubProject1\"\n }\n ]\n },\n {\n \"id\": 20,\n \"name\": \"Mylyn Connector\",\n \"status\": {\n \"id\": 50,\n \"name\": \"stable\",\n \"label\": \"stable\"\n },\n \"description\": \"Eclipse Mylyn Connector for MantisBT\",\n \"enabled\": true,\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"access_level\": {\n \"id\": 90,\n \"name\": \"administrator\",\n \"label\": \"administrator\"\n },\n \"custom_fields\": [],\n \"versions\": [\n {\n \"id\": 151,\n \"name\": \"Backlog\",\n \"description\": \"Issues accepted but not yet assigned to a release.\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2037-12-30T19:00:00-05:00\"\n },\n {\n \"id\": 237,\n \"name\": \"3.11.0\",\n \"description\": \"\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2014-08-31T17:00:00-04:00\"\n }\n ],\n \"categories\": [\n {\n \"id\": 75,\n \"name\": \"Build\",\n \"project\": {\n \"id\": 20,\n \"name\": \"Mylyn Connector\"\n }\n },\n {\n \"id\": 76,\n \"name\": \"Core\",\n \"project\": {\n \"id\": 20,\n \"name\": \"Mylyn Connector\"\n }\n },\n {\n \"id\": 1,\n \"name\": \"General\",\n \"project\": {\n \"id\": 0,\n \"name\": null\n }\n },\n {\n \"id\": 73,\n \"name\": \"Infrastructure\",\n \"project\": {\n \"id\": 20,\n \"name\": \"Mylyn Connector\"\n }\n },\n {\n \"id\": 77,\n \"name\": \"Tests\",\n \"project\": {\n \"id\": 20,\n \"name\": \"Mylyn Connector\"\n }\n },\n {\n \"id\": 78,\n \"name\": \"User Interface\",\n \"project\": {\n \"id\": 20,\n \"name\": \"Mylyn Connector\"\n }\n }\n ]\n }\n ]\n}" + } + ] + }, + { + "name": "Get a project", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/projects/:project_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + ":project_id" + ], + "variable": [ + { + "key": "project_id", + "value": "1", + "description": "The project id" + } + ] + }, + "description": "Get a project given its id.\n\nAvailable since MantisBT 2.14.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/projects/1", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + "1" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "51651", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 14 Jan 2018 18:01:42 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 14 Jan 2018 01:07:49 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"projects\": [\n {\n \"id\": 1,\n \"name\": \"mantisbt\",\n \"status\": {\n \"id\": 10,\n \"name\": \"development\",\n \"label\": \"development\"\n },\n \"description\": \"Mantis Project\",\n \"enabled\": true,\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"access_level\": {\n \"id\": 90,\n \"name\": \"administrator\",\n \"label\": \"administrator\"\n },\n \"custom_fields\": [\n {\n \"id\": 8,\n \"name\": \"Email\",\n \"type\": \"email\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n }\n ],\n \"versions\": [\n {\n \"id\": 258,\n \"name\": \"2.0.x\",\n \"description\": \"\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T18:45:04-04:00\"\n }\n ],\n \"subProjects\": [\n {\n \"id\": 31,\n \"name\": \"SubProject1\"\n }\n ]\n }\n ]\n}" + } + ] + }, + { + "name": "Create a project", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": 1,\n \"name\": \"_new2\",\n \"status\": {\n \"id\": 10,\n \"name\": \"development\",\n \"label\": \"development\"\n },\n \"description\": \"Mantis. Report problems with the actual bug tracker here. (Do not remove this account)\",\n \"enabled\": true,\n \"file_path\": \"/tmp/\",\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n }\n}" + }, + "url": { + "raw": "{{url}}/api/rest/projects/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + "" + ] + }, + "description": "Create a project.\n\nAvailable since MantisBT 2.17.0." + }, + "response": [] + }, + { + "name": "Update a project", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"id\": 33,\n \"name\": \"_new2bx\",\n \"enabled\": false\n}" + }, + "url": { + "raw": "{{url}}/api/rest/projects/:project_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + ":project_id" + ], + "variable": [ + { + "key": "project_id", + "value": "12" + } + ] + }, + "description": "Update a project.\n\nAvailable since MantisBT 2.17.0." + }, + "response": [] + }, + { + "name": "Delete a project", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/projects/:project_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + ":project_id" + ], + "variable": [ + { + "key": "project_id", + "value": "12", + "description": "The project id" + } + ] + }, + "description": "Delete a project given its id.\n\nAvailable since MantisBT 2.17.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/projects/1", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + "1" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "51651", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 14 Jan 2018 18:01:42 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 14 Jan 2018 01:07:49 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "Custom header" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "Custom header" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "Custom header" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"projects\": [\n {\n \"id\": 1,\n \"name\": \"mantisbt\",\n \"status\": {\n \"id\": 10,\n \"name\": \"development\",\n \"label\": \"development\"\n },\n \"description\": \"Mantis Project\",\n \"enabled\": true,\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"access_level\": {\n \"id\": 90,\n \"name\": \"administrator\",\n \"label\": \"administrator\"\n },\n \"custom_fields\": [\n {\n \"id\": 8,\n \"name\": \"Email\",\n \"type\": \"email\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n }\n ],\n \"versions\": [\n {\n \"id\": 258,\n \"name\": \"2.0.x\",\n \"description\": \"\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T18:45:04-04:00\"\n }\n ],\n \"subProjects\": [\n {\n \"id\": 31,\n \"name\": \"SubProject1\"\n }\n ]\n }\n ]\n}" + } + ] + }, + { + "name": "Add a sub-project", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"project\": {\n \"name\": \"SubProject1\"\n },\n \"inherit_parent\": true\n}" + }, + "url": { + "raw": "{{url}}/api/rest/projects/:project_id/subprojects", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + ":project_id", + "subprojects" + ], + "variable": [ + { + "key": "project_id", + "value": "12", + "description": "The project id" + } + ] + }, + "description": "Add a subproject to the specified project id.\n\nAvailable since MantisBT 2.20.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/projects/1", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + "1" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "51651", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 14 Jan 2018 18:01:42 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 14 Jan 2018 01:07:49 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "Custom header" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "Custom header" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "Custom header" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"projects\": [\n {\n \"id\": 1,\n \"name\": \"mantisbt\",\n \"status\": {\n \"id\": 10,\n \"name\": \"development\",\n \"label\": \"development\"\n },\n \"description\": \"Mantis Project\",\n \"enabled\": true,\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"access_level\": {\n \"id\": 90,\n \"name\": \"administrator\",\n \"label\": \"administrator\"\n },\n \"custom_fields\": [\n {\n \"id\": 8,\n \"name\": \"Email\",\n \"type\": \"email\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n }\n ],\n \"versions\": [\n {\n \"id\": 258,\n \"name\": \"2.0.x\",\n \"description\": \"\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T18:45:04-04:00\"\n }\n ],\n \"subProjects\": [\n {\n \"id\": 31,\n \"name\": \"SubProject1\"\n }\n ]\n }\n ]\n}" + } + ] + }, + { + "name": "Update a subproject", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"project\": {\n \"name\": \"Subproject1\"\n },\n \"inherit_parent\": true\n}" + }, + "url": { + "raw": "{{url}}/api/rest/projects/:project_id/subprojects/:subproject_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + ":project_id", + "subprojects", + ":subproject_id" + ], + "variable": [ + { + "key": "project_id", + "value": "12" + }, + { + "key": "subproject_id", + "value": "34" + } + ] + }, + "description": "Update the subproject relationship properties.\n\nAvailable since MantisBT 2.20.0." + }, + "response": [] + }, + { + "name": "Delete a sub-project", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/projects/:project_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + ":project_id" + ], + "variable": [ + { + "key": "project_id", + "value": "12", + "description": "The project id" + } + ] + }, + "description": "Deletes a sub-project from parent project. Note that this doesn't delete data associated with sub-project.\n\nAvailable since MantisBT 2.20.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/projects/1", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + "1" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "51651", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 14 Jan 2018 18:01:42 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 14 Jan 2018 01:07:49 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "Custom header" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "Custom header" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "Custom header" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"projects\": [\n {\n \"id\": 1,\n \"name\": \"mantisbt\",\n \"status\": {\n \"id\": 10,\n \"name\": \"development\",\n \"label\": \"development\"\n },\n \"description\": \"Mantis Project\",\n \"enabled\": true,\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"access_level\": {\n \"id\": 90,\n \"name\": \"administrator\",\n \"label\": \"administrator\"\n },\n \"custom_fields\": [\n {\n \"id\": 8,\n \"name\": \"Email\",\n \"type\": \"email\",\n \"default_value\": \"\",\n \"possible_values\": \"\",\n \"valid_regexp\": \"\",\n \"length_min\": 0,\n \"length_max\": 0,\n \"access_level_r\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"access_level_rw\": {\n \"id\": 10,\n \"name\": \"viewer\",\n \"label\": \"viewer\"\n },\n \"display_report\": true,\n \"display_update\": true,\n \"display_resolved\": true,\n \"display_closed\": true,\n \"require_report\": false,\n \"require_update\": false,\n \"require_resolved\": false,\n \"require_closed\": false\n }\n ],\n \"versions\": [\n {\n \"id\": 258,\n \"name\": \"2.0.x\",\n \"description\": \"\",\n \"released\": false,\n \"obsolete\": false,\n \"timestamp\": \"2016-10-02T18:45:04-04:00\"\n }\n ],\n \"subProjects\": [\n {\n \"id\": 31,\n \"name\": \"SubProject1\"\n }\n ]\n }\n ]\n}" + } + ] + }, + { + "name": "Create a project version", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"v1.0.0\",\n \"description\": \"Major new version\",\n \"released\": true,\n \"obsolete\": false,\n \"timestamp\": \"2020-02-20\"\n}" + }, + "url": { + "raw": "{{url}}/api/rest/projects/:project_id/versions/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "projects", + ":project_id", + "versions", + "" + ], + "variable": [ + { + "description": "The project id", + "key": "project_id", + "value": "12" + } + ] + }, + "description": "Add a project version.\n\nOnly name field is required. Timestamp accepts date formats that can be parsed by PHP strtotime(). \n\nAvailable since MantisBT 2.15.0." + }, + "response": [] + } + ], + "description": "A set of REST APIs for handling projects.", + "protocolProfileBehavior": {} + }, + { + "name": "Filters", + "item": [ + { + "name": "Get all filters", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/filters", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "filters" + ] + }, + "description": "Get all definitions for filters accessible to logged in user.\n\nAvailable since MantisBT 2.10.0." + }, + "response": [] + }, + { + "name": "Get a filter", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/filters/:filter_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "filters", + ":filter_id" + ], + "variable": [ + { + "key": "filter_id", + "value": "123", + "description": "The filter id" + } + ] + }, + "description": "Gets the definition of a filter given its id.\n\nAvailable since MantisBT 2.10.0" + }, + "response": [ + { + "name": "Filter by Id", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/filters/:filter_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "filters", + ":filter_id" + ], + "variable": [ + { + "key": "filter_id", + "value": "9222" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "432", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Mon, 08 Jan 2018 00:35:10 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctor", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"filters\": [\n {\n \"id\": 1,\n \"name\": \"Commented On\",\n \"owner\": {\n \"id\": 1,\n \"name\": \"vboctor\"\n },\n \"public\": true,\n \"project\": {\n \"id\": 0,\n \"name\": \"All Projects\"\n },\n \"criteria\": {\n \"commented\": [\n {\n \"id\": \"[myself]\"\n }\n ],\n \"hide_status\": {\n \"id\": 80,\n \"name\": \"resolved\",\n \"label\": \"resolved\",\n \"color\": \"#d2f5b0\"\n }\n },\n \"url\": \"http://localhost/mantisbt/search.php?project_id=1¬e_user_id=-1&sticky=on&sort=last_updated&dir=DESC&per_page=50&hide_status=80&match_type=0\"\n }\n ]\n}" + } + ] + }, + { + "name": "Delete a filter", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/filters/:filter_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "filters", + ":filter_id" + ], + "variable": [ + { + "key": "filter_id", + "value": "1", + "description": "The filter id" + } + ] + }, + "description": "Delete a filter definition given its id. This is usable for user defined filters and not for standard filters.\n\nAvailable since MantisBT 2.10.0." + }, + "response": [] + } + ], + "description": "A set of REST APIs for handling filters.", + "protocolProfileBehavior": {} + }, + { + "name": "Users", + "item": [ + { + "name": "Get My User Info", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/users/me", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + "me" + ] + }, + "description": "Get information about logged in user." + }, + "response": [] + }, + { + "name": "Create a user", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"vtest12\",\n \"password\": \"p@ssw0rd\",\n \"real_name\": \"Victor Test12\",\n \"email\": \"victor12@example2.com\",\n \"access_level\": { \"name\": \"updater\" },\n \"enabled\": true,\n \"protected\": false\n}" + }, + "url": { + "raw": "{{url}}/api/rest/users/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + "" + ] + }, + "description": "Creates a user.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"testuser\",\n \"password\": \"p@ssw0rd\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"victor@yet-another-domain.com\",\n \"access_level\": { \"name\": \"updater\" },\n \"enabled\": false,\n \"protected\": false\n}" + }, + "url": { + "raw": "{{url}}/api/rest/users/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + "" + ] + } + }, + "status": "User created with id 41317", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "924", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sat, 13 Jan 2018 22:26:29 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sat, 13 Jan 2018 06:08:09 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"user\": {\n \"id\": 1000,\n \"name\": \"testuser\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"victor@yet-another-domain.com\",\n \"language\": \"english\",\n \"timezone\": \"America/Los_Angeles\",\n \"access_level\": {\n \"id\": 40,\n \"name\": \"updater\",\n \"label\": \"updater\"\n },\n \"projects\": [\n {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n {\n \"id\": 12,\n \"name\": \"MantisTouch\"\n },\n {\n \"id\": 20,\n \"name\": \"Mylyn Connector\"\n },\n {\n \"id\": 25,\n \"name\": \"Plugin - agileMantis\"\n },\n {\n \"id\": 11,\n \"name\": \"Plugin - CsvImport\"\n },\n {\n \"id\": 21,\n \"name\": \"Plugin - CustomerManagement\"\n },\n {\n \"id\": 10,\n \"name\": \"Plugin - EmailReporting\"\n },\n {\n \"id\": 15,\n \"name\": \"Plugin - FilterPageEdit\"\n },\n {\n \"id\": 14,\n \"name\": \"Plugin - InlineColumnConfiguration\"\n },\n {\n \"id\": 16,\n \"name\": \"Plugin - LinkedCustomFields\"\n },\n {\n \"id\": 9,\n \"name\": \"Plugin - MachineAD\"\n },\n {\n \"id\": 22,\n \"name\": \"Plugin - MantisTouchRedirect\"\n },\n {\n \"id\": 6,\n \"name\": \"Plugin - RecurrCall\"\n },\n {\n \"id\": 13,\n \"name\": \"Plugin - RelatedIssuesExport\"\n },\n {\n \"id\": 7,\n \"name\": \"Plugin - Reminder\"\n },\n {\n \"id\": 8,\n \"name\": \"Plugin - Tasks\"\n },\n {\n \"id\": 18,\n \"name\": \"Plugin - Time Tracking\"\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Create a user (minimal)", + "request": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"vtest10\",\n \"password\": \"p@ssw0rd\",\n \"real_name\": \"Victor Test10\",\n \"email\": \"victor@example.com\",\n \"access_level\": { \"name\": \"updater\" },\n \"enabled\": true,\n \"protected\": false\n}" + }, + "url": { + "raw": "{{url}}/api/rest/users/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + "" + ] + }, + "description": "Creates a user.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"testuser\"\n}" + }, + "url": { + "raw": "{{url}}/api/rest/users/", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + "" + ] + } + }, + "status": "User created with id 41318", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "855", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sat, 13 Jan 2018 22:28:35 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sat, 13 Jan 2018 06:08:09 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"user\": {\n \"id\": 1000,\n \"name\": \"testuser\",\n \"language\": \"english\",\n \"timezone\": \"America/Los_Angeles\",\n \"access_level\": {\n \"id\": 25,\n \"name\": \"reporter\",\n \"label\": \"reporter\"\n },\n \"projects\": [\n {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n {\n \"id\": 12,\n \"name\": \"MantisTouch\"\n },\n {\n \"id\": 20,\n \"name\": \"Mylyn Connector\"\n },\n {\n \"id\": 25,\n \"name\": \"Plugin - agileMantis\"\n },\n {\n \"id\": 11,\n \"name\": \"Plugin - CsvImport\"\n },\n {\n \"id\": 21,\n \"name\": \"Plugin - CustomerManagement\"\n },\n {\n \"id\": 10,\n \"name\": \"Plugin - EmailReporting\"\n },\n {\n \"id\": 15,\n \"name\": \"Plugin - FilterPageEdit\"\n },\n {\n \"id\": 14,\n \"name\": \"Plugin - InlineColumnConfiguration\"\n },\n {\n \"id\": 16,\n \"name\": \"Plugin - LinkedCustomFields\"\n },\n {\n \"id\": 9,\n \"name\": \"Plugin - MachineAD\"\n },\n {\n \"id\": 22,\n \"name\": \"Plugin - MantisTouchRedirect\"\n },\n {\n \"id\": 6,\n \"name\": \"Plugin - RecurrCall\"\n },\n {\n \"id\": 13,\n \"name\": \"Plugin - RelatedIssuesExport\"\n },\n {\n \"id\": 7,\n \"name\": \"Plugin - Reminder\"\n },\n {\n \"id\": 8,\n \"name\": \"Plugin - Tasks\"\n },\n {\n \"id\": 18,\n \"name\": \"Plugin - Time Tracking\"\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Delete a user", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/users/:user_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + ":user_id" + ], + "variable": [ + { + "key": "user_id", + "value": "123", + "description": "The user id to delete" + } + ] + }, + "description": "Deletes the specified user.\n\nAvailable since MantisBT 2.11.0." + }, + "response": [ + { + "name": "Success", + "originalRequest": { + "method": "DELETE", + "header": [ + { + "key": "Authorization", + "value": "{{token}}", + "disabled": false + } + ], + "body": { + "mode": "formdata", + "formdata": [] + }, + "url": { + "raw": "{{url}}/api/rest/users/41309", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + "41309" + ] + } + }, + "status": "No Content", + "code": 204, + "_postman_previewlanguage": "plain", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Encoding", + "value": "gzip", + "name": "Content-Encoding", + "description": "" + }, + { + "key": "Content-Type", + "value": "", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 14 Jan 2018 00:28:10 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sat, 13 Jan 2018 06:08:09 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "Vary", + "value": "Accept-Encoding", + "name": "Vary", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "" + } + ] + }, + { + "name": "Reset user password", + "request": { + "method": "PUT", + "header": [], + "url": { + "raw": "{{url}}/api/rest/users/:user_id/reset", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "users", + ":user_id", + "reset" + ], + "variable": [ + { + "key": "user_id", + "value": "123", + "description": "The user id to reset password for" + } + ] + }, + "description": "Resets password for the specific user.\n\nAvailable since MantisBT 2.24.0." + }, + "response": [] + } + ], + "description": "A set of REST APIs for handling users.", + "protocolProfileBehavior": {} + }, + { + "name": "Config", + "item": [ + { + "name": "Get Configuration Option", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/config?option=csv_separator", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "config" + ], + "query": [ + { + "key": "option", + "value": "csv_separator" + } + ] + }, + "description": "Get specified config option. If an option doesn't exist or is marked as private, it will be silently skipped.\n\nSome config options get extra handling to provide more useful response. For example:\n\n- Enumerations - The enumeration is parsed into an array of objects, each object including id, name and localized label.\n\nFor list of possible config options to retrieve see the following file:\nhttps://github.com/mantisbt/mantisbt/blob/master/config_defaults_inc.php\n\nWhen requesting an option, don't supply the `$g_` prefix for the string name. Only options that are listed as public can be retrieved via this API. Search the `config_defaults_inc.php` file for `$g_public_config_names` to see the list of public options.\n\nAvailable since MantisBT 2.3.0." + }, + "response": [ + { + "name": "Config Get", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/config?option=csv_separator", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "config" + ], + "query": [ + { + "key": "option", + "value": "csv_separator" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "52", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:03:40 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "EvilMan", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\"configs\":[{\"option\":\"csv_separator\",\"value\":\",\"}]}" + } + ] + }, + { + "name": "Get Multiple Configuration Options", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/config?option[]=crypto_master_salt&option[]=csv_separator&option[]=status_colors&option[]=does_not_exist&option[]=status_enum_string", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "config" + ], + "query": [ + { + "key": "option[]", + "value": "crypto_master_salt" + }, + { + "key": "option[]", + "value": "csv_separator" + }, + { + "key": "option[]", + "value": "status_colors" + }, + { + "key": "option[]", + "value": "does_not_exist" + }, + { + "key": "option[]", + "value": "status_enum_string" + } + ] + }, + "description": "Get specified config options. If an option doesn't exist or is marked as private, it will be silently skipped.\n\nSome config options get extra handling to provide more useful response. For example:\n\n- Enumerations - The enumeration is parsed into an array of objects, each object including id, name and localized label.\n\nFor list of possible config options to retrieve see the following file:\nhttps://github.com/mantisbt/mantisbt/blob/master/config_defaults_inc.php\n\nWhen requesting an option, don't supply the `$g_` prefix for the string name. Only options that are listed as public can be retrieved via this API. Search the `config_defaults_inc.php` file for `$g_public_config_names` to see the list of public options.\n\nAvailable since MantisBT 2.3.0." + }, + "response": [ + { + "name": "Config Get Multiple", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/config?option[]=crypto_master_salt&option[]=csv_separator&option[]=status_colors&option[]=does_not_exist&option[]=status_enum_string", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "config" + ], + "query": [ + { + "key": "option[]", + "value": "crypto_master_salt" + }, + { + "key": "option[]", + "value": "csv_separator" + }, + { + "key": "option[]", + "value": "status_colors" + }, + { + "key": "option[]", + "value": "does_not_exist" + }, + { + "key": "option[]", + "value": "status_enum_string" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "618", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:04:50 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "EvilMan", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\"configs\":[{\"option\":\"csv_separator\",\"value\":\",\"},{\"option\":\"status_colors\",\"value\":{\"new\":\"#fcbdbd\",\"feedback\":\"#e3b7eb\",\"acknowledged\":\"#ffcd85\",\"confirmed\":\"#fff494\",\"assigned\":\"#c2dfff\",\"resolved\":\"#d2f5b0\",\"closed\":\"#c9ccc4\"}},{\"option\":\"status_enum_string\",\"value\":[{\"id\":10,\"name\":\"new\",\"label\":\"neu\"},{\"id\":20,\"name\":\"feedback\",\"label\":\"R\\u00fcckmeldung\"},{\"id\":30,\"name\":\"acknowledged\",\"label\":\"anerkannt\"},{\"id\":40,\"name\":\"confirmed\",\"label\":\"best\\u00e4tigt\"},{\"id\":50,\"name\":\"assigned\",\"label\":\"zugewiesen\"},{\"id\":80,\"name\":\"resolved\",\"label\":\"erledigt\"},{\"id\":90,\"name\":\"closed\",\"label\":\"geschlossen\"}]}]}" + } + ] + } + ], + "description": "A set of REST APIs for handling configurations.", + "protocolProfileBehavior": {} + }, + { + "name": "Lang", + "item": [ + { + "name": "Get a localized string", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/lang?string=all_projects", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "lang" + ], + "query": [ + { + "key": "string", + "value": "all_projects" + } + ] + }, + "description": "Get the specified localized string. If string doesn't exist, it will be silently skipped.\n\nFor list of possible strings to retrieve see the following file:\nhttps://github.com/mantisbt/mantisbt/blob/master/lang/strings_english.txt\n\nWhen requesting a string, don't supply the `$s_` prefix for the string name." + }, + "response": [ + { + "name": "success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/lang?string=all_projects", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "lang" + ], + "query": [ + { + "key": "string", + "value": "all_projects" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "85", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Mon, 08 Jan 2018 00:13:07 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "GermanReporter", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\"strings\":[{\"name\":\"all_projects\",\"localized\":\"Alle Projekte\"}],\"language\":\"german\"}" + } + ] + }, + { + "name": "Get multiple localized strings", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/lang?string[]=all_projects&string[]=does_not_exist&string[]=status&string[]=move_bugs&string[]=status_enum_string", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "lang" + ], + "query": [ + { + "key": "string[]", + "value": "all_projects" + }, + { + "key": "string[]", + "value": "does_not_exist" + }, + { + "key": "string[]", + "value": "status" + }, + { + "key": "string[]", + "value": "move_bugs" + }, + { + "key": "string[]", + "value": "status_enum_string" + } + ] + }, + "description": "Get the specified localized strings. If a string doesn't exist, it will be silently skipped.\n\nFor list of possible strings to retrieve see the following file:\nhttps://github.com/mantisbt/mantisbt/blob/master/lang/strings_english.txt\n\nWhen requesting a string, don't supply the `$s_` prefix for the string name." + }, + "response": [ + { + "name": "success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/lang?string[]=all_projects&string[]=does_not_exist&string[]=status&string[]=move_bugs&string[]=status_enum_string", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "lang" + ], + "query": [ + { + "key": "string[]", + "value": "all_projects" + }, + { + "key": "string[]", + "value": "does_not_exist" + }, + { + "key": "string[]", + "value": "status" + }, + { + "key": "string[]", + "value": "move_bugs" + }, + { + "key": "string[]", + "value": "status_enum_string" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "" + }, + { + "key": "Content-Length", + "value": "322", + "name": "Content-Length", + "description": "" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "" + }, + { + "key": "Date", + "value": "Mon, 08 Jan 2018 00:13:39 GMT", + "name": "Date", + "description": "" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "" + }, + { + "key": "X-Mantis-Username", + "value": "GermanReporter", + "name": "X-Mantis-Username", + "description": "" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\"strings\":[{\"name\":\"all_projects\",\"localized\":\"Alle Projekte\"},{\"name\":\"status\",\"localized\":\"Status\"},{\"name\":\"move_bugs\",\"localized\":\"Eintrag verschieben\"},{\"name\":\"status_enum_string\",\"localized\":\"10:neu,20:R\\u00fcckmeldung,30:anerkannt,40:best\\u00e4tigt,50:zugewiesen,80:erledigt,90:geschlossen\"}],\"language\":\"german\"}" + } + ] + } + ], + "description": "A set of APIs for handling localized strings.", + "protocolProfileBehavior": {} + }, + { + "name": "Pages", + "item": [ + { + "name": "Get Issue View Page", + "request": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/pages/issues/:issue_id/view", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "pages", + "issues", + ":issue_id", + "view" + ], + "variable": [ + { + "key": "issue_id", + "value": "22061", + "description": "The issue id" + } + ] + }, + "description": "IN DEVELOPMENT - NOT RELEASED YET!\n\nGet information necessary to render an issue view page for the specified issue." + }, + "response": [ + { + "name": "Not Found", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "2192022", + "description": "The issue id" + } + ] + } + }, + "status": "Issue #2192022 not found", + "code": 404, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "89", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:53:57 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"message\": \"Issue #200000 not found\",\n \"code\": 1100,\n \"localized\": \"Issue 200000 not found.\"\n}" + }, + { + "name": "Success", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Authorization", + "value": "{{token}}" + } + ], + "url": { + "raw": "{{url}}/api/rest/issues/:issue_id", + "host": [ + "{{url}}" + ], + "path": [ + "api", + "rest", + "issues", + ":issue_id" + ], + "variable": [ + { + "key": "issue_id", + "value": "21920", + "description": "The issue id" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Cache-Control", + "value": "private, max-age=10800", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Cache-Control", + "value": "no-store, no-cache, must-revalidate, max-age=0", + "name": "Cache-Control", + "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds" + }, + { + "key": "Connection", + "value": "Keep-Alive", + "name": "Connection", + "description": "Options that are desired for the connection" + }, + { + "key": "Content-Length", + "value": "1509", + "name": "Content-Length", + "description": "The length of the response body in octets (8-bit bytes)" + }, + { + "key": "Content-Type", + "value": "application/json;charset=utf-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Sun, 07 Jan 2018 22:43:16 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "ETag", + "value": "1625146a518db1112fdce101781fae3f6b5b936ec3b02ab77a78705489cfee67", + "name": "ETag", + "description": "An identifier for a specific version of a resource, often a message digest" + }, + { + "key": "Keep-Alive", + "value": "timeout=5, max=100", + "name": "Keep-Alive", + "description": "Custom header" + }, + { + "key": "Last-Modified", + "value": "Sun, 31 Dec 2017 19:58:54 GMT", + "name": "Last-Modified", + "description": "The last modified date for the requested object, in RFC 2822 format" + }, + { + "key": "Server", + "value": "Apache", + "name": "Server", + "description": "A name for the server" + }, + { + "key": "X-Mantis-LoginMethod", + "value": "api-token", + "name": "X-Mantis-LoginMethod", + "description": "Custom header" + }, + { + "key": "X-Mantis-Username", + "value": "vboctoradmin", + "name": "X-Mantis-Username", + "description": "Custom header" + }, + { + "key": "X-Mantis-Version", + "value": "2.11.0-dev", + "name": "X-Mantis-Version", + "description": "Custom header" + }, + { + "key": "X-Powered-By", + "value": "PHP/7.1.8", + "name": "X-Powered-By", + "description": "Specifies the technology (ASP.NET, PHP, JBoss, e.g.) supporting the web application (version details are often in X-Runtime, X-Version, or X-AspNet-Version)" + } + ], + "cookie": [ + { + "expires": "Mon Jan 18 2038 19:14:07 GMT-0800 (PST)", + "httpOnly": true, + "domain": "localhost", + "path": "/", + "secure": false, + "value": "be0edb4fdc0a4378b2ef8cbc368d7e1f", + "key": "PHPSESSID" + } + ], + "body": "{\n \"issues\": [\n {\n \"id\": 1,\n \"summary\": \"Sample issue title\",\n \"description\": \"Sample issue description\",\n \"project\": {\n \"id\": 1,\n \"name\": \"mantisbt\"\n },\n \"category\": {\n \"id\": 135,\n \"name\": \"General\"\n },\n \"reporter\": {\n \"id\": 1,\n \"name\": \"vboctor\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"vboctor@example.com\"\n },\n \"status\": {\n \"id\": 10,\n \"name\": \"new\",\n \"label\": \"new\",\n \"color\": \"#fcbdbd\"\n },\n \"resolution\": {\n \"id\": 10,\n \"name\": \"open\",\n \"label\": \"open\"\n },\n \"view_state\": {\n \"id\": 10,\n \"name\": \"public\",\n \"label\": \"public\"\n },\n \"priority\": {\n \"id\": 30,\n \"name\": \"normal\",\n \"label\": \"normal\"\n },\n \"severity\": {\n \"id\": 50,\n \"name\": \"minor\",\n \"label\": \"minor\"\n },\n \"reproducibility\": {\n \"id\": 70,\n \"name\": \"have not tried\",\n \"label\": \"have not tried\"\n },\n \"sticky\": false,\n \"created_at\": \"2017-04-23T13:12:28-04:00\",\n \"updated_at\": \"2017-04-23T13:12:28-04:00\",\n \"custom_fields\": [\n {\n \"field\": {\n \"id\": 4,\n \"name\": \"The City\"\n },\n \"value\": \"Seattle\"\n }\n ],\n \"history\": [\n {\n \"created_at\": \"2017-04-23T13:12:28-04:00\",\n \"user\": {\n \"id\": 36771,\n \"name\": \"vboctor\",\n \"real_name\": \"Victor Boctor\",\n \"email\": \"vboctor@example.com\"\n },\n \"type\": {\n \"id\": 1,\n \"name\": \"issue-new\"\n },\n \"message\": \"New Issue\"\n }\n ]\n }\n ]\n}" + } + ] + } + ], + "protocolProfileBehavior": {} + } + ], + "protocolProfileBehavior": {} +} \ No newline at end of file diff --git a/api/rest/env.postman_environment.json b/api/rest/env.postman_environment.json new file mode 100644 index 00000000000..11d15a19488 --- /dev/null +++ b/api/rest/env.postman_environment.json @@ -0,0 +1,22 @@ +{ + "id": "c75cdc8b-2a71-7730-c13d-e84481976520", + "name": "mantisbt-env", + "values": [ + { + "enabled": true, + "key": "url", + "value": "http://localhost/mantisbt", + "type": "text" + }, + { + "enabled": true, + "key": "token", + "value": "replace-with-user-api-token", + "type": "text" + } + ], + "timestamp": 1515468512996, + "_postman_variable_scope": "environment", + "_postman_exported_at": "2019-08-20T06:04:11.392Z", + "_postman_exported_using": "Postman/5.3.2" +} \ No newline at end of file diff --git a/api/rest/restcore/users_rest.php b/api/rest/restcore/users_rest.php index f00a4ebb16a..0f090b85380 100644 --- a/api/rest/restcore/users_rest.php +++ b/api/rest/restcore/users_rest.php @@ -107,7 +107,7 @@ function rest_user_reset_password( \Slim\Http\Request $p_request, \Slim\Http\Res ); $t_command = new UserResetPasswordCommand( $t_data ); - $t_command->execute(); + $t_result = $t_command->execute(); return $p_response->withStatus( HTTP_STATUS_NO_CONTENT ); } diff --git a/api/soap/mc_issue_api.php b/api/soap/mc_issue_api.php index 7600f583bd0..b300ea08a60 100644 --- a/api/soap/mc_issue_api.php +++ b/api/soap/mc_issue_api.php @@ -501,9 +501,10 @@ function mci_issue_get_custom_fields( $p_issue_id ) { * Get the attachments of an issue. * * @param integer $p_issue_id The id of the issue to retrieve the attachments for. + * @param integer $p_note_id 0 for issue attachments, an id for note attachments, null for all * @return array that represents an AttachmentData structure */ -function mci_issue_get_attachments( $p_issue_id ) { +function mci_issue_get_attachments( $p_issue_id, $p_note_id = null ) { $t_attachment_rows = file_get_visible_attachments( $p_issue_id ); if( $t_attachment_rows == null ) { return array(); @@ -511,6 +512,11 @@ function mci_issue_get_attachments( $p_issue_id ) { $t_result = array(); foreach( $t_attachment_rows as $t_attachment_row ) { + # Filter out attachments that are not requested by caller + if( !is_null( $p_note_id ) && (int)$t_attachment_row['bugnote_id'] != (int)$p_note_id ) { + continue; + } + $t_attachment = array(); $t_attachment['id'] = (int)$t_attachment_row['id']; @@ -636,6 +642,8 @@ function mci_issue_note_data_as_array( $p_bugnote_row ) { $t_bugnote['date_submitted'] = $t_created_at; $t_bugnote['last_modified'] = $t_modified_at; } else { + $t_bugnote['attachments'] = mci_issue_get_attachments( $p_bugnote_row->bug_id, $p_bugnote_row->id ); + switch( $p_bugnote_row->note_type ) { case REMINDER: $t_type = 'reminder'; @@ -1685,7 +1693,7 @@ function mci_issue_data_as_array( BugData $p_issue_data, $p_user_id, $p_lang ) { } # Get attachments - access checked as part of returning attachments - $t_issue['attachments'] = mci_issue_get_attachments( $p_issue_data->id ); + $t_issue['attachments'] = mci_issue_get_attachments( $p_issue_data->id, /* note_id */ 0 ); # Get notes - access checked as part of returning notes. $t_issue['notes'] = mci_issue_get_notes( $p_issue_data->id ); diff --git a/bug_monitor_add.php b/bug_monitor_add.php index b5c18ff5de6..3aaf34423f7 100644 --- a/bug_monitor_add.php +++ b/bug_monitor_add.php @@ -42,7 +42,7 @@ form_security_validate( 'bug_monitor_add' ); $f_bug_id = gpc_get_int( 'bug_id' ); -$f_usernames = trim( gpc_get_string( 'username', '' ) ); +$f_usernames = trim( gpc_get_string( 'user_to_add', '' ) ); $t_payload = array(); diff --git a/bug_monitor_list_view_inc.php b/bug_monitor_list_view_inc.php deleted file mode 100644 index 8b41e48ec45..00000000000 --- a/bug_monitor_list_view_inc.php +++ /dev/null @@ -1,143 +0,0 @@ -. - -/** - * This include file prints out the list of users monitoring the current - * bug. $f_bug_id must be set and be set to the bug id - * - * @package MantisBT - * @copyright Copyright 2000 - 2002 Kenzaburo Ito - kenito@300baud.org - * @copyright Copyright 2002 MantisBT Team - mantisbt-dev@lists.sourceforge.net - * @link http://www.mantisbt.org - * - * @uses access_api.php - * @uses collapse_api.php - * @uses config_api.php - * @uses database_api.php - * @uses form_api.php - * @uses helper_api.php - * @uses lang_api.php - * @uses print_api.php - * @uses user_api.php - */ - -if( !defined( 'BUG_MONITOR_LIST_VIEW_INC_ALLOW' ) ) { - return; -} - -require_api( 'access_api.php' ); -require_api( 'collapse_api.php' ); -require_api( 'config_api.php' ); -require_api( 'database_api.php' ); -require_api( 'form_api.php' ); -require_api( 'helper_api.php' ); -require_api( 'lang_api.php' ); -require_api( 'print_api.php' ); -require_api( 'user_api.php' ); - -$t_can_see_monitors = access_has_bug_level( config_get( 'show_monitor_list_threshold' ), $f_bug_id ); -$t_can_add_others = access_has_bug_level( config_get( 'monitor_add_others_bug_threshold' ), $f_bug_id ); - -if( $t_can_see_monitors || $t_can_add_others ) { - $t_collapse_block = is_collapsed( 'monitoring' ); - $t_block_css = $t_collapse_block ? 'collapsed' : ''; - $t_block_icon = $t_collapse_block ? 'fa-chevron-down' : 'fa-chevron-up'; -?> -
- -
- -
-
-

- - -

-
- - - -
-
- -
-
-
- - - - - -
- - -
-'; - } - - foreach( $t_users as $t_user ) { - $t_print = prepare_user_name( $t_user ); - if( $t_can_delete_others ) { - $t_print .= sprintf( $t_button, $t_user ); - } - $t_list[] = $t_print; - } - echo implode( ",\n", $t_list ); - } - } else { - echo lang_get( 'access_denied' ); - $t_users = null; - } # End users list -?> - -
- - -
-
- - - - - -
- -
-
-
-
-
-
- -'; @@ -478,9 +478,9 @@ } # Product Build - if( $t_flags['versions_product_build_show'] && isset( $t_issue['product_build'] ) ) { + if( $t_flags['versions_product_build_show'] && isset( $t_issue['build'] ) ) { echo '', lang_get( 'product_build' ), ''; - echo '', string_display_line( $t_issue['product_build'] ), ''; + echo '', string_display_line( $t_issue['build'] ), ''; } else { $t_spacer += 2; } @@ -681,8 +681,7 @@
- - +
diff --git a/build-scripts/.htaccess b/build/.htaccess similarity index 100% rename from build-scripts/.htaccess rename to build/.htaccess diff --git a/build-scripts/README.md b/build/README.md similarity index 96% rename from build-scripts/README.md rename to build/README.md index e5a32f23030..70ead643388 100644 --- a/build-scripts/README.md +++ b/build/README.md @@ -7,7 +7,7 @@ These steps typically happen from developer's machine. ```bash -php -q ./build-scripts/check_lineterm.php -c +php -q ./build/check_lineterm.php -c ``` - Update to `MANTIS_VERSION` in `core/constant_inc.php` diff --git a/build-scripts/Web.config b/build/Web.config similarity index 100% rename from build-scripts/Web.config rename to build/Web.config diff --git a/build-scripts/buildrelease-repo.py b/build/buildrelease-repo.py similarity index 95% rename from build-scripts/buildrelease-repo.py rename to build/buildrelease-repo.py index a4ae21258e4..ea18d706207 100755 --- a/build-scripts/buildrelease-repo.py +++ b/build/buildrelease-repo.py @@ -47,7 +47,7 @@ def usage(): -d | --docbook Build the docbook manuals -s | --suffix Include version suffix in config files ''' % (path.basename(__file__), build_script_name) -#end usage() +# end usage() def ignore(ref): @@ -59,7 +59,7 @@ def ignore(ref): if len(regex.findall(ref)) > 0: ignore = True return ignore -#end ignore() +# end ignore() def main(): @@ -114,8 +114,8 @@ def main(): if len(args) > 1: repo_path = path.abspath(args[1]) - # Absolute path to buildrelease.py - buildscript = repo_path + '/scripts/' + build_script_name + # Absolute path to buildrelease.py + buildscript = repo_path + '/scripts/' + build_script_name # Create a new repo clone if fresh_clone: @@ -163,7 +163,9 @@ def main(): # Composer if path.isfile('composer.json'): print "Installing Composer packages" - if subprocess.call('composer install --no-plugins --no-scripts --no-dev', shell=True): + if subprocess.call( + 'composer install --no-plugins --no-scripts --no-dev', + shell=True): continue print @@ -198,7 +200,7 @@ def main(): # Done print "\nAll builds completed." -#end main() +# end main() if __name__ == "__main__": main() diff --git a/build-scripts/buildrelease.py b/build/buildrelease.py similarity index 98% rename from build-scripts/buildrelease.py rename to build/buildrelease.py index 2edaa20e59e..e691ec77815 100755 --- a/build-scripts/buildrelease.py +++ b/build/buildrelease.py @@ -23,9 +23,9 @@ ".mailmap", ".travis.yml", "build.xml", - "composer.json", - "composer.lock", - "test_langs.php", + "composer.json", + "composer.lock", + "test_langs.php", # User custom files "config_inc.php", "custom_constant*_inc.php", @@ -36,7 +36,7 @@ "mc_config_inc.php", # Directories "docbook/", - "build-scripts/" + "build-scripts/" "javascript/dev/", "packages/", "phing/", @@ -57,7 +57,7 @@ def usage(): -v | --version Override version name detection -s | --suffix Include version suffix in config file ''' % path.basename(__file__) -#end usage() +# end usage() def gpg_sign_tarball(filename): @@ -249,7 +249,7 @@ def main(): print "Done!\n" -#end main() +# end main() if __name__ == "__main__": main() diff --git a/build-scripts/check_apostrophe.php b/build/check_apostrophe.php similarity index 100% rename from build-scripts/check_apostrophe.php rename to build/check_apostrophe.php diff --git a/build-scripts/check_formatting.php b/build/check_formatting.php similarity index 100% rename from build-scripts/check_formatting.php rename to build/check_formatting.php diff --git a/build-scripts/check_lang.php b/build/check_lang.php similarity index 100% rename from build-scripts/check_lang.php rename to build/check_lang.php diff --git a/build-scripts/check_lineterm.php b/build/check_lineterm.php similarity index 100% rename from build-scripts/check_lineterm.php rename to build/check_lineterm.php diff --git a/build-scripts/docbook-manual-repo.py b/build/docbook-manual-repo.py similarity index 99% rename from build-scripts/docbook-manual-repo.py rename to build/docbook-manual-repo.py index 3884bb6d3ff..082b23c0ead 100755 --- a/build-scripts/docbook-manual-repo.py +++ b/build/docbook-manual-repo.py @@ -42,7 +42,7 @@ def usage(): --release Build single file types used for release tarballs -a | --all Build all manual types''' -#end usage() +# end usage() def ignore(ref): @@ -54,7 +54,7 @@ def ignore(ref): if len(regex.findall(ref)) > 0: ignore = True return ignore -#end ignore() +# end ignore() def git_current_branch(): @@ -194,7 +194,7 @@ def main(): print "\nRestoring originally checked-out branch" git_checkout(curbranch) -#end main +# end main() if __name__ == '__main__': main() diff --git a/build-scripts/docbook-manual.py b/build/docbook-manual.py similarity index 96% rename from build-scripts/docbook-manual.py rename to build/docbook-manual.py index c08ebb56d46..d0d3d41f50e 100755 --- a/build-scripts/docbook-manual.py +++ b/build/docbook-manual.py @@ -16,7 +16,16 @@ # Script options options = "hda" -long_options = ["help", "delete", "epub", "html", "pdf", "txt", "release", "all"] +long_options = [ + "help", + "delete", + "epub", + "html", + "pdf", + "txt", + "release", + "all" + ] def usage(): @@ -31,7 +40,7 @@ def usage(): --release Build single file types used for release tarballs -a | --all Build all manual types''' -#end usage() +# end usage() def main(): @@ -149,7 +158,8 @@ def main(): print rsync ret = subprocess.call(rsync, shell=True) if ret != 0: - print 'ERROR: rsync call failed with exit code %i' % ret + print 'ERROR: rsync call failed with exit code ' % \ + ret # Copy single file manuals (PDF, TXT and EPUB) for filetype in ['epub', 'pdf', 'txt']: @@ -196,8 +206,7 @@ def main(): print "Done - %s docbooks built.\n" % buildcount - -#end main +# end main() if __name__ == '__main__': main() diff --git a/build-scripts/travis_before_script.sh b/build/travis_before_script.sh similarity index 100% rename from build-scripts/travis_before_script.sh rename to build/travis_before_script.sh diff --git a/build-scripts/travis_script.sh b/build/travis_script.sh similarity index 100% rename from build-scripts/travis_script.sh rename to build/travis_script.sh diff --git a/build-scripts/update-copyright.sh b/build/update-copyright.sh similarity index 100% rename from build-scripts/update-copyright.sh rename to build/update-copyright.sh diff --git a/build-scripts/update-credits.sh b/build/update-credits.sh similarity index 100% rename from build-scripts/update-credits.sh rename to build/update-credits.sh diff --git a/composer.json b/composer.json index f0b1d5f8595..130912b190f 100644 --- a/composer.json +++ b/composer.json @@ -5,6 +5,7 @@ "require": { "php": ">=5.5.0", "ext-mbstring": "*", + "ext-json": "*", "slim/slim": "^3.0", "guzzlehttp/guzzle": "^6.2", "vboctor/disposable_email_checker": "^3.0", diff --git a/composer.lock b/composer.lock index 0f806f03be1..31a4d0bb2a5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ab2f6276fa9fa1610339ae5bf7a24f22", + "content-hash": "4a66803160246efa4ffa20ea2d3e0579", "packages": [ { "name": "adodb/adodb-php", @@ -157,16 +157,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.3", + "version": "6.5.4", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e" + "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aab4ebd862aa7d04f01a4b51849d657db56d882e", - "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a4a1b6930528a8f7ee03518e6442ec7a44155d9d", + "reference": "a4a1b6930528a8f7ee03518e6442ec7a44155d9d", "shasum": "" }, "require": { @@ -174,7 +174,7 @@ "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.11" + "symfony/polyfill-intl-idn": "1.17.0" }, "require-dev": { "ext-curl": "*", @@ -220,7 +220,7 @@ "rest", "web service" ], - "time": "2020-04-18T10:38:46+00:00" + "time": "2020-05-25T19:35:05+00:00" }, { "name": "guzzlehttp/promises", @@ -392,16 +392,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.1.5", + "version": "v6.1.6", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "a8bf068f64a580302026e484ee29511f661b2ad3" + "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a8bf068f64a580302026e484ee29511f661b2ad3", - "reference": "a8bf068f64a580302026e484ee29511f661b2ad3", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", + "reference": "c2796cb1cb99d7717290b48c4e6f32cb6c60b7b3", "shasum": "" }, "require": { @@ -450,7 +450,7 @@ } ], "description": "PHPMailer is a full-featured email creation and transfer class for PHP", - "time": "2020-03-14T14:23:48+00:00" + "time": "2020-05-27T12:24:03+00:00" }, { "name": "pimple/pimple", @@ -716,16 +716,16 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.15.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf" + "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", - "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a", + "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a", "shasum": "" }, "require": { @@ -739,7 +739,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -774,20 +774,20 @@ "portable", "shim" ], - "time": "2020-03-09T19:04:49+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.15.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", - "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", "shasum": "" }, "require": { @@ -799,7 +799,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -833,20 +833,20 @@ "portable", "shim" ], - "time": "2020-03-09T19:04:49+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.15.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "37b0976c78b94856543260ce09b460a7bc852747" + "reference": "f048e612a3905f34931127360bdd2def19a5e582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", - "reference": "37b0976c78b94856543260ce09b460a7bc852747", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", + "reference": "f048e612a3905f34931127360bdd2def19a5e582", "shasum": "" }, "require": { @@ -855,7 +855,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.15-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -888,7 +888,7 @@ "portable", "shim" ], - "time": "2020-02-27T09:26:54+00:00" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "vboctor/disposable_email_checker", @@ -2117,7 +2117,8 @@ "prefer-lowest": false, "platform": { "php": ">=5.5.0", - "ext-mbstring": "*" + "ext-mbstring": "*", + "ext-json": "*" }, "platform-dev": [], "platform-overrides": { diff --git a/core/commands/UserResetPasswordCommand.php b/core/commands/UserResetPasswordCommand.php index 000713da256..37ded3b90ba 100644 --- a/core/commands/UserResetPasswordCommand.php +++ b/core/commands/UserResetPasswordCommand.php @@ -33,6 +33,12 @@ * } */ class UserResetPasswordCommand extends Command { + /** + * Constants for execute() method's return value. + */ + const RESULT_RESET = 'reset'; + const RESULT_UNLOCK = 'unlock'; + /** * @var integer The id of the user to delete. */ @@ -49,30 +55,41 @@ function __construct( array $p_data ) { /** * Validate the data. + * @throws ClientException */ function validate() { - $this->user_id_reset = (int)$this->query( 'id', null ); - if( $this->user_id_reset <= 0 || !user_exists( $this->user_id_reset ) ) { - throw new ClientException( 'Invalid user id', ERROR_INVALID_FIELD_VALUE, array( 'id' ) ); - } - - # Ensure user has access level to delete users + # Ensure user has the required access level to reset passwords if( !access_has_global_level( config_get_global( 'manage_user_threshold' ) ) ) { throw new ClientException( 'Access denied to reset user password', ERROR_ACCESS_DENIED ); } + $this->user_id_reset = (int)$this->query( 'id', null ); + + # Make sure the account exists $t_user = user_get_row( $this->user_id_reset ); - if( $t_user === false ) { // cannot be + if( $t_user === false ) { throw new ClientException( 'Invalid user id', ERROR_INVALID_FIELD_VALUE, array( 'id' ) ); } - # Ensure that the account to be reset is of equal or lower access to the - # current user. + # Mantis can't reset protected accounts' passwords, but if the + # account is locked, we allow the operation as Unlock + if( auth_can_set_password( $this->user_id_reset ) + && user_is_protected( $this->user_id_reset ) + && user_is_login_request_allowed( $this->user_id_reset ) + ) { + throw new ClientException( + 'Password reset not allowed for protected accounts', + ERROR_PROTECTED_ACCOUNT + ); + } + + # Ensure that the account to be reset is of equal or lower access than + # the current user. if( !access_has_global_level( $t_user['access_level'] ) ) { throw new ClientException( 'Access denied to reset user password with higher access level', ERROR_ACCESS_DENIED ); } - # Check that we are not reseting the last administrator account + # Check that we are not resetting the last administrator account $t_admin_threshold = config_get_global( 'admin_site_threshold' ); if( user_is_administrator( $this->user_id_reset ) && user_count_level( $t_admin_threshold, /* enabled */ true ) <= 1 ) { @@ -86,17 +103,19 @@ function validate() { * Process the command. * * @returns array Command response + * @throws ClientException */ protected function process() { - # If the password can be changed, we reset it, otherwise we unlock - # the account (i.e. reset failed login count) - $t_reset = auth_can_set_password( $this->user_id_reset ); - if( $t_reset ) { - $t_result = user_reset_password( $this->user_id_reset ); - } else { - $t_result = user_reset_failed_login_count_to_zero( $this->user_id_reset ); + # If the password can be changed, reset it + if( auth_can_set_password( $this->user_id_reset ) + && user_reset_password( $this->user_id_reset ) + ) { + return array( 'action' => self::RESULT_RESET ); } - return array(); + + # Password can't be changed, unlock the account + # the account (i.e. reset failed login count) + user_reset_failed_login_count_to_zero( $this->user_id_reset ); + return array( 'action' => self::RESULT_UNLOCK ); } } - diff --git a/core/email_api.php b/core/email_api.php index 8d61bddea32..532590ad113 100644 --- a/core/email_api.php +++ b/core/email_api.php @@ -541,12 +541,16 @@ function email_signup( $p_user_id, $p_confirm_hash, $p_admin_name = '' ) { } /** - * Send confirm_hash URL to user forgets the password - * @param integer $p_user_id A valid user identifier. - * @param string $p_confirm_hash Confirmation hash. + * Send confirm_hash URL to let user reset their password. + * + * @param integer $p_user_id A valid user identifier. + * @param string $p_confirm_hash Confirmation hash. + * @param bool $p_reset_by_admin True if password was reset by admin, + * False (default) for user request (lost password) + * * @return void */ -function email_send_confirm_hash_url( $p_user_id, $p_confirm_hash ) { +function email_send_confirm_hash_url( $p_user_id, $p_confirm_hash, $p_reset_by_admin = false ) { if( OFF == config_get( 'send_reset_password' ) ) { log_event( LOG_EMAIL_VERBOSE, 'Password reset email notifications disabled.' ); return; @@ -567,7 +571,16 @@ function email_send_confirm_hash_url( $p_user_id, $p_confirm_hash ) { $t_subject = '[' . config_get( 'window_title' ) . '] ' . lang_get( 'lost_password_subject' ); - $t_message = lang_get( 'reset_request_msg' ) . " \n\n" . string_get_confirm_hash_url( $p_user_id, $p_confirm_hash ) . " \n\n" . lang_get( 'new_account_username' ) . ' ' . $t_username . " \n" . lang_get( 'new_account_IP' ) . ' ' . $_SERVER['REMOTE_ADDR'] . " \n\n" . lang_get( 'new_account_do_not_reply' ); + if( $p_reset_by_admin ) { + $t_message = lang_get( 'reset_request_admin_msg' ); + } else { + $t_message = lang_get( 'reset_request_msg' ); + } + $t_message .= "\n\n" + . string_get_confirm_hash_url( $p_user_id, $p_confirm_hash ) . "\n\n" + . lang_get( 'new_account_username' ) . ' ' . $t_username . "\n" + . lang_get( 'new_account_IP' ) . ' ' . $_SERVER['REMOTE_ADDR'] . "\n\n" + . lang_get( 'new_account_do_not_reply' ); # Send password reset regardless of mail notification preferences # or else users won't be able to receive their reset passwords diff --git a/core/file_api.php b/core/file_api.php index 9756001deb9..a4bee89898b 100644 --- a/core/file_api.php +++ b/core/file_api.php @@ -372,16 +372,28 @@ function file_get_visible_attachments( $p_bug_id ) { $t_preview_text_ext = config_get( 'preview_text_extensions' ); $t_preview_image_ext = config_get( 'preview_image_extensions' ); + $t_attachments_view_threshold = config_get( 'view_attachments_threshold' ); $t_image_previewed = false; for( $i = 0;$i < $t_attachments_count;$i++ ) { $t_row = $t_attachment_rows[$i]; $t_user_id = (int)$t_row['user_id']; + # This covers access checks for issue attachments if( !file_can_view_bug_attachments( $p_bug_id, $t_user_id ) ) { continue; } + # This covers access checks for issue note attachments + $t_attachment_note_id = (int)$t_row['bugnote_id']; + if( $t_attachment_note_id !== 0 ) { + if( bugnote_get_field( $t_attachment_note_id, 'view_state' ) != VS_PUBLIC ) { + if( !access_has_bugnote_level( $t_attachments_view_threshold, $t_attachment_note_id ) ) { + continue; + } + } + } + $t_id = (int)$t_row['id']; $t_filename = $t_row['filename']; $t_filesize = $t_row['filesize']; diff --git a/core/html_api.php b/core/html_api.php index 2c9534144a3..0f3dd2d07bb 100644 --- a/core/html_api.php +++ b/core/html_api.php @@ -520,24 +520,33 @@ function html_end() { /** * Print the menu bar with a list of projects to which the user has access + * + * @see $g_show_project_menu_bar + * * @return void */ function print_project_menu_bar() { $t_project_ids = current_user_get_accessible_projects(); $t_current_project_id = helper_get_current_project(); + $t_button_classes = 'btn btn-xs btn-white btn-info'; echo '
' . "\n"; echo '
' . "\n"; - $t_active = ALL_PROJECTS == $t_current_project_id ? 'active' : ''; - echo '', lang_get( 'all_projects' ), '' . "\n"; - + echo project_link_for_menu( + ALL_PROJECTS, + $t_current_project_id == ALL_PROJECTS, + $t_button_classes + ); + echo "\n"; foreach( $t_project_ids as $t_id ) { - $t_active = $t_id == $t_current_project_id ? 'active' : ''; - echo '', string_html_specialchars( project_get_field( $t_id, 'name' ) ), '' . "\n"; - print_subproject_menu_bar( $t_current_project_id, $t_id, $t_id . ';' ); + echo project_link_for_menu( + $t_id, + $t_current_project_id == $t_id, + $t_button_classes + ); + echo "\n"; + print_subproject_menu_bar( $t_current_project_id, $t_id, array( $t_id ) ); } echo '
' . "\n"; @@ -546,25 +555,33 @@ function print_project_menu_bar() { } /** - * Print the menu bar with a list of projects to which the user has access - * @todo check parents param - set_project.php?project_id=' . $p_parents . $t_subproject + * Print the menu bar with a list of subprojects to which the user has access + * * @param integer $p_current_project_id Selected project id. - * @param integer $p_parent_project_id Parent project id. - * @param string $p_parents Parent project identifiers. + * @param integer $p_parent_project_id Parent project id. + * @param array $p_parents Parent project identifiers. + * * @return void */ -function print_subproject_menu_bar( $p_current_project_id, $p_parent_project_id, $p_parents = '' ) { +function print_subproject_menu_bar( $p_current_project_id, $p_parent_project_id, array $p_parents = array() ) { $t_subprojects = current_user_get_accessible_subprojects( $p_parent_project_id ); foreach( $t_subprojects as $t_subproject_id ) { - $t_active = $p_current_project_id == $t_subproject_id ? 'active' : ''; - echo ' ' . - string_html_specialchars( project_get_field( $t_subproject_id, 'name' ) ) . ''; - - # Render this subproject's subprojects ... passing current project id to highlight selected project - print_subproject_menu_bar( $p_current_project_id, $t_subproject_id, $p_parents . $t_subproject_id . ';' ); + echo project_link_for_menu( + $t_subproject_id, + $t_subproject_id == $p_current_project_id, + 'btn btn-xs btn-white btn-info', + $p_parents, + '' + ); + echo "\n"; + + # Recursive call to render this subproject's subprojects + print_subproject_menu_bar( + $p_current_project_id, + $t_subproject_id, + array_merge( $p_parents, array( $t_subproject_id) ) + ); } } diff --git a/core/layout_api.php b/core/layout_api.php index d914424cc71..80bd634d16a 100644 --- a/core/layout_api.php +++ b/core/layout_api.php @@ -515,7 +515,7 @@ function layout_navbar_projects_menu() { if( !layout_navbar_can_show_projects_menu() ) { return; } - echo ''; + echo "\n"; + echo '
  • ' . "\n"; + echo '
  • '; - echo '
    '; - echo '\n"; + echo "
    \n"; + echo "
  • \n"; } /** @@ -633,6 +635,7 @@ function layout_navbar_subproject_option_list( $p_parent_id, $p_project_id = nul array_push( $p_parents, $p_parent_id ); $t_user_id = auth_get_current_user_id(); $t_project_ids = user_get_accessible_subprojects( $t_user_id, $p_parent_id ); + $t_indent = str_repeat( ' ', 4 ); foreach( $t_project_ids as $t_id ) { if( $p_trace ) { @@ -642,9 +645,8 @@ function layout_navbar_subproject_option_list( $p_parent_id, $p_project_id = nul } echo 0 == strcmp( $p_project_id, $t_full_id ) ? '
  • ' : '
  • '; - echo ' ' . str_repeat( ' ', count( $p_parents ) * 4 ); - echo string_attribute( project_get_field( $t_id, 'name' ) ) . '
  • ' . "\n"; + echo project_link_for_menu( $t_id, false, 'project_link', $p_parents, $t_indent ); + echo "\n"; layout_navbar_subproject_option_list( $t_id, $p_project_id, $p_filter_project_id, $p_trace, $p_parents ); } diff --git a/core/project_api.php b/core/project_api.php index cf7c3b5c13d..542eb4c02cd 100644 --- a/core/project_api.php +++ b/core/project_api.php @@ -936,3 +936,39 @@ function project_format_id( $p_project_id ) { $t_padding = config_get( 'display_project_padding' ); return( utf8_str_pad( $p_project_id, $t_padding, '0', STR_PAD_LEFT ) ); } + + +/** + * Returns the project name as a link formatted for display in menus and buttons. + * + * The link is formatted as a link to set_project.php, which can be used to + * display project selection menus: + * - projects list in navbar {@see layout_navbar_projects_menu()} + * - project menu bar {@see print_project_menu_bar()} + * + * @param integer $p_project_id Project Id to display + * @param bool $p_active True if it's the currently active project + * @param string $p_class CSS classes to apply + * @param array $p_parents Array of parent projects (empty if top-level) + * @param string $p_indent String to use to indent the subprojects + * + * @return string Fully formatted HTML link to the project + */ +function project_link_for_menu( $p_project_id, $p_active = false, $p_class = '', array $p_parents = array(), $p_indent = '' ) { + if( $p_parents ) { + $t_full_id = implode( ";", $p_parents ) . ';' . $p_project_id; + $t_indent = str_repeat( $p_indent, count( $p_parents ) ) . ' '; + } else { + $t_full_id = $p_project_id; + $t_indent = ''; + } + + $t_url = helper_mantis_url( 'set_project.php?project_id=' . $t_full_id ); + $t_label = $t_indent . string_html_specialchars( project_get_name( $p_project_id ) ); + + if( $p_active ) { + $p_class .= ' active'; + } + + return sprintf('%s', $p_class, $t_url, $t_label ); +} diff --git a/core/user_api.php b/core/user_api.php index 8a776a806bc..e48ad20cb56 100644 --- a/core/user_api.php +++ b/core/user_api.php @@ -1719,21 +1719,19 @@ function user_set_name( $p_user_id, $p_username ) { * - if it is ON, generate a random password and send an email * (unless the second parameter is false) * - if it is OFF, set the password to blank - * Return false if the user is protected, true if the password was - * successfully reset * * @param integer $p_user_id A valid user identifier. * @param boolean $p_send_email Whether to send confirmation email. - * @return boolean + * @return boolean True if the password was successfully reset + * False if the user is protected. + * @throws ClientException */ function user_reset_password( $p_user_id, $p_send_email = true ) { - $t_protected = user_get_field( $p_user_id, 'protected' ); - - # Go with random password and email it to the user - if( ON == $t_protected ) { + if( user_is_protected( $p_user_id ) ) { return false; } + # Go with random password and email it to the user # @@@ do we want to force blank password instead of random if # email notifications are turned off? # How would we indicate that we had done this with a return value? @@ -1743,6 +1741,11 @@ function user_reset_password( $p_user_id, $p_send_email = true ) { $t_email = user_get_field( $p_user_id, 'email' ); if( is_blank( $t_email ) ) { trigger_error( ERROR_LOST_PASSWORD_NO_EMAIL_SPECIFIED, ERROR ); + throw new ClientException( + sprintf( "User id '%d' does not have an e-mail address.", (int)$p_user_id ), + ERROR_LOST_PASSWORD_NO_EMAIL_SPECIFIED, + array( (int)$p_user_id ) + ); } # Create random password @@ -1755,7 +1758,7 @@ function user_reset_password( $p_user_id, $p_send_email = true ) { if( $p_send_email ) { $t_confirm_hash = auth_generate_confirm_hash( $p_user_id ); token_set( TOKEN_ACCOUNT_ACTIVATION, $t_confirm_hash, TOKEN_EXPIRY_ACCOUNT_ACTIVATION, $p_user_id ); - email_send_confirm_hash_url( $p_user_id, $t_confirm_hash ); + email_send_confirm_hash_url( $p_user_id, $t_confirm_hash, true ); } } else { # use blank password, no emailing diff --git a/docbook/Admin_Guide/en-US/Installation.xml b/docbook/Admin_Guide/en-US/Installation.xml index c37efba5aba..147b2648809 100644 --- a/docbook/Admin_Guide/en-US/Installation.xml +++ b/docbook/Admin_Guide/en-US/Installation.xml @@ -181,6 +181,9 @@ mbstring - Required for Unicode (UTF-8) support. + date, hash, json, pcre, Reflection, session - + Required to run MantisBT in general. + diff --git a/docbook/Admin_Guide/en-US/Revision_History.xml b/docbook/Admin_Guide/en-US/Revision_History.xml index 5dd482fa3fc..4cf4c82da21 100644 --- a/docbook/Admin_Guide/en-US/Revision_History.xml +++ b/docbook/Admin_Guide/en-US/Revision_History.xml @@ -5,6 +5,20 @@ Revision History + + 2.24-1 + Sun May 3 2020 + + Victor + Boctor + vboctor@mantisbt.org + + + + Release 2.24.1 + + + 2.24-0 Sun Mar 15 2020 diff --git a/docbook/Developers_Guide/en-US/Api_Rest.xml b/docbook/Developers_Guide/en-US/Api_Rest.xml new file mode 100644 index 00000000000..77b6038d024 --- /dev/null +++ b/docbook/Developers_Guide/en-US/Api_Rest.xml @@ -0,0 +1,52 @@ + + +%BOOK_ENTITIES; +]> + + + MantisBT REST API + + + The primary means of integrating with MantisBT with web services is + with the bundled REST API, which is accessible at + + https://server.com/mantis/api/rest/. + + +
    + Postman + + + Postman is a tool to enable REST API development and collaboration. + It is used by MantisBT team to share the API definitions + and enables the community to experiment with the API. + + Download Postman. + + + + Once Postman is installed, you should be able to bootstrap it with the + MantisBT API collection via the MantisBT API documentation posted on Postman. + + Download Collection. + + + + The MantisBT API Postman collection is also distributed with MantisBT in the + `api/rest/api.postman_collection.json`. The Postman environment template is also + available at `api/rest/env.postman_environment.json`. + +
    + +
    + Exporting Postman Collection + + + The bundled Postman collection can be updated by clicking on the "..." next + to "Mantis Bug Tracker REST API" and choosing "Export...". Then select + "Collection v2.1" and click "Export" and select `api/rest/api.postman_collection.json`. + Then follow the standard pull request and checkin process. + +
    +
    diff --git a/docbook/Developers_Guide/en-US/Integrating.xml b/docbook/Developers_Guide/en-US/Api_Soap.xml similarity index 86% rename from docbook/Developers_Guide/en-US/Integrating.xml rename to docbook/Developers_Guide/en-US/Api_Soap.xml index b95f19ac11b..b1b92cbbbf7 100644 --- a/docbook/Developers_Guide/en-US/Integrating.xml +++ b/docbook/Developers_Guide/en-US/Api_Soap.xml @@ -4,20 +4,19 @@ %BOOK_ENTITIES; ]> - - Integrating with MantisBT + + MantisBT SOAP API - The primary means of integrating with MantisBT with web services is - with the bundled SOAP API, which is accessible at + The now deprecated MantisBT SOAP API is accessible at: https://server.com/mantis/api/soap/mantisconnect.php. -
    +
    Java integration -
    +
    Prebuilt SOAP stubs using Axis @@ -42,7 +41,7 @@
    -
    +
    Usage in OSGi environments If you would like to use Axis in an OSGi environment, it @@ -54,7 +53,7 @@
    -
    +
    Compatibility between releases @@ -75,7 +74,7 @@
    -
    +
    Support diff --git a/docbook/Developers_Guide/en-US/Developers_Guide.xml b/docbook/Developers_Guide/en-US/Developers_Guide.xml index feeab897686..38990f60cdd 100644 --- a/docbook/Developers_Guide/en-US/Developers_Guide.xml +++ b/docbook/Developers_Guide/en-US/Developers_Guide.xml @@ -13,7 +13,8 @@ - + + diff --git a/docbook/Developers_Guide/en-US/Revision_History.xml b/docbook/Developers_Guide/en-US/Revision_History.xml index 3d33f139e4c..4d5097788cc 100644 --- a/docbook/Developers_Guide/en-US/Revision_History.xml +++ b/docbook/Developers_Guide/en-US/Revision_History.xml @@ -7,6 +7,20 @@ Revision History + + 2.24-1 + Sun May 3 2020 + + Victor + Boctor + vboctor@mantisbt.org + + + + Release 2.24.1 + + + 2.24-0 Sun Mar 15 2020 diff --git a/lang/strings_arabic.txt b/lang/strings_arabic.txt index caefc807866..68aa1ef741b 100644 --- a/lang/strings_arabic.txt +++ b/lang/strings_arabic.txt @@ -238,6 +238,7 @@ $s_new_account_signup_msg = 'الحساب التالي تم إنشاؤه:'; $s_reset_request_msg = 'شخص ما (على الأرجح أنت) طلب تغيير كلمة السر من خلال تحقيق البريد الإلكتروني. لو لم يكن هذا أنت، تجاهل هذه الرسالة ولا شيء سيحدث. لو أنك طلبت هذا التحقيق، زر المسار التالي لتغيير كلمة سرك:'; +$s_reset_request_admin_msg = 'كلمة السر الخاصة بك تم إعادة ضبطها. من فضلك زر المسار التالي لتعيين واحدة جديدة:'; $s_reset_request_in_progress_msg = 'لو أنك وفرت اسم المستخدم وعنوان البريد الإلكتروني الصحيح لحسابك، سنكون قد أرسلنا الآن رسالة تأكيد إلى عنوان البريد الإلكتروني هذا. متى تم تلقي الرسالة، اتبع الإجراءات الموفرة لتغيير كلمة السر لحسابك.'; $s_email_notification_title_for_status_bug_new = 'القضية التالية الآن في الحالة جديد (مجددا)'; $s_email_notification_title_for_status_bug_feedback = 'القضية التالية تتطلب ردك.'; @@ -771,7 +772,6 @@ $s_reset_password_msg2 = 'إعادة ضبط كلمة السر يعيد ضبط ك $s_show_all_users = 'الكل'; $s_users_unused = 'غير مستخدم'; $s_users_new = 'جديد'; -$s_account_reset_protected_msg = 'الحساب محمي. لم يمكن إعادة ضبط كلمة السر.'; $s_account_reset_msg = 'طلب تأكيد تم إرساله إلى عنوان البريد الإلكتروني المختار للمستخدم. باستخدام هذا، المستخدم سيصبح قادرا على تغيير كلمة سره.'; $s_account_reset_msg2 = 'كلمة سر الحساب تم ضبطها كفارغة...'; $s_account_unlock_msg = 'تم إعادة فتح الحساب.'; @@ -1295,7 +1295,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'المجلد غير موجود. من فضل $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'هناك مشروع بهذا الاسم بالفعل.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'حقل ضروري "%1$s" كان فارغا. من فضلك تحقق مرة أخرى من مدخلاتك.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'قيمة غير صالحة لـ\'%1$s\''; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'هذا الحساب محمي. أنت غير مسموح لك بالدخول إلى هذا حتى يتم رفع حماية الحساب.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'هذا الحساب محمي. أنت غير مسموح لك بعمل العملية المطلوبة حتى يتم رفع حماية الحساب.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'السماح مرفوض.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'رفع الملف فشل. الملف لا يمكن قراءته بواسطة مانتيس بي تي. من فضلك تحقق من إعدادات المشروع.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'رفع الملف فشل. هذا غالبا بسبب أن حجم الملف أكبر مما هو مسموح به حاليا بواسطة تنصيب PHP هذا.'; diff --git a/lang/strings_arabicegyptianspoken.txt b/lang/strings_arabicegyptianspoken.txt index a0dc5f12ddb..5b3c6bbd7d2 100644 --- a/lang/strings_arabicegyptianspoken.txt +++ b/lang/strings_arabicegyptianspoken.txt @@ -661,7 +661,6 @@ $s_reset_password_msg2 = 'إعاده ضبط كلمه السر يعيد ضبط ك $s_show_all_users = 'الكل'; $s_users_unused = 'غير مستخدم'; $s_users_new = 'جديد'; -$s_account_reset_protected_msg = 'الحساب محمى. لم يمكن إعاده ضبط كلمه السر.'; $s_account_reset_msg = 'طلب تأكيد تم إرساله إلى عنوان البريد الإلكترونى المختار للمستخدم. باستخدام هذا، المستخدم سيصبح قادرا على تغيير كلمه سره.'; $s_account_reset_msg2 = 'كلمه سر الحساب تم ضبطها كفارغه...'; $s_manage_user_protected_msg = 'الحساب محمى; \'مستوى الصلاحيه\' و\'التفعيل\' محميين. أما غير ده، فالحساب تم إتحدث بنجاح.'; diff --git a/lang/strings_asturian.txt b/lang/strings_asturian.txt index 1a569989d71..c22bc09a02f 100644 --- a/lang/strings_asturian.txt +++ b/lang/strings_asturian.txt @@ -749,7 +749,6 @@ $s_reset_password_msg2 = 'Reaniciar la contraseña pon la mesma en blancu.'; $s_show_all_users = 'Toes'; $s_users_unused = 'Sin usar'; $s_users_new = 'Nuevu'; -$s_account_reset_protected_msg = 'Cunta protexida. Nun puede reaniciase la contraseña.'; $s_account_reset_msg = 'Unvióse una solicitú de confirmación a les direcciones de corréu electrónicu del usuariu escoyíu. Utilizándolo, l\'usuariu podrá camudar la contraseña.'; $s_account_reset_msg2 = 'La contraseña de la cuenta púnxose\'n blancu...'; $s_account_unlock_msg = 'Desbloquióse la cuenta.'; diff --git a/lang/strings_basque.txt b/lang/strings_basque.txt index 936bcac27f9..73ebf97cc06 100644 --- a/lang/strings_basque.txt +++ b/lang/strings_basque.txt @@ -245,11 +245,11 @@ $s_email_notification_title_for_action_bug_submitted = 'Honako arazo hau BIDALIA $s_email_notification_title_for_action_bug_assigned = 'Honako arazo hau ESLEITUA izan da.'; $s_email_notification_title_for_action_bug_unassigned = 'Honako arazo honen ESLEIPENA EZEZTATUA izan da.'; $s_email_notification_title_for_action_bug_reopened = 'Honako arazo hau BERRIREKIA izan da.'; -$s_email_notification_title_for_action_bug_deleted = 'Honako arazo hau EZABATUA izan da.'; +$s_email_notification_title_for_action_bug_deleted = 'Ondorengo arazo hau EZABATU da.'; $s_email_notification_title_for_action_bug_updated = 'Honako arazo hau EGUNERATUA izan da.'; $s_email_notification_title_for_action_sponsorship_added = 'Honako arazo hau BABESTUA izan da.'; -$s_email_notification_title_for_action_sponsorship_updated = 'Arazo honen babeskuntzaren bat aldatu egin da.'; -$s_email_notification_title_for_action_sponsorship_deleted = 'Arazo honen babeskuntzaren bat kendu egin da.'; +$s_email_notification_title_for_action_sponsorship_updated = 'Arazo honen babes bat aldatu da.'; +$s_email_notification_title_for_action_sponsorship_deleted = 'Babes bat kendu zaio ondorengo arazo honi.'; $s_email_notification_title_for_action_bugnote_submitted = 'Arazo honi OHAR bat gehitu zaio.'; $s_email_notification_title_for_action_duplicate_of_relationship_added = 'Honako arazo hau %1$s-ren DUPLIKATUA moduan markatua izan da.'; $s_email_notification_title_for_action_has_duplicate_relationship_added = '%1$s arazoa honako arazo honen DUPLIKATUA moduan markatua izan da.'; @@ -257,13 +257,13 @@ $s_email_notification_title_for_action_related_to_relationship_added = 'Honako a $s_email_notification_title_for_action_dependant_on_relationship_added = 'Honako arazo hau %1$s-ren AITA moduan markatua izan da.'; $s_email_notification_title_for_action_blocks_relationship_added = 'Honako arazo hau %1$s-ren SEMEA moduan markatua izan da.'; $s_email_notification_title_for_action_duplicate_of_relationship_deleted = 'Honako arazo hau %1$s-ren DUPLIKATUA moduan markatu GABEA izan da.'; -$s_email_notification_title_for_action_has_duplicate_relationship_deleted = '%1$s arazoa honako arazo honen DUPLIKATUA moduan ezabatua izan da.'; +$s_email_notification_title_for_action_has_duplicate_relationship_deleted = '%1$s arazoa kendu da, ondorengo arazo honen BIKOIZTUTZAT.'; $s_email_notification_title_for_action_related_to_relationship_deleted = 'Honako arazo hau %1$s-rekin EZ ERLAZIONATUA moduan markatua izan da.'; -$s_email_notification_title_for_action_dependant_on_relationship_deleted = 'Honako arazo hau %1$s-ren AITA moduan ezabatua izan da.'; -$s_email_notification_title_for_action_blocks_relationship_deleted = 'Honako arazo hau %1$s-ren SEMEA moduan ezabatua izan da.'; +$s_email_notification_title_for_action_dependant_on_relationship_deleted = 'Ondorengo arazo hau ezabatu da, %1$s arazoaren GURASOTZAT.'; +$s_email_notification_title_for_action_blocks_relationship_deleted = 'Ondorengo arazo hau ezabatu da, %1$s arazoaren MENDEKOTZAT.'; $s_email_notification_title_for_action_relationship_child_resolved = 'ERLAZIONATURIKO %1$s arazoa KONPONDUA izan da.'; -$s_email_notification_title_for_action_relationship_child_closed = 'ERLAZIONATURIKO %1$s arazoa ITXI egin da.'; -$s_email_notification_title_for_action_related_issue_deleted = 'ERLAZIONATURIKO %1$s arazoa EZABATU egin da.'; +$s_email_notification_title_for_action_relationship_child_closed = 'ERLAZIONATURIKO %1$s arazoa ITXI da.'; +$s_email_notification_title_for_action_related_issue_deleted = 'ERLAZIONATURIKO %1$s arazoa EZABATU da.'; $s_email_notification_title_for_action_monitor = '%2$s erabiltzaileak orain %1$s arazoa jarraitzen du.'; $s_email_reporter = 'Nork Informatua'; $s_email_handler = 'Nori Esleitua'; @@ -287,7 +287,7 @@ $s_email_steps_to_reproduce = 'Berregiteko Pausoak'; $s_email_tag = 'Etiketak'; $s_email_due_date = 'Epemuga'; $s_account_protected_msg = 'Babestutako kontua. Ezin dira aukerak aldatu...'; -$s_account_removed_msg = 'Zure kontua ezabatua izan da...'; +$s_account_removed_msg = 'Zure kontua ezabatu da...'; $s_confirm_delete_msg = 'Ziur zure kontua ezabatu nahi duzula?'; $s_delete_account_button = 'Kontua ezabatu'; $s_manage_profiles_link = 'Profilak'; @@ -393,10 +393,10 @@ $s_feedback_bug_button = 'Datu Gehiago eskatu'; $s_acknowledged_bug_button = 'Arazoa Aitortu'; $s_confirmed_bug_button = 'Arazoa Onartu'; $s_assigned_bug_button = 'Arazoa Esleitu'; -$s_bug_close_msg = 'Arazoa itxi egin da...'; +$s_bug_close_msg = 'Arazoa itxi da...'; $s_close_immediately = 'Berehala itxi:'; $s_closed_bug_title = 'Arazoa Itxi'; -$s_bug_deleted_msg = 'Arazoa ezabatu egin da...'; +$s_bug_deleted_msg = 'Arazoa ezabatu da...'; $s_delete_bug_sure_msg = 'Ziur arazo hau ezabatu nahi duzula?'; $s_delete_bug_button = 'Ezabatu'; $s_monitor_bug_button = 'Jarraipena'; @@ -408,7 +408,7 @@ $s_select_files = 'Fitxategiak aukeratu'; $s_upload_file_button = 'Fitxategia igo'; $s_upload_files_button = 'Fitxategiak igo'; $s_max_file_size_label = 'Gehienezko tamainua:'; -$s_bug_reopened_msg = 'Arazoa berrireki egin da...'; +$s_bug_reopened_msg = 'Arazoa berrireki da...'; $s_reopen_add_bugnote_title = 'Arazoa Berrirekitzo Arrazoi-Oharra Gehitu'; $s_bugnote_add_reopen_button = 'Oharra Gehitu eta Arazoa Berrireki'; $s_resolved_bug_title = 'Arazoa Konpondu'; @@ -757,10 +757,9 @@ $s_reset_password_msg2 = 'Pasahitza Berrezarrik pasahitz hutsa berrezartzen du.' $s_show_all_users = 'Denak'; $s_users_unused = 'Erabili gabea'; $s_users_new = 'Berriak'; -$s_account_reset_protected_msg = 'Kontu babestua. Ezin da pasahitza berrezarri.'; $s_account_reset_msg = 'Aukeratutako erabiltzailearen e-posta helbidera egiaztapen mezu bat bidali da. Hau erabiliz, erabiltzaileak bere pasahitza aldatzeko aukera izango du.'; $s_account_reset_msg2 = 'Kontuaren pasahitza hutsik moduan ezarri da...'; -$s_account_unlock_msg = 'Kontua desblokeatu egin da.'; +$s_account_unlock_msg = 'Kontua desblokeatu da.'; $s_manage_user_protected_msg = 'Kontu babestua; \'Sarbide Maila\' eta \'Gaitua\' eremuak ezin dira aldatu. Beste eremuak arazorik gabe eguneratu dira.'; $s_manage_user_updated_msg = 'Kontua arazorik gabe eguneratu da...'; $s_email_user_updated_subject = 'Kontua eguneratu da'; @@ -818,7 +817,7 @@ $s_project_documentation_title = 'Proiektuaren Dokumentazioa'; $s_user_documentation = 'Lankidearen Dokumentazioa'; $s_project_documentation = 'Proiektuaren Dokumentazioa'; $s_add_file = 'Fitxategia gehitu'; -$s_project_document_updated = 'Proeiktuaren eguneraketa arazorik gabe egin da.'; +$s_project_document_updated = 'Proiektuaren eguneratzea arazorik gabe egin da.'; $s_project_user_added_msg = 'Erabiltzailea arazorik gabe gehitu da proiektuan.'; $s_project_removed_user_msg = 'Erabiltzailea proiektutik arazorik gabe ezabatu da.'; $s_remove_user_sure_msg = 'Ziur erabiltzaile hau ezabatu nahi duzula?'; diff --git a/lang/strings_belarusian_tarask.txt b/lang/strings_belarusian_tarask.txt index d4545adc462..a40fb3097ba 100644 --- a/lang/strings_belarusian_tarask.txt +++ b/lang/strings_belarusian_tarask.txt @@ -762,7 +762,6 @@ $s_reset_password_msg2 = 'Ачыстка паролю ўстановіць пу $s_show_all_users = 'Усе'; $s_users_unused = 'Невыкарыстоўваемыя'; $s_users_new = 'Новы'; -$s_account_reset_protected_msg = 'Рахунак абаронены. Немагчыма ачысьціць пароль.'; $s_account_reset_msg = 'Запыт на пацьверджаньне быў дасланы на выбраны карыстальнікам адрас электроннай пошты. Выкарыстоўваючы яго, карыстальнік можа зьмяніць свой пароль.'; $s_account_reset_msg2 = 'Быў устаноўлены пусты пароль рахунку…'; $s_account_unlock_msg = 'Рахунак быў разблякаваны.'; diff --git a/lang/strings_breton.txt b/lang/strings_breton.txt index 514eb667736..078f88b1cd5 100644 --- a/lang/strings_breton.txt +++ b/lang/strings_breton.txt @@ -230,6 +230,7 @@ $s_new_account_signup_msg = 'Krouet eo bet ar gont-mañ :'; $s_reset_request_msg = 'Unan bennak (c\'hwi, moarvat) en deus goulennet ur cheñchamant ger-tremen da wiriañ dre bostel. Ma ne oa ket c\'hwi, lezit ar gemennadenn-mañ a-gostez ha ne c\'hoarvezo netra. M\'hoc\'h eus goulennet ar gwiriadur-mañ, kit d\'an URL-mañ evit cheñch ho ker-tremen :'; +$s_reset_request_admin_msg = 'Adderaouekaet eo bet ho ker-tremen. Kit war an URL da heul evit spisaat unan nevez :'; $s_reset_request_in_progress_msg = 'M\'hoc\'h eus pourchaset an anv implijer hag ar chomlec\'h postel reizh evit ho kont, hon eus kaset deoc\'h ur postel kadarnaat d\'ar chomlec\'h-se. Ur wech ma vo resevet ar gemennadenn, grit diouzh an titouroù pourchaset evit cheñch ger-tremen ho kont.'; $s_email_notification_title_for_status_bug_new = 'An draen-mañ zo bremañ er statud NEVEZ (adarre)'; $s_email_notification_title_for_status_bug_feedback = 'An draen-mañ en deus ezhomm eus hoc\'h evezhiadenn.'; @@ -761,7 +762,6 @@ $s_reset_password_msg2 = 'Adderaouekaat ar ger-tremen a laka ar ger-tremen goull $s_show_all_users = 'An holl'; $s_users_unused = 'Dizimplij'; $s_users_new = 'Nevez'; -$s_account_reset_protected_msg = 'Kont gwarezet. Ne c\'haller ket adderaouekaat ar ger-tremen.'; $s_account_reset_msg = 'Kaset ez eus bet ur goulenn kadarnaat da chomlec\'h postel an implijer diuzet. Gant se e c\'hallo an implijer cheñch e c\'her-tremen.'; $s_account_reset_msg2 = 'Goulloet eo bet ger-tremen ar gont...'; $s_account_unlock_msg = 'Dibrennet eo bet ar gont.'; @@ -1281,7 +1281,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'N\'eus ket eus ar c\'havlec\'h. Gwiriit arv $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Ur raktres en anv-se zo anezhañ dija.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Goullo e oa ur vaezienn rekis. Gwiriit ho roadennoù, mar plij.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Talvoud direizh evit\'%1$s\''; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Gwarezet eo ar gont-mañ. N\'oc\'h ket aotreet da vont dezhañ keit ha ma\'z eo gwarezet.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Gwarezet eo ar gont-mañ. N\'oc\'h ket aotreet da seveniñ an oberiadenn goulennet e-keit ha ma chomo evel-se.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Moned nac\'het.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'C\'hwitet eo kargadenn ar restr. Ne c\'hall ket ar restr bezañ lennet gant MantisBT. Gwiriit arventennoù ar raktres, mar plij.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'C\'hwitet eo kargadenn ar restr. Moarvat e oa re vras ment ar restr evit ho kefluniadur PHP.'; diff --git a/lang/strings_bulgarian.txt b/lang/strings_bulgarian.txt index c77bec32e09..f62bb3ea458 100644 --- a/lang/strings_bulgarian.txt +++ b/lang/strings_bulgarian.txt @@ -767,7 +767,6 @@ $s_reset_password_msg2 = '"Нова парола" сменя паролата н $s_show_all_users = 'ВСИЧКИ'; $s_users_unused = 'Неизползван'; $s_users_new = 'Нов'; -$s_account_reset_protected_msg = 'Профилът е защитен. Забрана за смяна на паролата.'; $s_account_reset_msg = 'Изпратено е потвърждаващо писмо на избрания email адрес. Чрез това писмо потребителят може да смени паролата си'; $s_account_reset_msg2 = 'Паролата е сменена на празна парола.'; $s_account_unlock_msg = 'Профилът е отключен.'; diff --git a/lang/strings_catalan.txt b/lang/strings_catalan.txt index 0412b50e9a1..db332cb170d 100644 --- a/lang/strings_catalan.txt +++ b/lang/strings_catalan.txt @@ -699,7 +699,6 @@ $s_reset_password_msg2 = 'Restableix la contrasenya deixant-la en blanc.'; $s_show_all_users = 'Tots'; $s_users_unused = 'No usat'; $s_users_new = 'Nou'; -$s_account_reset_protected_msg = 'Compte protegit. No és possible restablir la contrasenya.'; $s_account_reset_msg = 'S\'ha enviat un correu de confirmació a l\'adreça de correu electrònic...'; $s_account_reset_msg2 = 'La contrasenya s\'ha establert en blanc...'; $s_account_unlock_msg = 'El compta ha estat desbloquejat.'; diff --git a/lang/strings_chinese_simplified.txt b/lang/strings_chinese_simplified.txt index c63a9b755ab..ed06967835c 100644 --- a/lang/strings_chinese_simplified.txt +++ b/lang/strings_chinese_simplified.txt @@ -62,6 +62,7 @@ * @author 佛壁灯 * @author 夢蝶葬花 * @author 沈澄心 + * @author 邢家朋 */ $s_actiongroup_menu_move = '移动'; @@ -248,6 +249,7 @@ $s_new_account_signup_msg = '已创建如下账号:'; $s_reset_request_msg = '有人(可能是您)通过电子邮件确认请求了一次密码更改。如果这不是您,可忽略这条消息,不会发生任何事情。 如果您请求了此次确认,请访问以下URL来更改您的密码:'; +$s_reset_request_admin_msg = '您的密码已被重置。请访问以下网址以设置新密码:'; $s_reset_request_in_progress_msg = '请填好你的用户名和邮件地址,系统将自动发确认邮件到你的信箱,收到邮件后请按邮件里的步骤修改你的密码。'; $s_email_notification_title_for_status_bug_new = '以下问题现已(再次)属于新建状态'; $s_email_notification_title_for_status_bug_feedback = '以下问题需要您的反馈。'; @@ -777,7 +779,6 @@ $s_reset_password_msg2 = '如果重置密码,新密码将变为空。'; $s_show_all_users = '全部'; $s_users_unused = '未用'; $s_users_new = '新的'; -$s_account_reset_protected_msg = '帐号受保护,不能重置密码。'; $s_account_reset_msg = '一封确认请求已发往选定用户的电子邮件地址。通过使用它,用户将可以更改他们的密码。'; $s_account_reset_msg2 = '账号密码已经置为空...'; $s_account_unlock_msg = '该帐户已解锁。'; @@ -1294,7 +1295,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = '目录不存在;请检查项目设置。' $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = '已经存在一个同名的项目。'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = '字段“%1$s”是必须填写的,不能为空白,请重新填写。'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = '用于“%1$s”的值无效'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = '该帐号设置为被保护状态,解除保护前你不能使用该账号。'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = '该帐号设置为被保护状态,在账户保护解除之前,您不能执行所要求的操作。'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = '无权访问。'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = '文件上传失败,MantisBT 系统无法读取文件;请检查项目设置。'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = '文件上传失败,可能是文件大小超出 PHP 的上传上限造成的。'; diff --git a/lang/strings_chinese_traditional.txt b/lang/strings_chinese_traditional.txt index b5b751e3298..8d17de73923 100644 --- a/lang/strings_chinese_traditional.txt +++ b/lang/strings_chinese_traditional.txt @@ -241,6 +241,7 @@ $s_new_account_signup_msg = '下列帳號已經建立完成:'; $s_reset_request_msg = '不明人士 (可能是你自己) 提出更改密碼的請求,若您沒有提出這個請求,您可以直接忽略這封確認信件。 若這個請求確定是您提出的,請進入下列的網址來更改您的密碼:'; +$s_reset_request_admin_msg = '您的密碼已被重新設定。請訪問以下 URL 來設定新密碼:'; $s_reset_request_in_progress_msg = '若您提供的帳號及電子郵件信箱正確,系統將會自動寄發一封確認信到你的電子郵件信箱。當你收到這封確認信,請依照信中的指示的步驟更改您的密碼。'; $s_email_notification_title_for_status_bug_new = '下列問題現在被重設為 [新問題] 狀態。'; $s_email_notification_title_for_status_bug_feedback = '下列問題需要您的 [回覆]。'; @@ -772,7 +773,6 @@ $s_reset_password_msg2 = '重新設定密碼為空白。'; $s_show_all_users = '全部'; $s_users_unused = '未使用'; $s_users_new = '新增'; -$s_account_reset_protected_msg = '帳號受保護。無法重設密碼。'; $s_account_reset_msg = '確認訊息已寄送至選擇使用者的電子郵件信箱, 使用此功能,使用者將可以更改自己的密碼。'; $s_account_reset_msg2 = '此帳號的密碼已設為空白...'; @@ -1293,7 +1293,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = '該目錄不存在。 請檢查專案設定 $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = '此專案名稱已存在。'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = '必填欄位 \'%1$s\' 是空值。 請重新檢查你輸入的資料。'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = '用於「%1$s」的無效值'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = '此帳號目前被保護。 您不被允許執行此作業直到帳號保護解除之前。'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = '此帳號目前被保護。直到帳號保護解除之前,您不被允許執行請求的操作。'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = '拒絕存取。'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = '檔案上傳失敗,MantisBT 無法讀取檔案。 請檢查該專案設定。'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = '檔案上傳失敗。 可能因檔案大小超過目前 PHP 所允許的範圍。'; diff --git a/lang/strings_croatian.txt b/lang/strings_croatian.txt index 29a69c5567e..1888ec82a0e 100644 --- a/lang/strings_croatian.txt +++ b/lang/strings_croatian.txt @@ -311,7 +311,6 @@ $s_edit_user_title = 'Editiraj korisnika'; $s_reset_password_button = 'Resetiraj zaporku'; $s_delete_user_button = 'Obriši korisnika'; $s_reset_password_msg = 'Reset Password sends the confirmation URL via email.'; -$s_account_reset_protected_msg = 'Korisnički račun zaštićen. Ne mogu resetirati zaporku.'; $s_account_reset_msg = 'Confirmation message has been sent to your email address...'; $s_account_reset_msg2 = 'Postavljena je prazna korisnička zaporka...'; $s_manage_user_protected_msg = 'Korisnički račun zaštićen; polja \'Razina pristupa\' i \'Omogućeno\' ne mogu se promijeniti. Ostala polja su uspješno ažurirana.'; diff --git a/lang/strings_czech.txt b/lang/strings_czech.txt index 55d7ad8af3c..0203d1abdd3 100644 --- a/lang/strings_czech.txt +++ b/lang/strings_czech.txt @@ -774,7 +774,6 @@ $s_reset_password_msg2 = 'Změna hesla nastaví prázdné heslo.'; $s_show_all_users = 'všichni'; $s_users_unused = 'Nepoužité'; $s_users_new = 'Nové'; -$s_account_reset_protected_msg = 'Účet je chráněn. Není možné změnit heslo.'; $s_account_reset_msg = 'Potvrzovací dopis byl odeslán na vaši elektronickou adresu...'; $s_account_reset_msg2 = 'Heslo k účtu bylo nastaveno na prázdné...'; $s_account_unlock_msg = 'Účet byl odemčen.'; diff --git a/lang/strings_danish.txt b/lang/strings_danish.txt index dd483fe5429..63e15d56075 100644 --- a/lang/strings_danish.txt +++ b/lang/strings_danish.txt @@ -757,7 +757,6 @@ $s_reset_password_msg2 = 'Nulstil adgangskode stiller adgangskoden til at være $s_show_all_users = 'Alle'; $s_users_unused = 'Ubrugt'; $s_users_new = 'Ny'; -$s_account_reset_protected_msg = 'Beskyttet konto. Kan ikke nulstille adgangskode.'; $s_account_reset_msg = 'En bekræftigelsesmeddelelse er blevet sendt til den valgte brugers e-mailadresse. Ved hjælp af den kan brugeren ændre sin adgangskode.'; $s_account_reset_msg2 = 'Kontoens adgangskode nulstillet...'; $s_account_unlock_msg = 'Kontoen er blevet låst op.'; diff --git a/lang/strings_dutch.txt b/lang/strings_dutch.txt index 9dceb47a362..6ddf52f5b72 100644 --- a/lang/strings_dutch.txt +++ b/lang/strings_dutch.txt @@ -770,7 +770,6 @@ $s_reset_password_msg2 = 'Instellen van wachtwoord op begininstellingen stelt he $s_show_all_users = 'Alle'; $s_users_unused = 'Ongebruikt'; $s_users_new = 'Nieuw'; -$s_account_reset_protected_msg = 'Deze account is beschermd. Het wachtwoord kan niet opnieuw worden ingesteld.'; $s_account_reset_msg = 'Er is een bevestigingsbericht verstuurd naar het e-mailadres van gebruiker. Hiermee kan de gebruiker het wachtwoord wijzigen.'; $s_account_reset_msg2 = 'Het wachtwoord voor de gebruiker ingesteld op leeg.'; $s_account_unlock_msg = 'De account is ontgrendeld.'; diff --git a/lang/strings_english.txt b/lang/strings_english.txt index dd32245fec2..18e13238f1c 100644 --- a/lang/strings_english.txt +++ b/lang/strings_english.txt @@ -286,6 +286,8 @@ $s_new_account_signup_msg = 'The following account has been created:'; $s_reset_request_msg = 'Someone (presumably you) requested a password change through e-mail verification. If this was not you, ignore this message and nothing will happen. If you requested this verification, visit the following URL to change your password:'; +$s_reset_request_admin_msg = 'Your password has been reset. Please visit the following URL to set a new one:'; + $s_reset_request_in_progress_msg = 'If you supplied the correct username and e-mail address for your account, we will now have sent a confirmation message to that e-mail address. Once the message has been received, follow the instructions provided to change the password on your account.'; $s_email_notification_title_for_status_bug_new = 'The following issue is now in status NEW (again)'; @@ -995,7 +997,6 @@ $s_users_unused = 'Unused'; $s_users_new = 'New'; # manage_user_reset.php -$s_account_reset_protected_msg = 'Account protected. Cannot reset the password.'; $s_account_reset_msg = 'A confirmation request has been sent to the selected user\'s e-mail address. Using this, the user will be able to change their password.'; $s_account_reset_msg2 = 'Account password has been set to blank...'; $s_account_unlock_msg = 'The account has been unlocked.'; @@ -1288,10 +1289,8 @@ $s_add_user_to_monitor = 'Add'; $s_browser_does_not_support_audio = 'Your browser does not support audio tag.'; $s_browser_does_not_support_video = 'Your browser does not support video tag.'; -# view_bug_page.php +# view.php $s_bug_view_title = 'View Issue Details'; - -# bug_monitor_list_view_inc.php $s_no_users_monitoring_bug = 'There are no users monitoring this issue.'; $s_users_monitoring_bug = 'Users monitoring this issue'; $s_monitoring_user_list = 'User List'; @@ -1657,7 +1656,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'The directory does not exist. Please check $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'A project with that name already exists.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'A necessary field "%1$s" was empty. Please recheck your inputs.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Invalid value for \'%1$s\''; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'This account is protected. You are not allowed to access this until the account protection is lifted.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'This account is protected. You are not allowed to perform the requested operation until the account protection is lifted.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Access Denied.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'File upload failed. File is not readable by MantisBT. Please check the project settings.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'File upload failed. This is likely because the filesize was larger than is currently allowed by this PHP installation.'; diff --git a/lang/strings_eo.txt b/lang/strings_eo.txt index 70e34ed65f0..5f39f93cfb0 100644 --- a/lang/strings_eo.txt +++ b/lang/strings_eo.txt @@ -165,7 +165,7 @@ $s_update_severity_button = 'Ĝisdatigi Severecon'; $s_printing_options_link = 'Opcioj pri Presado'; $s_bugnote_date = 'Dato de noto'; $s_bugnote_description = 'Priskribo de noto'; -$s_go_back = 'Reen'; +$s_go_back = 'Reveni'; $s_proceed = 'Daŭrigi'; $s_switch = 'Ŝanĝi'; $s_logged_in_as = 'Elsalutinta kiel'; diff --git a/lang/strings_estonian.txt b/lang/strings_estonian.txt index a5876ca3ead..0b3bdbbd718 100644 --- a/lang/strings_estonian.txt +++ b/lang/strings_estonian.txt @@ -669,7 +669,6 @@ $s_reset_password_msg2 = 'Parooli algseade taastamine annab kasutajale tühja pa $s_show_all_users = 'Kõik'; $s_users_unused = 'Pole kasutuses'; $s_users_new = 'Uus'; -$s_account_reset_protected_msg = 'Kasutajatunnus kaitstud. Parooli algseade taastamine pole võimalik.'; $s_account_reset_msg = 'Kinnitusteade on saadetud kasutajakonto e-posti aadressile...'; $s_account_reset_msg2 = 'Kasutajale on antud tühi parool...'; $s_manage_user_protected_msg = 'Kasutajatunnus on kaitstud. Juurdepääsu ja kasutusõiguste tase kaitstud. Teised kasutaja andmed uuendatud...'; diff --git a/lang/strings_finnish.txt b/lang/strings_finnish.txt index a10c89e62c8..d6dc8a3f2a2 100644 --- a/lang/strings_finnish.txt +++ b/lang/strings_finnish.txt @@ -685,7 +685,6 @@ $s_reset_password_msg2 = 'Resetoi salasana asettaa käyttäjälle tyhjän salasa $s_show_all_users = 'Kaikki'; $s_users_unused = 'Ei käytössä'; $s_users_new = 'Uusi'; -$s_account_reset_protected_msg = 'Käyttäjätunnus on suojattu. Salasanaa ei voida resetoida.'; $s_account_reset_msg = 'Vahvistusviesti on lähetetty sähköpostiosoitteeseesi...'; $s_account_reset_msg2 = 'Käyttäjätunnukselle on asetettu tyhjä salasana...'; $s_manage_user_protected_msg = 'Käyttäjätunnus on suojattu. Kenttiö ”käyttöoikeustaso” ja ”käytössä” ei voi muuttaa. Muut kentät päivitettiin.'; diff --git a/lang/strings_french.txt b/lang/strings_french.txt index ac7fe6c74e4..5e77cb79ac7 100644 --- a/lang/strings_french.txt +++ b/lang/strings_french.txt @@ -254,6 +254,7 @@ $s_new_account_signup_msg = 'Le compte suivant a été créé :'; $s_reset_request_msg = 'Quelqu\'un (probablement vous) a demandé un changement de mot de passe avec vérification par courriel. Si ce n’était pas vous, ignorez ce message et il n’arrivera rien. Si vous avez demandé cette vérification, visitez l’URL suivante pour changer votre mot de passe :'; +$s_reset_request_admin_msg = 'Votre mot de passe a été réinitialisé. Veuillez aller sur l’URL suivante pour en définir un nouveau :'; $s_reset_request_in_progress_msg = 'Si vous avez fourni le nom d’utilisateur et l’adresse de courriel corrects pour votre compte, nous vous avons maintenant envoyé un message de confirmation à cette adresse de courriel. Une fois le message reçu, suivez les instructions fournies pour changer le mot de passe de votre compte.'; $s_email_notification_title_for_status_bug_new = 'L’anomalie suivante est maintenant au statut NOUVELLE (encore)'; $s_email_notification_title_for_status_bug_feedback = 'L’anomalie suivante nécessite votre AVIS.'; @@ -786,7 +787,6 @@ $s_reset_password_msg2 = 'Réinitialiser le mot de passe le laisse à blanc : $s_show_all_users = 'Tous'; $s_users_unused = 'Inutilisé'; $s_users_new = 'Nouveau'; -$s_account_reset_protected_msg = 'Ce compte est protégé. Vous ne pouvez pas réinitialiser le mot de passe.'; $s_account_reset_msg = 'Un message de confirmation a été envoyé à l’adresse courriel de l’utilisateur sélectionné. Grace à ceci, l’utilisateur sera en mesure de modifier son mot de passe.'; $s_account_reset_msg2 = 'Mot de passe du compte a été mis à blanc...'; $s_account_unlock_msg = 'Le compte a été déverrouillé.'; @@ -1309,7 +1309,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'Le répertoire n’existe pas. Veuillez vé $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Un projet ayant ce nom existe déjà.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Le champ obligatoire « %1$s » n’est pas renseigné. Veuillez vérifier à nouveau votre saisie.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Valeur non valide pour « %1$s »'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Ce compte est protégé. Vous n’êtes pas autorisé à accéder à ceci tant que la protection du compte n’est pas levée.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Ce compte est protégé. Vous n’êtes pas autorisé à effectuer l’opération demandée tant que la protection du compte n’est pas levée.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Accès interdit.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'Échec du dépôt de fichier. Le fichier n’est pas lisible par MantisBT. Vérifiez la configuration du projet.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'Échec du téléversement de fichier. La taille du fichier était vraisemblablement plus grande que ce qui est actuellement permis par cette installation de PHP.'; diff --git a/lang/strings_galician.txt b/lang/strings_galician.txt index d1e6591e1fc..f3c8c14b7fb 100644 --- a/lang/strings_galician.txt +++ b/lang/strings_galician.txt @@ -758,7 +758,6 @@ $s_reset_password_msg2 = '"Restablecer o contrasinal" establece o contrasinal en $s_show_all_users = 'Todos'; $s_users_unused = 'SEN USO'; $s_users_new = 'Novo'; -$s_account_reset_protected_msg = 'Conta protexida. Non se pode restablecer o contrasinal.'; $s_account_reset_msg = 'Unha solicitude de confirmación foi enviada ao enderezo de correo electrónico do usuario seleccionado. Mediante isto, o usuario será capaz de cambiar o seu contrasinal.'; $s_account_reset_msg2 = 'O contrasinal da conta foi establecido en branco...'; $s_account_unlock_msg = 'A conta foi desbloqueada.'; diff --git a/lang/strings_georgian.txt b/lang/strings_georgian.txt index c67fccbbf03..c7f0ca97fac 100644 --- a/lang/strings_georgian.txt +++ b/lang/strings_georgian.txt @@ -572,7 +572,6 @@ $s_impersonate_user_button = 'მომხმარებლის ჩატვ $s_show_all_users = 'ყველა'; $s_users_unused = 'გამოუყენებელი'; $s_users_new = 'ახალი'; -$s_account_reset_protected_msg = 'დაცული მომხმარებლის ანგარიში. შეუძლებელია პაროლის დარეზეტება.'; $s_account_unlock_msg = 'მომხმარებლის ანგარიშს ბლოკი მოიხსნა.'; $s_manage_user_updated_msg = 'მომხმარებლის ანგარიში წარმატებით განახლდა...'; $s_email_user_updated_subject = 'მომხმარებლის ანგარიში განახლდა'; diff --git a/lang/strings_german.txt b/lang/strings_german.txt index 2bdcbf38f64..e3c660bc482 100644 --- a/lang/strings_german.txt +++ b/lang/strings_german.txt @@ -780,7 +780,6 @@ $s_reset_password_msg2 = 'Passwort zurücksetzen setzt ein leeres Passwort.'; $s_show_all_users = 'ALLE'; $s_users_unused = 'UNBENUTZT'; $s_users_new = 'NEU'; -$s_account_reset_protected_msg = 'Konto geschützt. Passwort kann nicht gelöscht werden.'; $s_account_reset_msg = 'Bestätigungsnachricht wurde an Ihre E-Mail-Adresse geschickt …'; $s_account_reset_msg2 = 'Leeres Passwort wurde gesetzt …'; $s_account_unlock_msg = 'Das Benutzerkonto wurde entsperrt'; diff --git a/lang/strings_greek.txt b/lang/strings_greek.txt index ade29eea04a..a56b5fd89cc 100644 --- a/lang/strings_greek.txt +++ b/lang/strings_greek.txt @@ -681,7 +681,6 @@ $s_reset_password_msg2 = 'Ο Μηδενισμός Κωδικού δημιουρ $s_show_all_users = 'ΟΛΟΙ'; $s_users_unused = 'Αχρησιμοποίητος'; $s_users_new = 'Νέος'; -$s_account_reset_protected_msg = 'Προστατευμένος λογαριασμός. Δεν μπορεί να μηδενιστεί ο κωδικός.'; $s_account_reset_msg = 'A confirmation request has been sent to the selected user\'s email address. Using this, the user will be able to change their password.'; $s_account_reset_msg2 = 'Ο κωδικός λογαριασμού ορίστηκε κενός...'; $s_manage_user_updated_msg = 'Ο λογαριασμός ανανεώθηκε επιτυχώς...'; diff --git a/lang/strings_hebrew.txt b/lang/strings_hebrew.txt index 4e6db446137..0e4ced0ef2f 100644 --- a/lang/strings_hebrew.txt +++ b/lang/strings_hebrew.txt @@ -744,7 +744,6 @@ $s_reset_password_msg2 = 'איפוס הססמה מוחק את הססמה הקי $s_show_all_users = 'כולם'; $s_users_unused = 'לא בשימוש'; $s_users_new = 'חדש'; -$s_account_reset_protected_msg = 'החשבון מוגן. לא ניתן לאפס את הססמה.'; $s_account_reset_msg = 'הודעת אישור נשלחה בדוא״ל למשתמש בחשבון. ההודעה תפנה את המשתמש לתהליך בחירת ססמה.'; $s_account_reset_msg2 = 'הוגדרה ססמה ריקה...'; $s_account_unlock_msg = 'הנעילה של החשבון הזה בוטלה.'; diff --git a/lang/strings_hungarian.txt b/lang/strings_hungarian.txt index 146a3fc3713..eebbbe796d7 100644 --- a/lang/strings_hungarian.txt +++ b/lang/strings_hungarian.txt @@ -765,7 +765,6 @@ $s_reset_password_msg2 = 'A jelszó-visszaállítás üresre állítja a jelszó $s_show_all_users = 'Mind'; $s_users_unused = 'Nem használt'; $s_users_new = 'Új'; -$s_account_reset_protected_msg = 'Védett fiók, a jelszó nem állítható vissza.'; $s_account_reset_msg = 'Egy megerősítési kérés lett küldve a kiválasztott felhasználó e-mail címére, melynek használatával megváltoztathatja a jelszavát.'; $s_account_reset_msg2 = 'A fiók jelszava üresre lett állítva…'; $s_account_unlock_msg = 'A fiók zárolása feloldva.'; diff --git a/lang/strings_icelandic.txt b/lang/strings_icelandic.txt index 1695f801662..4826f803b91 100644 --- a/lang/strings_icelandic.txt +++ b/lang/strings_icelandic.txt @@ -751,7 +751,6 @@ $s_reset_password_msg2 = 'Endurstillt lykilorð er núllstillt.'; $s_show_all_users = 'Allir'; $s_users_unused = 'Ónotað'; $s_users_new = 'Nýtt'; -$s_account_reset_protected_msg = 'Aðgangur varinn. Ekki er hægt að endurstilla lykilorð.'; $s_account_reset_msg = 'Beiðni um staðfestingu hefur verið send í tölvupósti til notandans. Notandinn getur því breytt lykilorði sínu.'; $s_account_reset_msg2 = 'Aðgangs lykilorðið hefur verið núllstillt...'; $s_account_unlock_msg = 'Aðgangnum hefur verið aflæst.'; diff --git a/lang/strings_interlingua.txt b/lang/strings_interlingua.txt index 3bac1abd840..defc46199f9 100644 --- a/lang/strings_interlingua.txt +++ b/lang/strings_interlingua.txt @@ -757,7 +757,6 @@ $s_reset_password_msg2 = 'Le reinitialisation del contrasigno lo rende vacue.'; $s_show_all_users = 'Totes'; $s_users_unused = 'Non usate'; $s_users_new = 'Nove'; -$s_account_reset_protected_msg = 'Conto protegite. Non pote reinitialisar le contrasigno.'; $s_account_reset_msg = 'Un requesta de confirmation ha essite inviate al adresse de e-mail del usator seligite. Usante iste, le usator potera cambiar su contrasigno.'; $s_account_reset_msg2 = 'Le contrasigno del conto ha essite mittite in blanco...'; $s_account_unlock_msg = 'Le conto ha essite disblocate.'; diff --git a/lang/strings_italian.txt b/lang/strings_italian.txt index c37dd07e705..6f72fc586ac 100644 --- a/lang/strings_italian.txt +++ b/lang/strings_italian.txt @@ -778,7 +778,6 @@ $s_reset_password_msg2 = 'Resettando la password, questa verrà impostata come v $s_show_all_users = 'Tutti'; $s_users_unused = 'Non usato'; $s_users_new = 'Nuovo'; -$s_account_reset_protected_msg = 'Account protetto. Non è possibile resettare la password.'; $s_account_reset_msg = 'Il codice di convalida è stata inviato via email all\'utente... Con quello l\'utente sarà in grado di cambiare la propria password.'; $s_account_reset_msg2 = 'La password è stata rimossa...'; $s_account_unlock_msg = 'L\'account è stato sbloccato.'; @@ -1299,7 +1298,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'La directory non esiste. Controlla le impo $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Un progetto con quel nome esiste già.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Il campo obbligatorio "%1$s" era vuoto. Ricontrolla le informazioni che hai inserito.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Valore non valido per \'%1$s\''; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Questo account è protetto. Non ti è consentito accedere finché non verrà tolta la protezione.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Questo account è protetto. Non ti è consentito eseguire l\'operazione richiesta finché non verrà tolta la protezione.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Accesso negato.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'Il caricamento del file è fallito. Il file non risulta leggibile da MantisBT. Controlla le impostazioni del progetto'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'Il caricamento del file è fallito. Molto probabilmente perché la sua dimensione superava quella massima consentita da questa installazione PHP.'; diff --git a/lang/strings_japanese.txt b/lang/strings_japanese.txt index dc86e1ba9b5..c8d20059ffc 100644 --- a/lang/strings_japanese.txt +++ b/lang/strings_japanese.txt @@ -44,6 +44,7 @@ * @author Hiro884 * @author Macofe * @author Mfuji + * @author Object*tofu * @author Omotecho * @author Otokoume * @author Ryoon @@ -241,6 +242,7 @@ $s_new_account_signup_msg = '以下のアカウントを作成しました:'; $s_reset_request_msg = '誰か (おそらくあなた) がメール検証でパスワード変更を申請しました。もし覚えがない場合は、このメッセージは無視してください。そうすれば何も起こりません。 この申請をしたのがあなたであれば、パスワードを変更するために次の URL を参照してください:'; +$s_reset_request_admin_msg = 'あなたのパスワードはリセットされました。このURLを入力し、新しいパスワードを設定して下さい。'; $s_reset_request_in_progress_msg = 'あなたのアカウントに対応する正しいユーザー名とメールアドレスを指定していただければ、今すぐ、そのメールアドレスに確認メッセージを送ります。そのメッセージを受け取ったら、指示に従ってあなたのアカウントのパスワードを変更してください。'; $s_email_notification_title_for_status_bug_new = '次の課題のステータスが再び新規になりました。'; $s_email_notification_title_for_status_bug_feedback = '次の課題について、もっと情報が必要です。'; @@ -653,6 +655,7 @@ $s_resolved_status = '解決済とするステータス'; $s_readonly_status = '編集不可にするステータス'; $s_reopen_status = '差し戻しされた課題に設定するステータス'; $s_reopen_resolution = '差し戻された課題に設定する解決状況'; +$s_limit_view_unless_threshold_option = '他の利用者の課題を見る。(もし、課題が設定されていない場合、報告、処理、監視されている課題に限定されます。)'; $s_config_delete_sure = '以下の設定を本当に削除しますか:'; $s_in_project = 'プロジェクト:'; $s_delete_config_button = '設定を削除'; @@ -669,6 +672,7 @@ $s_set_configuration_option_action_create = '設定オプションを作成す $s_set_configuration_option_action_edit = '設定オプションを編集する'; $s_set_configuration_option_action_clone = '設定オプションをコピーする'; $s_set_configuration_option_action_view = '設定オプションの確認'; +$s_show_all_complex = '全ての%1$sオプションを表示'; $s_plugin = 'プラグイン'; $s_plugins_installed = 'インストール済みプラグイン'; $s_plugins_available = '利用できるプラグイン'; @@ -771,7 +775,6 @@ $s_reset_password_msg2 = 'パスワードのリセットを行うと、パスワ $s_show_all_users = 'すべて'; $s_users_unused = '未使用'; $s_users_new = '新規'; -$s_account_reset_protected_msg = 'アカウントが保護されています。パスワードをリセットできません。'; $s_account_reset_msg = '選択したユーザーのメールアドレスに、確認のメールを送付しました。メールの指示に従うとパスワードを変更できます。'; $s_account_reset_msg2 = 'アカウントのパスワードを空にしました...'; $s_account_unlock_msg = 'アカウントのロックを解除しました。'; @@ -1096,6 +1099,8 @@ $s_dependency_graph = '依存グラフ'; $s_vertical = '縦'; $s_horizontal = '横'; $s_view_issue = '課題を表示'; +$s_show_summary = '概要を見る'; +$s_hide_summary = '概要を隠す'; $s_perm_rpt_capability = '機能'; $s_view = '参照'; $s_issues = '課題'; @@ -1239,6 +1244,8 @@ $s_copy_columns_to = '指定したプロジェクトへコピー'; $s_due_date = '期日'; $s_overdue = '期限超過'; $s_overdue_since = '期限切れ %1$s'; +$s_overdue_one_day = '1日以内に延滞'; +$s_overdue_days = '%1$d 以内に延滞'; $s_view_account_title = 'ユーザー情報'; $s_manage_user = 'ユーザー管理'; $s_install_information = 'MantisBT のインストール情報'; @@ -1288,7 +1295,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'ディレクトリが存在しません。 $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'その名前のプロジェクトが既に存在します。'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = '必須欄「%1$s」が入力されていません。入力を確認してください。'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = '\'%1$s\' への不正な値'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = '権限がありません。権限を上げてアクセスしてください。'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'このアカウントは保護されています。アカウント保護が解除されるまで、ご希望の操作をすることは許可されません。'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'アクセスが拒否されました。'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'ファイルのアップロードに失敗しました。MantisBT がファイルを読めません。プロジェクト管理を確認してください。'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'ファイルのアップロードに失敗しました。PHP で設定されているファイルサイズより大きいことが問題です。設定を確認してください。'; diff --git a/lang/strings_korean.txt b/lang/strings_korean.txt index 561ba1e5243..b0b3457f1ab 100644 --- a/lang/strings_korean.txt +++ b/lang/strings_korean.txt @@ -238,6 +238,7 @@ $s_new_account_signup_msg = '다음 계정이 생성되었습니다:'; $s_reset_request_msg = '누군가가(아마도 자신이) 이메일 인증을 통해 비밀번호 바꾸기을 요청했습니다. 당신이 아니라면, 이 메시지를 무시하면 아무 일도 일어나지 않을 것입니다. 당신이 이 확인을 요청했다면, 비밀번호를 바꾸기 위해 다음 URL을 방문하세요:'; +$s_reset_request_admin_msg = '비밀번호가 재설정되었습니다. 새 비밀번호를 설정하려면 다음 URL을 방문해 주십시오:'; $s_reset_request_in_progress_msg = '입력하신 메일 내용을 확인하셔서 비밀번호를 변경하시면 됩니다.'; $s_email_notification_title_for_status_bug_new = '다음 이슈가 [(재)발생]했습니다.'; $s_email_notification_title_for_status_bug_feedback = '다음 이슈는 [추가 정보]가 필요합니다.'; @@ -756,7 +757,6 @@ $s_reset_password_msg2 = '비밀번호 초기화는 비밀번호를 공백으로 $s_show_all_users = '모두'; $s_users_unused = '사용하지 않음'; $s_users_new = '새 사용자'; -$s_account_reset_protected_msg = '보호된 계정입니다. 비밀번호를 재설정할 수 없습니다.'; $s_account_reset_msg = '지정된 사용자 이메일 주소로 확인 요청을 보냈습니다. 사용자는 이 정보를 이용하여 비밀번호를 변경할 수 있습니다.'; $s_account_reset_msg2 = '계정을 비밀번호가 없는 상태로 초기화합니다...'; $s_account_unlock_msg = '계정 잠금 상태가 해제되었습니다.'; @@ -1265,7 +1265,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = '디렉토리가 존재하지 않습니다. $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = '같은 이름의 프로젝트가 이미 존재합니다.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = '필수 입력 필드 "%1$s" 누락, 입력사항을 확인하세요.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = '\'%1$s\'에 유효하지 않은 값'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = '보호중인 계정입니다. 보호를 해제하기전에는 이 계정에 접근할 수 없습니다.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = '이 계정은 보호되어 있습니다. 보호가 해제되기 전에는 요청하신 작업을 수행할 수 없습니다.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = '접근이 거부되었습니다.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = '파일 올리기를 실패했습니다. 파일을 MantisBT에서 읽을 수 없습니다. 프로젝트 설정을 확인하십시오.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = '파일 올리기를 실패했습니다. 현재 PHP 설치시 허용된 파일 크기보다 업로드하려는 파일이 큰 것 같습니다.'; diff --git a/lang/strings_latvian.txt b/lang/strings_latvian.txt index 646ebb23e2f..f2acddd5b5d 100644 --- a/lang/strings_latvian.txt +++ b/lang/strings_latvian.txt @@ -518,7 +518,6 @@ $s_delete_user_button = 'Dzēst lietotāju'; $s_reset_password_msg = 'Paroles atiestatīšana nosūta apstiprinājuma saiti, izmantojot e-pastu.'; $s_reset_password_msg2 = 'šobrīd lietotājam nav paroles (tukša).'; $s_show_all_users = 'Visi'; -$s_account_reset_protected_msg = 'Lietotāja konts ir aizsargāts. Paroli nevar atcelt.'; $s_account_reset_msg = 'Confirmation message has been sent to your email address...'; $s_account_reset_msg2 = 'Parole tagad ir tukša...'; $s_manage_user_protected_msg = 'Konts aizsargāts; Laukus "Piekļuves līmenis" un "Iespējots" nevar mainīt. Citi lauki veiksmīgi atjaunināti.'; diff --git a/lang/strings_lithuanian.txt b/lang/strings_lithuanian.txt index e1f82ac7b9a..73c8fff17ce 100644 --- a/lang/strings_lithuanian.txt +++ b/lang/strings_lithuanian.txt @@ -707,7 +707,6 @@ $s_reset_password_msg2 = 'Ši galimybė pakeičia slaptažodį tuščiu.'; $s_show_all_users = 'VISI'; $s_users_unused = 'Nenaudotas'; $s_users_new = 'Naujas'; -$s_account_reset_protected_msg = 'Vartotojo vardas apsaugotas. Slaptažodžio pakeisti negalima.'; $s_account_reset_msg = 'Patvirtinimo kodas nusiųstas į jūsų el. pašto dėžutę...'; $s_account_reset_msg2 = 'Slaptažodis pakeistas į tuščią...'; $s_account_unlock_msg = 'Paskyra atrakinta.'; diff --git a/lang/strings_luxembourgish.txt b/lang/strings_luxembourgish.txt index b173572cab8..4f5690ed30c 100644 --- a/lang/strings_luxembourgish.txt +++ b/lang/strings_luxembourgish.txt @@ -430,6 +430,7 @@ $s_timeline_more = 'Méi Evenementer...'; $MANTIS_ERROR[ERROR_SQL] = 'SQL-Feeler entdeckt.'; $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Et gëtt schonn e ¨Projet mat deem Numm.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Net valabele Wäert fir \'%1$s\''; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Dëse Benotzerkont ass gespaart. Dir däerft déi ugefroten Operatioun net maache bis d\'Spär um Benotzerkont opgehuewen ass.'; $MANTIS_ERROR[ERROR_BUGNOTE_NOT_FOUND] = 'Notiz net fonnt'; $MANTIS_ERROR[ERROR_PROJECT_NOT_FOUND] = 'Projet "%1$s" net fonnt.'; $MANTIS_ERROR[ERROR_USER_BY_NAME_NOT_FOUND] = 'Benotzer mam Numm "%1$s" net fonnt.'; diff --git a/lang/strings_macedonian.txt b/lang/strings_macedonian.txt index 13d97f9b300..8aa6a761279 100644 --- a/lang/strings_macedonian.txt +++ b/lang/strings_macedonian.txt @@ -229,6 +229,7 @@ $s_new_account_signup_msg = 'Создадена е следната сметка $s_reset_request_msg = 'Некој (веројатно Вие) побарал промена на лозинка преку потврда по е-пошта. Ако тоа не се Вие, занемарете ја поракава и ништо нема да се случи. Ако промената сте ја побарале Вие, посетете ја следнава URL-адреса за да си ја смените лозинката:'; +$s_reset_request_admin_msg = 'Вашата лозинка е спремна за поднова. Појдете на следнава адреса за да зададете нова:'; $s_reset_request_in_progress_msg = 'Ако го наведовте правилното корисничко име и е-пошта за вашата сметка, тоа значи дека на наведената адреса веќе е испратена потврдна порака. Откако ќе ја примите пораката, проследете ги наведените напатствија за да си ја смените лозинката.'; $s_email_notification_title_for_status_bug_new = 'Следниов проблем сега има статус на НОВ (повторно)'; $s_email_notification_title_for_status_bug_feedback = 'Следниов проблем бара ваш ОДЅИВ.'; @@ -673,8 +674,8 @@ $s_plugin_update = 'Поднови'; $s_plugin_actions = 'Дејства'; $s_plugin_install = 'Воспостави'; $s_plugin_upgrade = 'Надгради'; -$s_plugin_uninstall = 'Одинсталирај'; -$s_plugin_uninstall_message = 'Дали сте сигурни дека сакате да го одинсталирате приклучокот „%1$s“?'; +$s_plugin_uninstall = 'Отстрани'; +$s_plugin_uninstall_message = 'Дали сте сигурни дека сакате да го отстраните приклучокот „%1$s“?'; $s_plugin_key_label = 'Клуч:'; $s_plugin_key_met = 'приклучокот е готов'; $s_plugin_key_unmet = 'не зависи'; @@ -761,7 +762,6 @@ $s_reset_password_msg2 = '„Смени лозинка“ ја менува ло $s_show_all_users = 'Сите'; $s_users_unused = 'Неискористени'; $s_users_new = 'Нови'; -$s_account_reset_protected_msg = 'Сметката е заштитена. Не може да се менува лозинката.'; $s_account_reset_msg = 'На е-поштенската адреса на одбраниот корисник е испратено е барање за потврда. Со помош на ова барање корисникот ќе може да си ја смени лозинката.'; $s_account_reset_msg2 = 'Лоинката е поставена како празна...'; $s_account_unlock_msg = 'Сметката е отклучена.'; @@ -1283,7 +1283,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'Директориумот не посто $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Веќе постои проект со тоа име.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Неопходното поле „%1$s“ е празно. Проверете дали сè ви е пополнето како што треба.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Неважечка вредност за „%1$s“'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Сметката е заштитена. Немате дозвола за пристап сè додека заштитата не се отстрани.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Сметката е заштитена. Немате дозвола да ја извршите побараната задача сè додека не се отстрани заштитата на сметката.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Пристапот е одбиен.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'Подигањето на податотеката не успеа. Податотеката не е читлива за MantisBT. Проверете ги проектните нагодувања.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'Подигањето на податотеката не успеа. Ова веројатно се должи на тоа дека податотеката ја надминува границата на дозволена големина во оваа PHP-воспоставка.'; diff --git a/lang/strings_norwegian_bokmal.txt b/lang/strings_norwegian_bokmal.txt index 6dfe79702bd..bf5f31010ae 100644 --- a/lang/strings_norwegian_bokmal.txt +++ b/lang/strings_norwegian_bokmal.txt @@ -747,7 +747,6 @@ $s_reset_password_msg2 = 'Nullstille passord setter passordet til blank.'; $s_show_all_users = 'Alle'; $s_users_unused = 'IKKE I BRUK'; $s_users_new = 'NY'; -$s_account_reset_protected_msg = 'Kontoen er beskyttet. Kan ikke nullstille passord.'; $s_account_reset_msg = 'En bekreftelse har blitt sendt til epostadressen din ...'; $s_account_reset_msg2 = 'Kontopassordet er satt til blank ...'; $s_account_unlock_msg = 'Kontoen har blitt låst opp.'; diff --git a/lang/strings_norwegian_nynorsk.txt b/lang/strings_norwegian_nynorsk.txt index be09669608f..f06d8948316 100644 --- a/lang/strings_norwegian_nynorsk.txt +++ b/lang/strings_norwegian_nynorsk.txt @@ -300,7 +300,6 @@ $s_edit_user_title = 'Endra brukar'; $s_show_all_users = 'Alle'; $s_users_unused = 'UNYTTA'; $s_users_new = 'NYE'; -$s_account_reset_protected_msg = 'Brukarkontoen er verna. Kan ikkje nullstilla passord.'; $s_account_link = 'Kontoen min'; $s_my_view_link = 'Oversynet mitt'; $s_my_view_title_unassigned = 'Utildelte'; diff --git a/lang/strings_occitan.txt b/lang/strings_occitan.txt index 89db21b22a7..3cdbe5d2d92 100644 --- a/lang/strings_occitan.txt +++ b/lang/strings_occitan.txt @@ -707,7 +707,6 @@ $s_reset_password_msg2 = 'Reïnicializar lo senhal o daissa void.'; $s_show_all_users = 'TOTES'; $s_users_unused = 'INUTILIZAT'; $s_users_new = 'NOVÈL'; -$s_account_reset_protected_msg = 'Aqueste compte es protegit. Podètz pas reïnicializar lo senhal.'; $s_account_reset_msg = 'Lo messatge de confirmacion es estat mandat a vòstra adreça de corrièr electronic...'; $s_account_reset_msg2 = 'Lo senhal del compte es estat mes a void...'; $s_account_unlock_msg = 'Lo compte es estat desverrolhat.'; diff --git a/lang/strings_persian.txt b/lang/strings_persian.txt index 8d0824085b1..f36655a4173 100644 --- a/lang/strings_persian.txt +++ b/lang/strings_persian.txt @@ -233,7 +233,7 @@ $s_eta_enum_string = '10:هیچ,20:< یک روز,30:2-3 روز,40:< 1 هفته,5 $s_sponsorship_enum_string = '0:پرداخت نشده,1:درخواست شده,2:پرداخت شده'; $s_new_account_subject = 'ثبت حساب کاربری'; $s_new_account_greeting = 'از این‌که ثبت‌نام کردید، متشکریم. شما دارای یک حساب‌کاربری با نام "%1$s" هستید. برای تکمیل فرآیند ثبت‌نام، به لینک زیر رفته و گذرواژه‌ی خود را تنظیم کنید:'; -$s_new_account_greeting_admincreated = 'کاربر %1$s یک حساب‌کاربری برای شما با نام %2$s ایجاد کرده است. برای تکمیل فرآیند ثبت‌نام، به لینک زیر رفته و گذرواژه‌ی خود را تنظیم کنید:'; +$s_new_account_greeting_admincreated = 'کاربر %1$s یک حساب کاربری با نام %2$s برای شما ایجاد کرده است. برای تکمیل فرایند ثبت‌نام، به پیوند زیر (مطمئن شوید که در یک سطر جداگانه وارد شده است) بروید و رمز خود را تعیین کنید:'; $s_new_account_username = 'نام کاربری:'; $s_new_account_message = 'اگر شما ثبت‌نام نکرده‌اید، این پیام را نادیده بگیرید، در ضمن هیچ اتفاقی نمی‌افتد.'; $s_new_account_do_not_reply = 'لطفا به این پیام پاسخ ندهید'; @@ -752,7 +752,6 @@ $s_reset_password_msg2 = 'بازنشانی گذرواژه، گذرواژه را $s_show_all_users = 'همه'; $s_users_unused = 'استفاده نشده'; $s_users_new = 'جدید'; -$s_account_reset_protected_msg = 'حساب کاربری حفاظت شده است. امکان بازنشانی گذرواژه نیست.'; $s_account_reset_msg = 'یک درخواست تایید به ایمیل کاربر انتخاب‌شده ارسال شد. با این ایمیل کاربر می‌تواند گذرواژه‌ی خود را بازنشانی کنند.'; $s_account_reset_msg2 = 'گذرواژه‌ی حساب کاربری به مقدار خالی تنظیم شد...'; $s_account_unlock_msg = 'قفل حساب کاربری آزاد شد.'; diff --git a/lang/strings_polish.txt b/lang/strings_polish.txt index 401b4597906..bdc795f2235 100644 --- a/lang/strings_polish.txt +++ b/lang/strings_polish.txt @@ -762,7 +762,6 @@ $s_reset_password_msg2 = 'Po operacji \'Nowe hasło\' użytkownik nie będzie mu $s_show_all_users = 'WSZYSCY'; $s_users_unused = 'NIEUŻYWANY'; $s_users_new = 'NOWY'; -$s_account_reset_protected_msg = 'Konto zostało zabezpieczone. Nie można przypisać nowego hasła.'; $s_account_reset_msg = 'Wiadomość potwierdzającą wysłano na adres e-mail wybranego użytkownika. Postępując zgodnie z jej zawartością użytkownik będzie mógł zmienić swoje hasło.'; $s_account_reset_msg2 = 'Konto nie wymaga podawania hasła...'; $s_account_unlock_msg = 'Konto zostało odblokowane.'; diff --git a/lang/strings_portuguese_brazil.txt b/lang/strings_portuguese_brazil.txt index ff91454178f..23c3998fca1 100644 --- a/lang/strings_portuguese_brazil.txt +++ b/lang/strings_portuguese_brazil.txt @@ -251,6 +251,7 @@ $s_new_account_signup_msg = 'A seguinte conta foi criada:'; $s_reset_request_msg = 'Alguém (presumidamente você) solicitou uma troca de senha através da verificação de e-mail. Se este não foi você, ignore esta mensagem e nada irá acontecer. Se você solicitou esta verificação, visite o seguinte endereço para alterar a sua senha:'; +$s_reset_request_admin_msg = 'Sua senha foi alterada. Visite o seguinte URL para definir um novo:'; $s_reset_request_in_progress_msg = 'Se você forneceu o nome de usuário e endereço de e-mail corretos para a sua conta, nós teremos enviado agora uma mensagem de confirmação para este endereço de e-mail. Assim que a mensagem for recebida, siga as instruções fornecidas para mudar a senha da sua conta.'; $s_email_notification_title_for_status_bug_new = 'A seguinte tarefa está agora com status NOVO (novamente).'; $s_email_notification_title_for_status_bug_feedback = 'A seguinte tarefa requer seu RETORNO.'; @@ -782,7 +783,6 @@ $s_reset_password_msg2 = 'Redefinir Senha deixará a senha em branco.'; $s_show_all_users = 'TODOS'; $s_users_unused = 'NÃO UTILIZADO'; $s_users_new = 'NOVO'; -$s_account_reset_protected_msg = 'Conta protegida. Não se pode limpar a senha.'; $s_account_reset_msg = 'Uma solicitação de confirmação foi enviada ao endereço de e-mail do usuário selecionado. Através deste, o usuário será capaz de alterar sua senha.'; $s_account_reset_msg2 = 'A senha da conta foi deixada em branco...'; $s_account_unlock_msg = 'A conta foi desbloqueada.'; @@ -1303,7 +1303,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'O diretório não existe. Por favor, verifi $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Um projeto com este nome já existe.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Um campo necessário \'%1$s\' estava vazio. Por favor, verifique novamente suas entradas.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Valor inválido de \'%1$s\''; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Esta conta está protegida. Você não tem permissão para acessá-la até que a proteção da conta seja retirada.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Esta conta está protegida. Você não tem permissão para executar a operação solicitada até que a proteção da conta seja levantada.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Acesso Negado.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'O carregamento do arquivo falhou. O arquivo não pôde ser lido pelo MantisBT. Por favor, verifique as configurações do projeto.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'O carregamento do arquivo falhou. Provavelmente é devido ao tamanho do arquivo ser maior do que o permitido atualmente por esta instalação PHP.'; diff --git a/lang/strings_portuguese_standard.txt b/lang/strings_portuguese_standard.txt index 73d15de21dc..d422dce5f67 100644 --- a/lang/strings_portuguese_standard.txt +++ b/lang/strings_portuguese_standard.txt @@ -770,7 +770,6 @@ $s_reset_password_msg2 = 'Repor Palavra-chave configura uma senha em branco.'; $s_show_all_users = 'Todos'; $s_users_unused = 'Não usado'; $s_users_new = 'Novo'; -$s_account_reset_protected_msg = 'Conta protegida. Não é possível limpar a palavra-chave.'; $s_account_reset_msg = 'Um pedido de confirmação foi enviado para o email do utilizador. Através deste pedido, o utilizador poderá modificar a sua palavra-passe.'; $s_account_reset_msg2 = 'Palavra-chave da conta definida para vazia...'; $s_account_unlock_msg = 'A conta foi desbloqueada.'; diff --git a/lang/strings_romanian.txt b/lang/strings_romanian.txt index b2949537f16..371b5f876e6 100644 --- a/lang/strings_romanian.txt +++ b/lang/strings_romanian.txt @@ -692,7 +692,6 @@ $s_reset_password_msg2 = 'Înțializarea parolei va face ca parola să fie nulă $s_show_all_users = 'Toți'; $s_users_unused = 'Nefolosit'; $s_users_new = 'Nou'; -$s_account_reset_protected_msg = 'Cont protejat. Parola nu poate fi resetată.'; $s_account_reset_msg = 'Mesajul de confirmare a fost trimis pe adresa dumneavoastră de e-mail...'; $s_account_reset_msg2 = 'Noua parolă este nulă...'; $s_account_unlock_msg = 'Contul a fost deblocat.'; diff --git a/lang/strings_russian.txt b/lang/strings_russian.txt index 278240327f7..eb90034a0f5 100644 --- a/lang/strings_russian.txt +++ b/lang/strings_russian.txt @@ -61,6 +61,7 @@ * @author Nitch * @author Okras * @author Ole Yves + * @author Pacha Tchernof * @author Redredsonia * @author Sabbah * @author Semen @@ -251,6 +252,7 @@ $s_new_account_email = 'Адрес электронной почты:'; $s_new_account_IP = 'IP-адрес клиента:'; $s_new_account_signup_msg = 'Создана следующая учётная запись:'; $s_reset_request_msg = 'Получен запрос на изменение пароля с помощью проверочного письма'; +$s_reset_request_admin_msg = 'Ваш пароль был сброшен. Пожалуйста, перейдите по следующему URL-адресу, чтобы установить новый:'; $s_reset_request_in_progress_msg = 'Если вы ввели корректное имя и адрес электронной почты своей учётной записи, то на этот адрес отправлено подтверждающее сообщение. Для смены пароля своей учётной записи следуйте указаниям, приведённым в письме.'; $s_email_notification_title_for_status_bug_new = 'Следующей задаче присвоено состояние НОВАЯ (повторно):'; $s_email_notification_title_for_status_bug_feedback = 'По следующей задаче от вас НУЖНА ОБРАТНАЯ СВЯЗЬ:'; @@ -781,7 +783,6 @@ $s_reset_password_msg2 = 'Сброс пароля приводит к устан $s_show_all_users = 'Все'; $s_users_unused = 'Неиспользуемые'; $s_users_new = 'Новые'; -$s_account_reset_protected_msg = 'Учётная запись защищена. Сброс пароля невозможен.'; $s_account_reset_msg = 'По адресу электронной почты указанного пользователя отправлен запрос подтверждения. С его помощью пользователь сможет изменить пароль.'; $s_account_reset_msg2 = 'Пароль к учётной записи установлен пустым...'; $s_account_unlock_msg = 'Учётная запись разблокирована.'; @@ -794,7 +795,7 @@ $s_view_bugs_link = 'Список задач'; $s_report_bug_link = 'Создать задачу'; $s_changelog_link = 'Журнал'; $s_roadmap_link = 'План'; -$s_summary_link = 'Статистика'; +$s_summary_link = 'Тема'; $s_account_link = 'Мой аккаунт'; $s_users_link = 'Пользователи'; $s_manage_link = 'Управление'; @@ -893,7 +894,7 @@ $s_site_settings_title = 'Настройки сервера'; $s_system_info_link = 'Сведения о системе'; $s_site_settings_link = 'Настройки сервера'; $s_site_settings_updated_msg = 'Настройки сервера успешно изменены'; -$s_summary_title = 'Статистика'; +$s_summary_title = 'Тема'; $s_summary_advanced_link = 'Графики'; $s_by_project = 'По проекту'; $s_by_status = 'По состоянию'; @@ -1166,6 +1167,9 @@ $s_email_on_deleted = 'Извещать при удалении'; $s_email_on_sponsorship_changed = 'Извещать при изменении оплаты'; $s_email_on_relationship_changed = 'Извещать при изменении связей'; $s_email_on_updated = 'Сообщить об обновлении'; +$s_create_new_tags = 'Создать новые метки'; +$s_edit_tags = 'Редактировать имена и описания меток'; +$s_edit_own_tags = 'Редактировать метки, созданные тем же пользователем'; $s_loading = 'Загрузка...'; $s_between_date = 'Между'; $s_on_or_before_date = 'На дату или до'; @@ -1290,7 +1294,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'Каталог не существует. $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Проект с таким названием уже существует.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Обязательное поле \'%1$s\' не заполнено. Пожалуйста, проверьте правильность заполнения.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Неверное значение для \'%1$s\''; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Эта учётная запись защищена. Вы не сможете получить к ней доступ, пока защита не снята.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Эта учётная запись защищена. Вы не можете выполнить запрашиваемое действие, пока защита применена к учётной записи.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Доступ запрещён.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'Загрузка файла не удалась. Файл недоступен для MantisBT. Проверьте настройки проекта.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'Загрузка файла не удалась. Скорее всего, размер файла был больше, чем разрешенный в данной конфигурации PHP.'; @@ -1385,7 +1389,7 @@ $MANTIS_ERROR[ERROR_USER_CHANGE_LAST_ADMIN] = 'Вы не можете удали $MANTIS_ERROR[ERROR_PAGE_REDIRECTION] = 'Ошибка перенаправления страницы, убедитесь, что за пределами блока PHP (<?php ?>) в config_inc.php или настроенных файлах custom_*.php нет пробелов.'; $MANTIS_ERROR[ERROR_TAG_NOT_FOUND] = 'Не удалось найти метку "%1$s".'; $MANTIS_ERROR[ERROR_TAG_DUPLICATE] = 'Метка с именем "%1$s" уже существует.'; -$MANTIS_ERROR[ERROR_TAG_NAME_INVALID] = 'Имя метки "%1$s" является недопустимым.'; +$MANTIS_ERROR[ERROR_TAG_NAME_INVALID] = 'Имя метки «%1$s» является недопустимым.'; $MANTIS_ERROR[ERROR_TAG_NOT_ATTACHED] = 'Эта метка не связана с этой задачей.'; $MANTIS_ERROR[ERROR_TAG_ALREADY_ATTACHED] = 'Эта метка уже связана c этой задачеq.'; $MANTIS_ERROR[ERROR_TOKEN_NOT_FOUND] = 'Признак не может быть найден.'; diff --git a/lang/strings_serbian.txt b/lang/strings_serbian.txt index 9f9fee60845..5f2ad5374e8 100644 --- a/lang/strings_serbian.txt +++ b/lang/strings_serbian.txt @@ -696,7 +696,6 @@ $s_reset_password_msg2 = '„Обнови лозинку“ поставља л $s_show_all_users = 'Све'; $s_users_unused = 'Некоришћено'; $s_users_new = 'Ново'; -$s_account_reset_protected_msg = 'Налог је заштићен. Не могу да обновим лозинку.'; $s_account_reset_msg = 'На имејл адресу изабраног корисника је послат захтев за потврду. Уз помоћ овог захтева, корисник може да промени своју лозинку.'; $s_account_reset_msg2 = 'Лозинка је постављена као празна.'; $s_account_unlock_msg = 'Налог је откључан.'; diff --git a/lang/strings_serbian_latin.txt b/lang/strings_serbian_latin.txt index 5e376e9a08a..e4f3796e659 100644 --- a/lang/strings_serbian_latin.txt +++ b/lang/strings_serbian_latin.txt @@ -662,7 +662,6 @@ $s_reset_password_msg2 = '„Obnovi lozinku“ postavlja lozinku kao praznu.'; $s_show_all_users = 'Sve'; $s_users_unused = 'Nekorišćeno'; $s_users_new = 'Novo'; -$s_account_reset_protected_msg = 'Nalog je zaštićen. Ne mogu da obnovim lozinku.'; $s_account_reset_msg = 'Na e-adresu izabranog korisnika je poslat zahtev za potvrdu. Uz pomoć ovog zahteva, korisnik može da promeni svoju lozinku.'; $s_account_reset_msg2 = 'Lozinka je postavljena kao prazna.'; $s_account_unlock_msg = 'Nalog je otključan.'; diff --git a/lang/strings_slovak.txt b/lang/strings_slovak.txt index 2abfee07cf0..0d983ec87ae 100644 --- a/lang/strings_slovak.txt +++ b/lang/strings_slovak.txt @@ -731,7 +731,6 @@ $s_reset_password_msg2 = 'Nastaviť heslo na prázdne.'; $s_show_all_users = 'Všetko'; $s_users_unused = 'Nepoužité'; $s_users_new = 'Nové'; -$s_account_reset_protected_msg = 'Účet je chránený. Nie je možné vynulovať heslo.'; $s_account_reset_msg = 'Potvrdzovací dopis bol odoslaný na vašu elektronickú adresu...'; $s_account_reset_msg2 = 'Heslo k účtu bolo nastavené na prázdne...'; $s_account_unlock_msg = 'Účet bol odomknutý.'; diff --git a/lang/strings_slovene.txt b/lang/strings_slovene.txt index 44cfc2626a3..ba3c161b9a0 100644 --- a/lang/strings_slovene.txt +++ b/lang/strings_slovene.txt @@ -415,7 +415,6 @@ $s_delete_user_button = 'Briši uporabnika'; $s_reset_password_msg = 'Ponastavljanje gesla ustvari naključno ustvarjeno geslo.'; $s_reset_password_msg2 = 'Ponastavljanje gesla nastavi prazno geslo.'; $s_show_all_users = 'Vsi'; -$s_account_reset_protected_msg = 'Račun je zaščiten. Ne morem ponastaviti gesla.'; $s_account_reset_msg = 'Ustvaril sem novo geslo in ga poslal uporabniku..'; $s_account_reset_msg2 = 'Geslo je bilo postavljeno na prazno...'; $s_manage_user_protected_msg = 'Račun je zaščiten, zato polji »Raven dostopa« in »Omogočeno« ni mogoče spremeniti. Druga polja smo uspešno posodobili.'; diff --git a/lang/strings_spanish.txt b/lang/strings_spanish.txt index 05870cd8214..6ca48ae95cb 100644 --- a/lang/strings_spanish.txt +++ b/lang/strings_spanish.txt @@ -47,6 +47,7 @@ * @author Dgstranz * @author Dtamajon * @author Fitoschido + * @author Geryescalier * @author Guidored * @author Jelou * @author Joanmp17 @@ -253,6 +254,7 @@ $s_new_account_signup_msg = 'Se ha creado la cuenta siguiente:'; $s_reset_request_msg = 'Alguien (quizá usted) ha solicitado un cambio de contraseña a través de la verificación del correo electrónico. Si no ha sido usted, ignore este mensaje y no pasará nada. Si ha solicitado esta verificación, visite el URL siguiente para cambiar su contraseña:'; +$s_reset_request_admin_msg = 'Tu contraseña ha sido restablecida. Visita la siguiente URL para configurar una nueva:'; $s_reset_request_in_progress_msg = 'Si ha proporcionado un usuario y contraseña correctos recibirá un mensaje de confirmación en su dirección de correo electrónico. Cuando reciba este mensaje siga las instrucciones para cambiar la contraseña de su cuenta.'; $s_email_notification_title_for_status_bug_new = 'La siguiente incidencia tiene ahora el estado NUEVA (nuevamente)'; $s_email_notification_title_for_status_bug_feedback = 'La siguiente incidencia requiere MÁS INFORMACIÓN (opinión).'; @@ -785,7 +787,6 @@ $s_reset_password_msg2 = 'Reinicializar Contraseña establece la misma en blanco $s_show_all_users = 'TODOS'; $s_users_unused = 'NO USADO'; $s_users_new = 'NUEVO'; -$s_account_reset_protected_msg = 'La cuenta está protegida. No es posible restablecer la contraseña.'; $s_account_reset_msg = 'Se ha enviado un correo electrónico de solicitud de confirmación a las direcciones de correo electrónico del usuario seleccionado. Utilizándolo, el usuario podrá cambiar si contraseña.'; $s_account_reset_msg2 = 'La contraseña de la cuenta fue establecida en blanco...'; $s_account_unlock_msg = 'Se ha desbloqueado la cuenta.'; @@ -1308,7 +1309,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'El directorio no existe. Por favor revise l $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Ya existe un proyecto con este nombre.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'El campo requerido «%1$s» está vacío. Por favor, verifique los datos.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Valor no válido para «%1$s»'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Esta cuenta está protegida. No está autorizado a utilizarla hasta que la protección de la cuenta haya sido retirada.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Esta cuenta está protegida. No tiene permiso para realizar la operación solicitada hasta que se elimine la protección de la cuenta.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Acceso denegado.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'Ha fallado el proceso de carga del archivo. El archivo no puede ser leído por MantisBT. Verifique la configuración del proyecto.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'Ha fallado el proceso de carga del archivo. Posiblemente el tamaño del archivo sea mayor de lo que actualmente está permitido en esta instalación de PHP.'; diff --git a/lang/strings_swedish.txt b/lang/strings_swedish.txt index 3eddc2fe67a..f37d1a8c6b6 100644 --- a/lang/strings_swedish.txt +++ b/lang/strings_swedish.txt @@ -775,7 +775,6 @@ $s_reset_password_msg2 = 'Nollställ lösenord sätter ett tomt lösenord.'; $s_show_all_users = 'Alla'; $s_users_unused = 'Oanvänd'; $s_users_new = 'Ny'; -$s_account_reset_protected_msg = 'Kontot skyddat. Kan inte återställa lösenordet.'; $s_account_reset_msg = 'Godkännandelänk har blivit skickat till angiven användares e-postadress. Med hjälp av denna kommer användaren att kunna ändra sitt lösenord.'; $s_account_reset_msg2 = 'Lösenordet för kontot är tomt...'; $s_account_unlock_msg = 'Kontot har låsts upp.'; diff --git a/lang/strings_swissgerman.txt b/lang/strings_swissgerman.txt index b0f9ce7d308..3828334c9d1 100644 --- a/lang/strings_swissgerman.txt +++ b/lang/strings_swissgerman.txt @@ -684,7 +684,6 @@ $s_reset_password_msg2 = 'Passwort zrucksetze schickt e läär Passwort.'; $s_show_all_users = 'ALLI'; $s_users_unused = 'NIT BRUCHT'; $s_users_new = 'NEJ'; -$s_account_reset_protected_msg = 'Konto gschitzt. Passwort cha nit glescht wäre.'; $s_account_reset_msg = 'Bstätigungsnochricht isch an Dyy E-Mail-Adräss gschickt wore …'; $s_account_reset_msg2 = 'Läär Passwort isch gsetzt wore …'; $s_account_unlock_msg = 'S Benutzerkonto isch entsperrt wore'; diff --git a/lang/strings_tagalog.txt b/lang/strings_tagalog.txt index 80b0273a877..2a1329ee105 100644 --- a/lang/strings_tagalog.txt +++ b/lang/strings_tagalog.txt @@ -664,7 +664,6 @@ $s_reset_password_msg2 = 'Muling itinatakda ng Muling Itakda ang Hudyat papunta $s_show_all_users = 'LAHAT'; $s_users_unused = 'HINDI PA NAGAGAMIT'; $s_users_new = 'BAGO'; -$s_account_reset_protected_msg = 'Nakasanggalang ang akawnt. Hindi maitatakdang muli ang hudyat.'; $s_account_reset_msg = 'Ipinadala na ang isang kahilingan ng pagpapatunay patungo sa napiling adres ng e-liham ng tagagamit. Sa paggamit nito, magkakaroon ng kakayahan ang tagagamit na baguhin ang kanilang hudyat.'; $s_account_reset_msg2 = 'Nakatakda bilang walang laman ang hudyat...'; $s_account_unlock_msg = 'Tinanggal na ang kandado at nabuksan na ang akawnt.'; diff --git a/lang/strings_turkish.txt b/lang/strings_turkish.txt index 308585269b3..8ae8561b945 100644 --- a/lang/strings_turkish.txt +++ b/lang/strings_turkish.txt @@ -248,6 +248,7 @@ $s_new_account_signup_msg = 'Aşağıdaki hesap oluşturuldu:'; $s_reset_request_msg = 'Birisi (muhtemelen siz) e-posta yoluyla bir şifre değiştirme talebinde bulundu. Bu siz yapmadıysanız, bu mesajı yok sayın, hiç bir şey olmayacaktır. Eğer doğrulama İstenirse, şifrenizi değiştirmek için aşağıdaki URL\'yi ziyaret edin:'; +$s_reset_request_admin_msg = 'Parolanız sıfırlandı. Yeni bir URL ayarlamak için lütfen aşağıdaki URL\'yi ziyaret edin:'; $s_reset_request_in_progress_msg = 'Eğer hesabınız için doğru kullanıcı adı ve e-posta adresi belirttiyseniz, bize vermiş olduğunuz e-posta adresine bir onay mesajı gönderilecektir. Bu mesajı alındıktan sonra, hesabınıza şifre değiştirmek için verilen yönergeleri izleyin.'; $s_email_notification_title_for_status_bug_new = 'Aşağıdaki sorunun durumu YENİ (tekrar)'; $s_email_notification_title_for_status_bug_feedback = 'Aşağıdaki sorun için GERİ BİLDİRİM yapmalısınız.'; @@ -492,7 +493,7 @@ $s_bugnote_revision_dropped_history = 'Not Düzeltme Bırakıldı'; $s_all_revisions = 'Tüm Düzeltmeler'; $s_back_to_issue = 'Soruna Geri Dön'; $s_confirm_revision_drop = 'Bu sorun düzeltmesini bırakmak istediğinizden emin misiniz?'; -$s_activities_title = 'Etkinlikler'; +$s_activities_title = 'Aktiviteler'; $s_vote_added_msg = 'Oy eklendi...'; $s_bugnote_attached_files = 'Ekli Dosyalar:'; $s_bugnote_deleted_msg = 'Sorun notu başarıyla silindi...'; @@ -780,7 +781,6 @@ $s_reset_password_msg2 = 'Parolayı Sıfırlamak parolanın boş olmasını sıf $s_show_all_users = 'Hepsi'; $s_users_unused = 'Kullanılmamış'; $s_users_new = 'Yeni'; -$s_account_reset_protected_msg = 'Hesap korumalı. Parola sıfırlanamıyor.'; $s_account_reset_msg = 'Seçilen kullanıcının e-posta adresine bir onay isteği gönderildi. Bunu kullanarak kullanıcı parolayı değiştirebilecektir.'; $s_account_reset_msg2 = 'Hesap şifresi boş olarak düzenlendi...'; $s_account_unlock_msg = 'Hesap kilidi açıldı.'; @@ -1301,7 +1301,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'Dizin bulunamadı. Lütfen proje ayarların $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Bu isimde bir proje zaten mevcut.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Gerekli olan "%1$s" girdi alanı boş bırakıldı. Lütfen girdilerinizi kontrol ediniz.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = '\'%1$s\' için geçersiz değer'; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Bu kullanıcı hesabı koruma altında. Koruma kaldırılana kadar erişime izin verilmeyecektir.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Bu hesap korunuyor. Hesap koruması kaldırılana kadar istenen işlemi gerçekleştirmenize izin verilmiyor.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Erişim Engellendi.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'Dosya yükleme başarısız oldu. Dosya MantisBT tarafından okunamaz. Proje ayarlarını gözden geçirin.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'Dosya yükleme başarısız oldu. Bu büyük ihtimalle PHP kurulumunun izin verdiğinden daha büyük boyutta dosya kullanıldığından kaynaklanmaktadır.'; diff --git a/lang/strings_ukrainian.txt b/lang/strings_ukrainian.txt index 79a4e0911b2..1159b70ae13 100644 --- a/lang/strings_ukrainian.txt +++ b/lang/strings_ukrainian.txt @@ -242,6 +242,7 @@ $s_new_account_signup_msg = 'Був створений наступний зап $s_reset_request_msg = 'Дехто (сподіваємось, що ви) запросив змінити пароль з підтвердженням електронною поштою. Якщо це були не ви, просто проігноруйте лист і нічого не відбудеться. Якщо ви просили скинути пароль, перейдіть на сторінку за цим лінком, щоб змінити пароль:'; +$s_reset_request_admin_msg = 'Ваш пароль був скинутий. Щоб встановити новий пароль, будь ласка, перейдіть за посиланням:'; $s_reset_request_in_progress_msg = 'Якщо ви ввели правильні ім\'я і email, ми відправили вам лист-підтвердження. Щоб змінити пароль вашого запису, виконайте інструкції, вказані в цьому листі.'; $s_email_notification_title_for_status_bug_new = 'Вказана проблема тепер має статус НОВА (знову)'; $s_email_notification_title_for_status_bug_feedback = 'Вказана проблема потребує вашої ВІДПОВІДІ.'; @@ -774,7 +775,6 @@ $s_reset_password_msg2 = 'Скидання паролю зробить ваш п $s_show_all_users = 'ВСІ'; $s_users_unused = 'Невикористані'; $s_users_new = 'Нові'; -$s_account_reset_protected_msg = 'Запис захищений. Не можу скинути пароль.'; $s_account_reset_msg = 'Лист для підтвердження відправлений вам на вашу електронну адресу...'; $s_account_reset_msg2 = 'Запису задано пустий пароль...'; $s_account_unlock_msg = 'Обліковий запис розблоковано.'; @@ -1295,7 +1295,7 @@ $MANTIS_ERROR[ERROR_NO_DIRECTORY] = 'Папка не існує. Перевір $MANTIS_ERROR[ERROR_DUPLICATE_PROJECT] = 'Проект з такою назвою вже існує.'; $MANTIS_ERROR[ERROR_EMPTY_FIELD] = 'Не заповнене обов\'язкове поле \'%1$s\'. Перевірте заповнені поля.'; $MANTIS_ERROR[ERROR_INVALID_FIELD_VALUE] = 'Неприпустиме значення для \'%1$s\''; -$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Цей запис захищений. Ви не зможете переглядати його доки ввімкнений захист.'; +$MANTIS_ERROR[ERROR_PROTECTED_ACCOUNT] = 'Цей обліковий запис захищений. Ви не зможете виконати запитану дію доки ввімкнений захист.'; $MANTIS_ERROR[ERROR_ACCESS_DENIED] = 'Доступ заборонений.'; $MANTIS_ERROR[ERROR_UPLOAD_FAILURE] = 'Збій при завантаженні файлу. Файл не читається MantisBT. Будь ласка, перевірте налаштування проекту.'; $MANTIS_ERROR[ERROR_FILE_TOO_BIG] = 'Не вдалось закачати файл. Скидається на те, що розмір файлу більший, ніж дозволений параметрами PHP.'; diff --git a/lang/strings_urdu.txt b/lang/strings_urdu.txt index 83b5b9c4f06..d1731ceb671 100644 --- a/lang/strings_urdu.txt +++ b/lang/strings_urdu.txt @@ -565,7 +565,6 @@ $s_delete_user_button = ' استعمال کر نے کو خارج کرو'; $s_reset_password_msg = ' راذ والا لفظ کو دوبارہ سیٹ کرنا ای میل کے ذریعے آپ کو کنفرم کر دیا جاے گا .'; $s_reset_password_msg2 = 'راذ والا لفظ کو دوبارہ سیٹ کرو اور خالی چھوڈ دو.'; $s_show_all_users = 'تمام'; -$s_account_reset_protected_msg = 'کھاتہ محفوظ ھے راذ والا لفظ تبدیل نھی ھو سکتا.'; $s_account_reset_msg = ' اب ھم اس استعمال کرنے والے کے ای-میل کے پتے پر تصدیق کا پیغام بھیج رھے ھیں،جب آپ پیغام لے لیں تو آپ د ی گی مہلومات پر عمل کر کے اپنا راز والہ لفظ تبدیل کر لیں.'; $s_account_reset_msg2 = 'کھاتے کا راذ والا لفظ خالی چھوڈ دیا گیا ھے ...'; $s_manage_user_protected_msg = ' کھاتہ محفوظ ھے استعمال کرنے کا لیول محفوظ نظر آ رھا ھے اس کے علاوہ کھاتہ تبدیل ھو کر نیا کر دیا جاے گا ...'; diff --git a/lang/strings_vietnamese.txt b/lang/strings_vietnamese.txt index 54dba436ab3..05fe40f98d4 100644 --- a/lang/strings_vietnamese.txt +++ b/lang/strings_vietnamese.txt @@ -677,7 +677,6 @@ $s_reset_password_msg2 = 'Thiết lập lại mật khẩu thiết lập lại m $s_show_all_users = 'Tất cả'; $s_users_unused = 'Không sử dụng'; $s_users_new = 'Mới'; -$s_account_reset_protected_msg = 'Tài khoản được bảo vệ. Không thể đặt lại mật khẩu.'; $s_account_reset_msg = 'Một yêu cầu xác nhận đã được gửi tới địa chỉ e-mail của người sử dụng lựa chọn. Sử dụng này, người sử dụng sẽ có thể thay đổi mật khẩu của họ.'; $s_account_reset_msg2 = 'Mật khẩu của tài khoản đã được thiết lập để trống...'; $s_account_unlock_msg = 'Tài khoản đã được mở khóa'; diff --git a/lang/strings_volapuk.txt b/lang/strings_volapuk.txt index c97a57776af..f58d6de5bf0 100644 --- a/lang/strings_volapuk.txt +++ b/lang/strings_volapuk.txt @@ -312,7 +312,6 @@ $s_reset_password_msg2 = '„Dönuvälön letavödi“ vagükon letavödi.'; $s_show_all_users = 'VALIKS'; $s_users_unused = 'NO PAGEBÖL'; $s_users_new = 'NULIK'; -$s_account_reset_protected_msg = 'Kal pejalon. Letavödi no dalon padönuvälön.'; $s_account_reset_msg2 = 'Kalaletavöd pevagükon...'; $s_back_link = 'Geikön'; $s_file_uploaded_msg = 'Ragivilöpükam eplöpon.'; diff --git a/lang/strings_zazaki.txt b/lang/strings_zazaki.txt index a7efb6d21c6..b5a12d596c9 100644 --- a/lang/strings_zazaki.txt +++ b/lang/strings_zazaki.txt @@ -166,6 +166,7 @@ $s_prefix_for_deleted_users = 'karber'; $s_administrator = 'idarekar'; $s_myself = 'Xo'; $s_default_access_level = 'Hesıbyaye sewiyey reştışi'; +$s_new_account_subject = 'Qeydê hesabi'; $s_new_account_username = 'Namey karberi:'; $s_new_account_email = 'E-poste:'; $s_email_reporter = 'Vacayoğ'; @@ -186,6 +187,7 @@ $s_email_last_modified = 'Timar kerdışo Peyên'; $s_email_summary = 'Xulasa'; $s_email_description = 'Şınasnayış'; $s_email_tag = 'Etiketi'; +$s_email_due_date = 'Tarixê qediyayışi'; $s_delete_account_button = 'Hesabi bestere'; $s_manage_profiles_link = 'Profili'; $s_change_preferences_link = 'Tercihi'; diff --git a/manage_user_edit_page.php b/manage_user_edit_page.php index 7dbbff400f1..812d276fa73 100644 --- a/manage_user_edit_page.php +++ b/manage_user_edit_page.php @@ -228,7 +228,7 @@ && auth_can_set_password( $t_user['id'] ) && user_is_enabled( $t_user['id'] ) && !user_is_protected( $t_user['id'] ); -$t_unlock = OFF != config_get( 'max_failed_login_count' ) && $t_user['failed_login_count'] > 0; +$t_unlock = !user_is_login_request_allowed( $t_user['id'] ); $t_delete = !( ( user_is_administrator( $t_user_id ) && ( user_count_level( config_get_global( 'admin_site_threshold' ) ) <= 1 ) ) ); $t_impersonate = auth_can_impersonate( $t_user['id'] ); diff --git a/manage_user_reset.php b/manage_user_reset.php index 97c78a012eb..37597651aa1 100644 --- a/manage_user_reset.php +++ b/manage_user_reset.php @@ -52,33 +52,32 @@ ); $t_command = new UserResetPasswordCommand( $t_data ); -$t_command->execute(); +# The case of trying to reset a protected account now causes the Command to +# trigger an exception, so we do not need any special handling here. +$t_result = $t_command->execute(); $t_redirect_url = 'manage_user_page.php'; form_security_purge( 'manage_user_reset' ); -layout_page_header( null, $t_result ? $t_redirect_url : null ); - +layout_page_header( null, $t_redirect_url ); layout_page_begin( 'manage_overview_page.php' ); -if( $t_reset ) { - if( false == $t_result ) { - # PROTECTED - html_operation_failure( $t_redirect_url, lang_get( 'account_reset_protected_msg' ) ); - } else { - # SUCCESSFUL RESET - if( ( ON == config_get( 'send_reset_password' ) ) && ( ON == config_get( 'enable_email_notification' ) ) ) { - # send the new random password via email +switch( $t_result['action'] ) { + case UserResetPasswordCommand::RESULT_RESET: + if( ( ON == config_get( 'send_reset_password' ) ) + && ( ON == config_get( 'enable_email_notification' ) ) + ) { + # Password reset confirmation sent by email html_operation_successful( $t_redirect_url, lang_get( 'account_reset_msg' ) ); } else { - # email notification disabled, then set the password to blank + # Email notification disabled, password set to blank html_operation_successful( $t_redirect_url, lang_get( 'account_reset_msg2' ) ); } - } -} else { - # UNLOCK - html_operation_successful( $t_redirect_url, lang_get( 'account_unlock_msg' ) ); + break; + case UserResetPasswordCommand::RESULT_UNLOCK: + html_operation_successful( $t_redirect_url, lang_get( 'account_unlock_msg' ) ); + break; } layout_page_end();