This is a paired down version of the previous auth. Rather than trying to authenticatr with Sentry at every turn, check for valid LDAP and then once all those LDAP additions/updates are set, then try to auth with the credentials the user provided.
1) If a start and end date were given when creating an asset, asset_maintenance_time was not set.
2) AssetMaintenancesController::getDataTable would return 'time' instead of 'asset_maintenance_time', causing the field not to display.
This was by-design to start off with, since it would b weird to re-use an asset tag that legitimately belonged to someone else, however sometimes when assets are accidentally deleted and users don't restore them (or if there were weird duplicates), this can be problematic.
Note that the User model doesn't use global scope,
global models can have unexpected results that
would very likely break many parts of the application
Use Eloquent ORM global scope instead of using
Company::scopeCompanayables() all over the place.
In addition, this makes it harder to for a user
that is assigned to a company to access unauthorized
assets through other entities (e.g: license seats)
use /tmp/snipeit for working with files and clean that up at the end.
also use mysql_secure_installation to set the root password instead of
setting it and making the user input it again.
I changed the if/else statement to a case statement so that we can do
multiple os/versions. Also added the working code for CentOS 7 that I
will backport to CentOS 6. Need to add OS version detection.
variables available to customize how Snipe-IT ought to work under
Docker. Locale, timezone, and custom-URL support. Documentation pushes
users to move more towards 'env-files' rather than environment variables.
Fixes#1020
The script keeps the "url" variable set as https in $dir/app/config/production/app.php but the script sets up the apache for http. The only problem this caused for me was the "Dashboard" and "Snipe-IT" button's href was set to https.
This script is designed to install Snipe-It on a fresh install of Ubuntu or CentOS. You will receive minimal options regarding setting passwords and the script should take care of the rest. The purpose of this script is to install Snipe-It on a server that will be dedicated to the application.
This was tested on Ubuntu 14.04 and CentOS 7, YMMV with different OS versions.
This adds LDAP support to the Docker image. All parameters are specified
using environment variables named following the convention in the
configuration files themselves.
This change allows Docker users to set the server URL by setting the
SERVER_URL environment variable. This is done in the same way as the
database and mail settings.
The Dockerfile now includes the php5-curl package, which is needed to
satisfy a missing dependency.
The docker/app_start.patch was updated to match changes to the source
code.
Updated the migration to include the migration of existing data - still have issue with a fresh load, as seeded data isn't there until after the migrations occur
Removed the artisan command
Updated the migration to include the migration of existing data - still have issue with a fresh load, as seeded data isn't there until after the migrations occur
Removed the artisan command
When I've broken things and wound up with a 500 error the link back to home
produces a 404 error. I believe its because it uses 'to' instead of 'route' but
I'm not familiar enough with php to be sure of my theory.
This script will
1. Ask for Snipe it version 1.2.8 or 2.0
2. Detect distro version (between CentOS and Debian/Ubuntu)
3. Install all software and dependencies, create vhosts.
This isn't the smartest script, and it needs a little love, and I'm on the fence about SMTP settings. Would love feedback about the SMTP part, and the whole script in general. I'll be glad to fine tune it some more, I just need a point in the right direction. Hopefully if this is merged in 2.0, it won't cause a huge influx of tickets. This is the first time I've contributed to a project like this, so I don't know the social norms; if having my name at the top isn't appropriate (or fit in with the scope of Snipe It), we can remove it. No big deal, just wanted to have my name somewhere, but it's not a make-it-or-break-it thing for me :o)
Created the view for improvements
Updated messages in language pack for additional items needed
Updated the asset view and supplier view to fix an issue
TO DO:
- Account for the default state when the page is loaded on edit (currently using onchange)
- If no status or model is selected, return false or something else so that it doesn't try to make the ajax call with no ID
[Error] TypeError: undefined is not an object (evaluating 'f.nTf=a[b].cell')
jb (jquery.dataTables.min.js, line 24)
ga (jquery.dataTables.min.js, line 45)
(anonymous function) (jquery.dataTables.min.js, line 92)
each (jquery-latest.js, line 383)
each (jquery-latest.js, line 136)
o (jquery.dataTables.min.js, line 82)
(anonymous function) (users, line 371)
fire (jquery-latest.js, line 3119)
fireWith (jquery-latest.js, line 3231)
ready (jquery-latest.js, line 3443)
completed (jquery-latest.js, line 3474)
I noted that i was unable to change the username or email fields, but also that the username validation would not allow the form to save as it was checking against itself for being unique.
Created the view for improvements
Updated messages in language pack for additional items needed
Updated the asset view and supplier view to fix an issue
TODO:
- Add checkout to location
- Drop Checkin (doesn't really exist in this context)
- Add missing strings - consolidate where possible. Lots of dupes :-/
Implement licenses.reassignable
View edit for licenses.reassignable
Add licenses.reassignable to LicensesController
Disable Check In when !license->reassignable
Validate license check-in post
As per:
```
NOTICE: Since laravel-debugbar 1.7.x, publishing assets is no longer necessary. The assets in public/packages/barryvdh/laravel-debugbar and maximebf/php-debugbar can be safely removed.
```
Should be refactored to make the Action logger into a base class and to use polymorphic relationships for the IDs, and migrate accessory_id into asset_id in the log table. This was quick and dirty.
Use --force to prevent user unnecessary user interactions.
Seed StatusLabels even when dummy datas chose to not be seeded because
snipe-it heavily builds on those table.
Seed Categories, because it is very common and goot to have, also.
Use --force to prevent user unnecessary user interactions.
Seed StatusLabels even when dummy datas chose to not be seeded because
snipe-it heavily builds on those table.
Seed Categories, because it is very common and goot to have, also.
value (which were only used there). Additional fixes and refactoring
around Depreciable, in terms of how assets get depreciation via models,
and licenses get depreciation directly.
Licenses have a Depreciation directly associated with them. So I
pulled the Depreciation relationship out of Depreciable so that both
Assets and Licenses could pull their depreciations in their associated
ways. I could've done this with an inheritance call, but that seems
a bit much (and unnecessarily confusing).
Also renamed "months_until_depreciation" to "time_until_depreciation"
And renamed Depreciatable to Depreciable (which is an actual word in
English.) Also a cleanup/consistency-enforcement for interval display.
Conflicts:
app/models/Asset.php
It looks like the same time I pulled depreciation out of the
Asset class, uploads were being added in. It doesn't look
like a conflict to me, but git couldn't figure it out. Oh Well.
reordered fields on Asset Add/Edit form to flow more logically.
reordered fields on Asset View to flow more logically. Restored serial
number to Asset View. Added Asset specific notes field to Asset View
(they are in the log as part of the initial asset creation, but need to
be more prominent, especially if the device has a lot of history.
adjusted wording in EN lang template for clarity.
* Removed previous use of placeholder, added code to set the old asset tag as the new one since it is being checked for uniqueness.
* For more rationale see our discussion with @technogenus in #241
set new user create to active YES as default
Changed user password validation to 6-12 characters
Licenses controller removed asset_id from the INSERT column list
Added module scoping for all components, and stored lookups in event handlers instead
of querying live. Delays would erroniously cause values to persist.
Modified composer.json away from laravel defaults to be more on brand.
- Specified support locations
- Issues
- Source
- Added license shorthand as defined by http://spdx.org
- Added homepage
- Added keywords
- Added name
- Added description
State abbreviations, if used at all, are not neccessarily 2 characters
outside the US and zip codes aren't always 5 digits either. It's
probably a good idea not to enforce US centric length requirements to
these fields in the Location model.
Weird thing. The values were being escaped on the way out but something in the modal javascript was parsing them out as if they weren't. Using data-html="false" seemed to have no effect on the modal. *shrug* Problem for another time.
Some ghetto straight-line depreciation shit happening here. Assumign 30 days in a month, blah blah blah. Will need a better fix later, but this is fine for MVP
# please regenerate the APP_KEY value by calling `docker-compose run --rm snipeit bash` and then `php artisan key:generate --show` and then copy paste the value here
#### Please confirm you have done the following before posting your bug report:
- [ ] I have enabled debug mode
- [ ] I have read [checked the Common Issues page](https://snipe-it.readme.io/docs/common-issues)
- [ ] I have enabled debug mode
- [ ] I have read [checked the Common Issues page](http://docs.snipeitapp.com/common-issues.html)
-----
#### Provide answers to these questions:
#### Please provide answers to these questions before posting your bug report:
- Is this a fresh install or an upgrade?
- Version of Snipe-IT you're running
- Version of PHP you're running
- Version of MySQL/MariaDB you're running
- What OS and web server you're running Snipe-IT on
- What method you used to install Snipe-IT (install.sh, manual installation, docker, etc)
-WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error
-If you're getting an error in your browser, include that error
- What specific Snipe-IT page you're on, and what specific element you're interacting with to trigger the error
- If a stacktrace is provided in the error, include that too.
- Any errors that appear in your browser's error console.
- Confirm whether the error is reproducible on the demo: https://snipeitapp.com/demo.
- Include any additional information you can find in `storage/logs` and your webserver's logs.
- Confirm whether the error is [reproduceable on the demo](https://snipeitapp.com/demo).
- Include any additional information you can find in `app/storage/logs` and your webserver's logs.
- Include what you've done so far in the installation, and if you got any error messages along the way.
- Indicate whether or not you've manually edited any data directly in the database
Please do not post an issue without answering the related questions above. If you have opened a different issue and already answered these questions, answer them again, once for every ticket. It will be next to impossible for us to help you.
description:Please confirm you have done the following before posting your bug report
options:
- label:I have enabled debug mode
required:true
- label:I have read [checked the Common Issues page](https://snipe-it.readme.io/docs/common-issues)
required:true
- type:textarea
attributes:
label:Describe the bug
description:A clear and concise description of what the bug is.
validations:
required:true
- type:textarea
attributes:
label:Reproduction steps
description:Steps to reproduce the behavior.
value:|
1.
2.
3.
...
validations:
required:true
- type:textarea
attributes:
label:Expected behavior
description:A clear and concise description of what you expected to happen.
validations:
required:true
- type:textarea
attributes:
label:Screenshots
description:'If applicable, add screenshots to help explain your problem.'
- type:markdown
attributes:
value:"### Server"
- type:input
attributes:
label:Snipe-IT Version
validations:
required:true
- type:input
id:server_operatingSystem
attributes:
label:Operating System
description:'e.g. Ubuntu, Windows'
validations:
required:true
- type:input
attributes:
label:Web Server
description:'e.g. Apache, IIS'
validations:
required:true
- type:input
attributes:
label:PHP Version
validations:
required:true
- type:markdown
attributes:
value:"### Desktop"
- type:input
id:desktop_operatingSystem
attributes:
label:Operating System
description:'e.g. Ubuntu, Windows'
- type:input
id:desktop_browser
attributes:
label:Browser
description:'e.g. Google Chrome, Safari'
- type:input
id:desktop_version
attributes:
label:Version
description:'e.g. 93'
- type:markdown
attributes:
value:"### Mobile"
- type:input
attributes:
label:Device
description:'e.g. iPhone 6, Pixel 4a'
- type:input
id:mobile_operatingSystem
attributes:
label:Operating System
description:'e.g. iOS 8.1, Android 9'
- type:input
id:mobile_browser
attributes:
label:Browser
description:'e.g. Google Chrome, Safari'
- type:input
id:mobile_version
attributes:
label:Version
description:'e.g. 93'
- type:textarea
attributes:
label:Error messages
description:|
WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error
If a stacktrace is provided in the error, include that too.
Any errors that appear in your browser's error console.
Confirm whether the error is reproducible on the demo: https://snipeitapp.com/demo.
Include any additional information you can find in `storage/logs` and your webserver's logs.
Include the output from `php -m` (this should display what modules you have enabled.)
render:shell
- type:textarea
attributes:
label:Additional context
description:|
Is this a fresh install or an upgrade?
What OS and web server you're running Snipe-IT on
What method you used to install Snipe-IT (install.sh, manual installation, docker, etc)
Include what you've done so far in the installation, and if you got any error messages along the way.
Indicate whether or not you've manually edited any data directly in the database
Add any other context about the problem here.
- type:markdown
attributes:
value:Please do not post an issue without answering the related questions above. If you have opened a different issue and already answered these questions, answer them again, once for every ticket. It will be next to impossible for us to help you.
label:Is your feature request related to a problem? Please describe.
description:A clear and concise description of what the problem is. The more information you can provide about your use-case, the more liklely we are to consider your feature.
validations:
required:true
- type:textarea
attributes:
label:Describe the solution you'd like
description:A clear and concise description of what you want to happen.
validations:
required:true
- type:textarea
attributes:
label:Describe alternatives you've considered
description:A clear and concise description of any alternative solutions or features you've considered.
- type:textarea
attributes:
label:Additional context
description:Add any other context or screenshots about the feature request here.
# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
# Comment to be posted to on first time issues
newIssueWelcomeComment:|
👋 Thanks for opening your first issue here! If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. We get a lot of issues on this repo, so please be patient and we will get back to you as soon as we can.
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
# Comment to be posted to on PRs from first time contributors in your repository
newPRWelcomeComment:|
💖 Thanks for this pull request! 💖
We use [semantic commit messages](https://snipe-it.readme.io/docs/contributing-overview#section-pull-request-guidelines) to streamline the release process and easily generate changelogs between versions. Before your pull request can be merged, you should **update your pull request title** to start with a semantic prefix if it doesn't have one already.
Examples of commit messages with semantic prefixes:
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context, providing screenshots where practical. List any dependencies that are required for this change.
Fixes # (issue)
## Type of change
Please delete options that are not relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
# How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
- [ ] Test A
- [ ] Test B
**Test Configuration**:
* PHP version:
* MySQL version
* Webserver version
* OS version
# Checklist:
- [ ] I have read the Contributing documentation available here: https://snipe-it.readme.io/docs/contributing-overview
- [ ] I have formatted this PR according to the project guidelines: https://snipe-it.readme.io/docs/contributing-overview#pull-request-guidelines
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
* <a href="http://github.com/snipe/snipe-it/commit/3bbcbf5f47e95ef031d521ff840a0ba7197356ed">view</a> • Merge branch 'hotfixes/ldap_settings' into develop
* <a href="http://github.com/snipe/snipe-it/commit/b925c5766f15d678702ad2ae245cc76a66b235ec">view</a> • Set company_id to null if no logged in user to fix seeder
* <a href="http://github.com/snipe/snipe-it/commit/078750726fd5f1f2d8ea35e25b366a95d15d7075">view</a> • Set default value for company_id to fix seeder
* <a href="http://github.com/snipe/snipe-it/commit/beeb28bf09a36604820ae111b3e171aec3746444">view</a> • Fix routes for custom fields, fix admin access. Helps with #1397
* <a href="http://github.com/snipe/snipe-it/commit/418be7f5dee1224526bf9037cc6d3ab464cacca2">view</a> • Fix to adding same custom field twice. Helps with #1397. Requires PR #1408 to be merged first.
* <a href="http://github.com/snipe/snipe-it/commit/2accfab79ede9fd3905d0ed383b5a50999340944">view</a> • Fixes #1413 - wrong link for manufacturers delete
* <a href="http://github.com/snipe/snipe-it/commit/a44c56c93713a8de20981e0a876b579b5845f6ff">view</a> • Merge branch 'hotfixes/fix_1413' into develop
* <a href="http://github.com/snipe/snipe-it/commit/fc06caded5c6d8c2554146f986752ad1fe2e1e5a">view</a> • Fixes #1406 - Fixes link to suppliers delete
* <a href="http://github.com/snipe/snipe-it/commit/19820db0cc41086971c9458dc5c8f0ca37a90777">view</a> • Fixes #1406 - Fixes link to suppliers delete
* <a href="http://github.com/snipe/snipe-it/commit/36ecf3032f0bd9e37054898912469c6efd83529a">view</a> • Fixes #1402 - remoe warranty date from EOL calc
* <a href="http://github.com/snipe/snipe-it/commit/8158c12242b5f2f37488a5db9cffefd0b5ec52ef">view</a> • Merge branch 'hotfixes/EOL' into develop
* <a href="http://github.com/snipe/snipe-it/commit/9b46a5b0f6f19543d4799dd88673695445317650">view</a> • Fixes #1403 - hide checkout on asset model listing assets when nt deployable
* <a href="http://github.com/snipe/snipe-it/commit/62fe4b8cd391cadf690be4a27ec4bd7eea017165">view</a> • Merge branch 'hotfixes/1403' into develop
* <a href="http://github.com/snipe/snipe-it/commit/bb83a1470744fe94fa8793f6b1af3bfee8613042">view</a> • Fix incorrect routes for update and delete
* <a href="http://github.com/snipe/snipe-it/commit/e4ceddd6ce246d5864b075a1dd0c1f891ef2f8b1">view</a> • Fix for merge conflict on routes
* <a href="http://github.com/snipe/snipe-it/commit/bbdb576519ab8f73a24ca6082c9172ddafdca665">view</a> • Merge branch 'hotfixes/remove_fk' into develop
* <a href="http://github.com/snipe/snipe-it/commit/e8ca98a37d744a899dcd77360b9590ae99950301">view</a> • Fixes issue with assets without a model (which should never happen, but can occur from imports)
* <a href="http://github.com/snipe/snipe-it/commit/82a3560f276353a2eccdb6be69f559ff9908f2c5">view</a> • Merge branch 'hotfixes/image_fix' into develop
* <a href="http://github.com/snipe/snipe-it/commit/9e0f7089c46dcec72d0b24f35f2ef4ef96c6823c">view</a> • Fixes #1415 - Added CSRF token to backup form
* <a href="http://github.com/snipe/snipe-it/commit/17e681ba7c72647288f0777daeaf6a96a1e72767">view</a> • Merge branch 'hotfixes/backup_CSRF' into develop
* <a href="http://github.com/snipe/snipe-it/commit/74ed75dd24fbaa69589e7bb8e89f68a8fce28a66">view</a> • Fixes #1426 - use Asset class for asset maintenances
* <a href="http://github.com/snipe/snipe-it/commit/e81fe52aa8b60c13d8d477db1fa6df6d6690ff0d">view</a> • Merge branch 'hotfixes/asset_maintenances_create' into develop
* <a href="http://github.com/snipe/snipe-it/commit/dad492d131b2fb4c9ac83433661706addd92d623">view</a> • Fixed back/cancel urls for #1397
* <a href="http://github.com/snipe/snipe-it/commit/7f46a48173c2a65f2aee5aae0af22bab3e8714f8">view</a> • Attempting to fix #1430 - commented out FK drop to prevent collisions, remove FK creation for new installs
* <a href="http://github.com/snipe/snipe-it/commit/3dc79197c3140528f2443107c7f3757ede66d7c2">view</a> • Fix for LDAP error if username is wrong
* <a href="http://github.com/snipe/snipe-it/commit/8cdb032a14b92b79f52514d0c806d602cc47db12">view</a> • Fixes error messages, and re-filling old input on failed asset create
* <a href="http://github.com/snipe/snipe-it/commit/b41461698ddc316d80fde921a7be0d69ae4df909">view</a> • Fix for error on asset create
* <a href="http://github.com/snipe/snipe-it/commit/6f8a76246ec014457452109ac07c6aa98b478996">view</a> • LDAP fix for local users
* <a href="http://github.com/snipe/snipe-it/commit/7802af837b2894b04c8ad690aeb7053f632f7767">view</a> • One more fix for LDAP and local users working together
* <a href="http://github.com/snipe/snipe-it/commit/be3c8e451522988bfd6f19767061a538dcc248e2">view</a> • Fixes #1440 - make employee number searchable/sortable
* <a href="http://github.com/snipe/snipe-it/commit/e1837069da97f1dfcbbd0007c2eda0ddd1ee3d2e">view</a> • Allow bulk model update for #1462, fixes #1442
* <a href="http://github.com/snipe/snipe-it/commit/e217d354dc3b5d078a91cff7a9d6e9ba11bd55c8">view</a> • Fixed bug in strict mode for fieldsets
* <a href="http://github.com/snipe/snipe-it/commit/cac254ded6685ef1e087b803e28cd14ff93047ca">view</a> • Fixes #1371 - problem saving new models with non-latin characters
* <a href="http://github.com/snipe/snipe-it/commit/5c698d7cfd4e0bb93e1c1483e41504057397a2c5">view</a> • Fixes #1469 - don't require currency at model level
* <a href="http://github.com/snipe/snipe-it/commit/a68cbcf7674a315268ec082386db30199e97f211">view</a> • Fixes #1472 - only fire DB seeder if the user inputs 'y'
* <a href="http://github.com/snipe/snipe-it/commit/8dab50edc64a59cbdae2c424fb36678ea4852324">view</a> • Fixes #1498 - better regex for characters in custom field name
* <a href="http://github.com/snipe/snipe-it/commit/eacd4ee2b09b21b465947b0acae2292cf54e1982">view</a> • Fix for bad data in asset report
* <a href="http://github.com/snipe/snipe-it/commit/927c36823526e68a83e2898033fea1ebe0112b4a">view</a> • Fix for weird location info in asset report
* <a href="http://github.com/snipe/snipe-it/commit/865468d0910a39d0a891de3225e383e6afd08ead">view</a> • Fix for location error
* <a href="http://github.com/snipe/snipe-it/commit/ac5527e7d30c3df805302a92c3d8d48bf54c6cb5">view</a> • Merge branch 'hotfixes/custom_reports_fix' into develop
* <a href="http://github.com/snipe/snipe-it/commit/f03d1cd4ccc1d47b4b6297b7a2c6bcbbfc686e87">view</a> • Simplified currency display until we can fix it on a broader level
* <a href="http://github.com/snipe/snipe-it/commit/6639bc1300163f5e4c079101682b27a5ef33f8e6">view</a> • Fix overwriting of username if no first/last name
* <a href="http://github.com/snipe/snipe-it/commit/3b7da8f379ca9e57a07c968bcf0917b4dae7daa4">view</a> • Fix consumable count in categories. This adds new methods to Category, consumables consumablesCount and a generic count. It also refactors CatgoriesController to use the count method rather than having it determine the category type.
* <a href="http://github.com/snipe/snipe-it/commit/50be3eed4abce136af1e244402893f7cff389e3f">view</a> • Fix Two issues with Asset Maintenance.
* <a href="http://github.com/snipe/snipe-it/commit/4b92cdf684cf64958bc2b1f1194fa6ad2a67dcd7">view</a> • Use the same values/calculations in the view as the index. Should fix #1140 I believe
* <a href="http://github.com/snipe/snipe-it/commit/5f6ba2a1480a9383c10c5222e368b6c219f4bd2c">view</a> • Clear the expected checkin and last checkout dates when checking an item back in. Fixes #1531
* <a href="http://github.com/snipe/snipe-it/commit/8eb31a9a820ce2033a585b35d7d17d618e6aa831">view</a> • Merge pull request #1523 from thehereward/fix-up-some-php-docs
* <a href="http://github.com/snipe/snipe-it/commit/90340a71119ab72b45c34a4a328877d363cabae1">view</a> • Merge pull request #1535 from dmeltzer/fix-1531-proper
* <a href="http://github.com/snipe/snipe-it/commit/27962d5439ccd587dfbb945149693cf81a6cb944">view</a> • Merge branch 'develop' into docker_fix_2
* <a href="http://github.com/snipe/snipe-it/commit/8cfcb2aed8a69070686f2d23f8b6c7fcf4596797">view</a> • Merge pull request #1544 from snipe/docker_fix_2
* <a href="http://github.com/snipe/snipe-it/commit/36eb51d6e484586c9da3b90dc86fac6774e22218">view</a> • Fixed typo in string
* <a href="http://github.com/snipe/snipe-it/commit/5eb95272eeac1183fe47972e7d8cf01976efe3a0">view</a> • Merge pull request #1546 from snipe/docker_fix_2
* <a href="http://github.com/snipe/snipe-it/commit/79c5d3f7d69ac34e98e1b4e925ced54b1ab2f612">view</a> • Fixes #1537 and #1524
* <a href="http://github.com/snipe/snipe-it/commit/999910f31fac58f1d7b1e5b45de296e911c88e6e">view</a> • Fix 'use' used with non-compound
* <a href="http://github.com/snipe/snipe-it/commit/6478425be6fa02322aac276bd31c0bc6472b7fd3">view</a> • Fix dashboard shows all companies
* <a href="http://github.com/snipe/snipe-it/commit/0a97c626e7955af7240b8084f90b249daf53a5e7">view</a> • Fix $inout used when undefined
* <a href="http://github.com/snipe/snipe-it/commit/8fb7d82babd8deb136e71734e3a7fa37d2b05b08">view</a> • Fix no admin/consumables route
* <a href="http://github.com/snipe/snipe-it/commit/08781a561b828198b62cf14a8f2608f23a52c3ef">view</a> • Fix: use global scope for companies support
* <a href="http://github.com/snipe/snipe-it/commit/dbdc2c8e64b8d27ac3111d2308c0582b05992561">view</a> • Fix some typos (e.g: companayable)
* <a href="http://github.com/snipe/snipe-it/commit/fe44846c1ba583156358de48fefe3ed3e63ef8f6">view</a> • Fix: only super users can change multiple companies support option
* <a href="http://github.com/snipe/snipe-it/commit/e91a22fce0232ffd24976c214b12a7ff784d60ff">view</a> • Fix assumeng Setting::getSettings() is not null in Company
* <a href="http://github.com/snipe/snipe-it/commit/e82ede5d44000ee337fad329cf5ac18052cfe52b">view</a> • Fix: some Company functions throw when seeding the DB
* <a href="http://github.com/snipe/snipe-it/commit/67a58221eb93ffb6a1e827ab1dc745c27e8d81fe">view</a> • Fixes #1368 - typos in installer
* <a href="http://github.com/snipe/snipe-it/commit/cc930fc5b8bcfdf972b35fb9460c0b2c82a1e9d0">view</a> • Fixed links to getting help and common issues
* <a href="http://github.com/snipe/snipe-it/commit/01b574069af2ae8cda5ab9716de58d8e39a3da79">view</a> • Fixes #1362 - status labels losing type on edit
* <a href="http://github.com/snipe/snipe-it/commit/7a03a5649863bc44af2459abf1d9fcfe0ffad21a">view</a> • Fix: company field required
* <a href="http://github.com/snipe/snipe-it/commit/4b926f015b5b69c4e3180e996ab489e179589be5">view</a> • fixed typo in installer
* <a href="http://github.com/snipe/snipe-it/commit/318b4b48c64e2dbfcbbbf9f024e9f6b20bc7a0db">view</a> • Fixes null value for LDAP settings
* <a href="http://github.com/snipe/snipe-it/commit/9ec132acde7238963ffb3cb042e65e49e929eb7c">view</a> • Small fixed for LDAP in settings table
* <a href="http://github.com/snipe/snipe-it/commit/120c8394bbc0141a2ca6d2cd7124d8fbad459073">view</a> • Fixes #1380 - groups pagination
* <a href="http://github.com/snipe/snipe-it/commit/29bb6a3c4f839e96f79d02473221673aed401898">view</a> • Fixed issue where deleted asset tags could not be re-used
* <a href="http://github.com/snipe/snipe-it/commit/b39c53a5ea355c91d5ef4adf1a03a342697039ae">view</a> • Closes #1375 - More data in consumables detail view
* <a href="http://github.com/snipe/snipe-it/commit/d8b43215b0109ab7f548a0dc46dee3d12a271a77">view</a> • Fix for missing admin ID
* <a href="http://github.com/snipe/snipe-it/commit/c6c6bd02bb32a22da7d30a0cca81516f99a9f5b0">view</a> • Possible fix for weird UTF-8 issues
* <a href="http://github.com/snipe/snipe-it/commit/632fa92f9239d7f701efd29461ebf24746246be8">view</a> • Fixes #1333 - hide checkout button if asset status is not deployable
* <a href="http://github.com/snipe/snipe-it/commit/20490986c634c7fa260fd952a7311ca18aae8605">view</a> • Fixes #1325 - zenbra striping and borders on table for money value clarity
### v2.0.5 - Released Nov 18, 2015 10:29:53
* <a href="http://github.com/snipe/snipe-it/commit/67e0e14a12d49fc190daae553332a6c008f89314">view</a> • License importer, small fixes for asset imporer
* <a href="http://github.com/snipe/snipe-it/commit/5df26f9b0ae7708e2f221ee873126bf1d7cd91dc">view</a> • Fixed the ubuntu install portion that i broke
* <a href="http://github.com/snipe/snipe-it/commit/958672dfd36d220ea242d7772626916c748063e3">view</a> • Fixed missing vars and typos
* <a href="http://github.com/snipe/snipe-it/commit/0d1544c3d65bf27a3e64e8ec258fb8dfaf961438">view</a> • Fixing some package issues and syntax errors
* <a href="http://github.com/snipe/snipe-it/commit/56b50468d2bc14d33dbad17357664cd68937ee00">view</a> • fixed packages for centos6
* <a href="http://github.com/snipe/snipe-it/commit/62cee46a83d9d9dcf9e12884563918bab0adb61a">view</a> • update webdir for debian and fix the error logs
* <a href="http://github.com/snipe/snipe-it/commit/aa05d041bd7abd193ea580c0928326d4855b522f">view</a> • Fixes #1324 - missing $inout variable when if/else not met
* <a href="http://github.com/snipe/snipe-it/commit/2b26fd7e20e0636cee068a7804eb82ece780f5a2">view</a> • Fixed string in gh-changelog
### v2.0.5-pre - Released Nov 04, 2015 11:42:37
#### This is a pre-release
* <a href="http://github.com/snipe/snipe-it/commit/679b9f6def461ae5e2c0fa1223368d5838ac2945">view</a> • Small EOL fix
* <a href="http://github.com/snipe/snipe-it/commit/348a566f894d568d8ce9d1b58ffe6ce03cfb7e65">view</a> • More responsive fixes
* <a href="http://github.com/snipe/snipe-it/commit/d1192095d03584644fb1a8e26d5830383631cc11">view</a> • Fix for showing deleted items
* <a href="http://github.com/snipe/snipe-it/commit/8ad220701eed66b49173a9e12e2883e7d355fbf7">view</a> • Fixes Purchase Cost not showing up on custom reports
* <a href="http://github.com/snipe/snipe-it/commit/8ea40d4e6d8e440158d3271f859dac167182b4c9">view</a> • Fixes default value for strict mode
* <a href="http://github.com/snipe/snipe-it/commit/a3f5dc331d55afdea0b427b055e95bb4ef379e95">view</a> • Fixes #1007 and #1053
* <a href="http://github.com/snipe/snipe-it/commit/cf49920564367b153181974f1b1b3b10a6f02e84">view</a> • Fixes #1235 - 24 hour format for log
* <a href="http://github.com/snipe/snipe-it/commit/0a3843393ddf1fe0b5c5ce3f92a9f4820d13cd3f">view</a> • Addec expected_checkout, fixed language calls to use blade syntax
* <a href="http://github.com/snipe/snipe-it/commit/20e7888bd9636856758e25efbe7d347fd2afd900">view</a> • Fixed expected checkin on view
* <a href="http://github.com/snipe/snipe-it/commit/efddda8665e2c20f60dde40ca23294fa76506957">view</a> • Fixed expected_checkin error on asset view
* <a href="http://github.com/snipe/snipe-it/commit/09bcb137c4f85e24f2127f24ce509caa7e5a060a">view</a> • Ugly fix for preventing errors if there is an invalid model (therefore no category)
* <a href="http://github.com/snipe/snipe-it/commit/5436d54aa0d9d52131ef89ad804034fe67e95011">view</a> • Fixes #1290 - datatable broken for assets in model
* <a href="http://github.com/snipe/snipe-it/commit/76968f7d48a4558105cc52231726475e626f0a2b">view</a> • Fixes asset model table sorting
* <a href="http://github.com/snipe/snipe-it/commit/e0fccc8fc978ca36512f77d32032e3329f52cb48">view</a> • Possible fix for #1296? Can't reproduce locally
* <a href="http://github.com/snipe/snipe-it/commit/d0eed67c42334c094eefe65eb900d2fa8efaf93c">view</a> • Fixed relationship to return actual assets
* <a href="http://github.com/snipe/snipe-it/commit/0745ec1502865b3be6bab65d48d12188a8ddc77e">view</a> • Fixed scope for users
* <a href="http://github.com/snipe/snipe-it/commit/f147a0ff02e69ee5b99be4b58cf867bc39ac3505">view</a> • Fixed user table name
* <a href="http://github.com/snipe/snipe-it/commit/577c1936612a3a9a36cd2968d7511adf6fba3fde">view</a> • Fixed bug in location import
* <a href="http://github.com/snipe/snipe-it/commit/0b0b55619b0e3b8b370fce65ece340430fe889dd">view</a> • Fixes #1291 - Use current currency, or sane fallback
* <a href="http://github.com/snipe/snipe-it/commit/f4331f4498b5c3c537b8f33b4f8a34fdf94ae3ec">view</a> • Fixes #1291 - use location currency and fall back to defaul currency for asset maintenances
* <a href="http://github.com/snipe/snipe-it/commit/2a43491792877bd8a9ed47282eb3059c4d2c7ed0">view</a> • Fixes #1291 on the asset view as well
* <a href="http://github.com/snipe/snipe-it/commit/17207ddea115bd9956b695470a539c8cc1a41391">view</a> • Fixed table cookie name
* <a href="http://github.com/snipe/snipe-it/commit/4b2e7b9b069a98668f028e5c5851d64ed1364967">view</a> • Fixes #1013 - show location name on asset view page
* <a href="http://github.com/snipe/snipe-it/commit/dc64ad55ee38be414ce32d5de8b4021897c7a1ce">view</a> • Fixed link to manufacturers view
* <a href="http://github.com/snipe/snipe-it/commit/bc8c8e422504ac92bc20801e6f68883d79933dce">view</a> • Fixes #1012 - more consistency in manufacturer view
* <a href="http://github.com/snipe/snipe-it/commit/14ba5a3b77e894ae82c73607f39e30bbce9895af">view</a> • Fixes #1310 - adds version hash to table name to prevent cookie issues for folks who pull from dev
### v2.0.4 - Released Oct 21, 2015 07:40:18
* <a href="http://github.com/snipe/snipe-it/commit/0cb4b9e00bdd8b5f795b8ce6fbb594f5a01df8ff">view</a> • Fixes #1181 - add title to maintenances in asset view
* <a href="http://github.com/snipe/snipe-it/commit/49a20c75ed4b0f9d3a66ddf6bd33d8c24bc571c0">view</a> • Fix for #1052 - hopefully make it less brittle in future as well.
* <a href="http://github.com/snipe/snipe-it/commit/2df8c6a3d198f3eb3098783b16fc977a9599c7fe">view</a> • Merge pull request #1186 from snipe/docker_fix2
* <a href="http://github.com/snipe/snipe-it/commit/b943ace21b420a726477a892be6c08d2549d2a87">view</a> • Fixed wrong model type reference
* <a href="http://github.com/snipe/snipe-it/commit/4c662b713605e161696c7e0faa8977dc59f82d45">view</a> • Fixes #1196 - added licensed to name and email in list view
* <a href="http://github.com/snipe/snipe-it/commit/141c77fed7ff996e9d9efb803c454f3e3225ce56">view</a> • Fixed #1205 set default nullable in purchase order for strict mode
* <a href="http://github.com/snipe/snipe-it/commit/10909a21cde3a11ed6c06d7ace7af35f315d281b">view</a> • Fixes #1206 - updated seeder with is_warranty value
* <a href="http://github.com/snipe/snipe-it/commit/f6b57adda30a415f7a67d5e45be76ca7bb5e5764">view</a> • Fixes #1211 and duplicate column in view
* <a href="http://github.com/snipe/snipe-it/commit/75af50def159da0e03ac41b5c91ab8e074bce7ef">view</a> • Accessories fix for #1204
* <a href="http://github.com/snipe/snipe-it/commit/4f74ad077a43651708c3759e91c571e7aa0e90d4">view</a> • Fixes #1136 - allow consumables to be deleted, even if they have been assigned
* <a href="http://github.com/snipe/snipe-it/commit/e7f14f66dc94fe1e38b92ff8b4ccf8306d5743cc">view</a> • Fixes #1260 - removed domain from cli list
### v2.0.3 - Released Sep 21, 2015 01:11:08
* <a href="http://github.com/snipe/snipe-it/commit/39f82e546fd0ecbac14f79780c9c3b4020d943f0">view</a> • Fixes #1174 - broken migration if asset_logs table has uploads
* <a href="http://github.com/snipe/snipe-it/commit/cffd87c5a37d55156c7c05a8795d75ef36f6470d">view</a> • Fix user display if no location was provided
* <a href="http://github.com/snipe/snipe-it/commit/fe765b3c9c086687a9f1cdd5a696e48664520a32">view</a> • Fixed not found error message string
* <a href="http://github.com/snipe/snipe-it/commit/fbbe24f19703b2fdab14be13b10a167c2eaf46c3">view</a> • Fixes #1184 because package authors can't seem to keep their stuff from breaking
* <a href="http://github.com/snipe/snipe-it/commit/2c54c93859ad73c3fe8fb8452be70ce3cf0c4467">view</a> • Fixes #1170 - barcode alternative
### v2.0.1 - Released Sep 04, 2015 02:24:22
* <a href="http://github.com/snipe/snipe-it/commit/67e0e14a12d49fc190daae553332a6c008f89314">view</a> • License importer, small fixes for asset imporer
* <a href="http://github.com/snipe/snipe-it/commit/46fb12f5dcd5a37e8aecdf585ee892c6816f2bb0">view</a> • Fixed acceptance suite yaml to make it work for travis-ci as well as local testing
* <a href="http://github.com/snipe/snipe-it/commit/33178adeedb37773c7b830582b167d1b5063127c">view</a> • Fixed issue in travis yaml file
* <a href="http://github.com/snipe/snipe-it/commit/1fadabaf2f4a15ffdd26d426fb814d970b7e62f4">view</a> • Fixed stupid mistake in the travis yaml file
* <a href="http://github.com/snipe/snipe-it/commit/1bed711f0e7462d5b4875b8c014d15690648049d">view</a> • Another tweak getting closer
* <a href="http://github.com/snipe/snipe-it/commit/41c257829ed8d7019b5fe4761fcdf7560167cc74">view</a> • Another tweak - getting close
* <a href="http://github.com/snipe/snipe-it/commit/49e898fd263cc1fb7fb80dcb7aa11058c305ed21">view</a> • Merge pull request #1122 from irasnyd/docker-fixes
* <a href="http://github.com/snipe/snipe-it/commit/dd2b9e15a60c402be914747979e27ca8a7c1c496">view</a> • Fix #1109 - Asset names are missing when viewing user history
* <a href="http://github.com/snipe/snipe-it/commit/6e13da6293db3347e62363c448a35b502f8c8379">view</a> • Fix #1123 - fix new lines in serial not being recognised
* <a href="http://github.com/snipe/snipe-it/commit/cf7ef5e8b0c3e6a376614486e590ef2d25d5145e">view</a> • Merge pull request #1131 from irasnyd/docker-fixes
* <a href="http://github.com/snipe/snipe-it/commit/da10a9a2aa2c2995ca81e8e1ad9e0117de058eb8">view</a> • Fixes #1130 - don't try to send email if email is not provided with the user
* <a href="http://github.com/snipe/snipe-it/commit/00aba507f7a4f5daaa57b9ccd5e7730bb5e9f63d">view</a> • Fixed acceptance suite yaml to make it work for travis-ci as well as local testing
* <a href="http://github.com/snipe/snipe-it/commit/be402a9d7d3d039666f1c8110b8d1e1697d28092">view</a> • Fixed issue in travis yaml file
* <a href="http://github.com/snipe/snipe-it/commit/b1d6d4da3777505d51310780fe393a874a24358e">view</a> • Fixed stupid mistake in the travis yaml file
* <a href="http://github.com/snipe/snipe-it/commit/f836f88e38fb4bb0b682d301081254bb59923bf6">view</a> • Another tweak getting closer
* <a href="http://github.com/snipe/snipe-it/commit/309ce7d0bd6758c186d9f002ebc9924b72542f4f">view</a> • Another tweak - getting close
* <a href="http://github.com/snipe/snipe-it/commit/7bd5ddc516cc3130f4eb5e7ac53a7c9d4e67be87">view</a> • Fixes incorrect title for unaccepted assets report
* <a href="http://github.com/snipe/snipe-it/commit/70f7f653948dfb40e62b1e699ae30e2eca31c085">view</a> • Fixed path for windows
* <a href="http://github.com/snipe/snipe-it/commit/e916fdcc8925b0d997b77c8ce167eb91948ee883">view</a> • Fixes #1092, setting LDAP_OPT_REFERRALS to 0 for Active Directory
* <a href="http://github.com/snipe/snipe-it/commit/da6770c9d967d177af6cb36af6a92f0bdae1800a">view</a> • Fixes #1102 - default currency stored as htmlentities in the DB
### v2.0-RC-1 - Released Aug 20, 2015 12:53:11
#### This is a pre-release
* <a href="http://github.com/snipe/snipe-it/commit/94e8b5f783c3b03c062c0d82d3d166d770ec8e6f">view</a> • Fixed bug in expected checkin
* <a href="http://github.com/snipe/snipe-it/commit/a27a98f4b3d6ac980eb4c00c14e966534024ae56">view</a> • Fixes #1081- include asset name on checkout
* <a href="http://github.com/snipe/snipe-it/commit/139dd1339271351714623e53d323cce5356618de">view</a> • Super janky miulti-level menu on create - TODO: Fix this ish.
* <a href="http://github.com/snipe/snipe-it/commit/2d7a348ab705fbca6f432f7adf0861085ab836c5">view</a> • Fixed multi-level array nesting for locations
* <a href="http://github.com/snipe/snipe-it/commit/95279f885b231eda371835b9eeb998c683cfbfd3">view</a> • Fixes #759 - populate form with parent location info
* <a href="http://github.com/snipe/snipe-it/commit/8cdea8a38404ed2187fa59f8e7f9198cb9ce94bb">view</a> • Fix for location totals
* <a href="http://github.com/snipe/snipe-it/commit/496a768013c759a4e3fa190f5970bbb865cebd62">view</a> • Fixes #795 - add model name if no asset name
* <a href="http://github.com/snipe/snipe-it/commit/7c95f4231e3281ca99744aa3ba8e530cf746c6ba">view</a> • Fixes #799 - missing text in file delete confirmation
* <a href="http://github.com/snipe/snipe-it/commit/766b4b901f8dbefe4e052d1927f274a0ace4d7d3">view</a> • Fixes #822 - make user notes field nullable default null
* <a href="http://github.com/snipe/snipe-it/commit/fdef26608971b747ca3ac9ada87f295311543892">view</a> • Addresses #577 and fixes #165 - switch from email to username
* <a href="http://github.com/snipe/snipe-it/commit/f42540fedf92a315614c6c1dfacd31879fef2a78">view</a> • More fixes for #165 - added username field
* <a href="http://github.com/snipe/snipe-it/commit/3d4607ebd3e7f6494912f38be40945eb4aa6a57b">view</a> • Fixes #858 - find admin group by name instead of ID for consideration of clustered DBs
* <a href="http://github.com/snipe/snipe-it/commit/bf6674f6a0252abf51977a355cadc6fccbde7cd7">view</a> • Added table prefix for raw queries
* <a href="http://github.com/snipe/snipe-it/commit/ea0f2c5f347d31a1543b7b3c980c9909a3e2403d">view</a> • Fixes #833 - remove status label field if asset is checked out
* <a href="http://github.com/snipe/snipe-it/commit/edddf6ae80cfa60af17544ed06c1b7c5883afe7a">view</a> • Fixes #833 - remove status label field if asset is checked out
* <a href="http://github.com/snipe/snipe-it/commit/2e585f9cd205e7fad93559281ac92b0fb09f816e">view</a> • Fixes #839 - bad seed data
* <a href="http://github.com/snipe/snipe-it/commit/75b9b70a8632f10c7c55b6a62e8d19e6f8b4ebe8">view</a> • Fix email field so it's nullable, fix app command to add user
* <a href="http://github.com/snipe/snipe-it/commit/a5292d4b71e479cf87b7729b66e61fbf0f856520">view</a> • Fixed issue with migration that left off the deleted_at field
* <a href="http://github.com/snipe/snipe-it/commit/0f190e094d5d084e853f7134ba917a73dd9e5f01">view</a> • One last fix to the migration to add the supplier relationship
* <a href="http://github.com/snipe/snipe-it/commit/c59c5e35f8f32710f98e37c77f55adf1f963830e">view</a> • Fixed the need to only be a date instead of a date time
* <a href="http://github.com/snipe/snipe-it/commit/58ce44c93548adb11fe78291fcb10142548f3664">view</a> • Fixed the datetime fields to be date fields only
* <a href="http://github.com/snipe/snipe-it/commit/9316b2bed07d5153ebf78a237f42c7e1d5a3a659">view</a> • Needed to fix nullable issues
* <a href="http://github.com/snipe/snipe-it/commit/b7f050aa3bd426c235732c924f63827ee74b8586">view</a> • Update the migration to fix an issue with the improvement_time so it would be an integer Created the view for improvements Updated messages in language pack for additional items needed Updated the asset view and supplier view to fix an issue
* <a href="http://github.com/snipe/snipe-it/commit/b2847811efdfaa172b07206af24cf3c183c39879">view</a> • Fixed issue found with date being handled incorrectly Updated multiple views to reflect this issue
* <a href="http://github.com/snipe/snipe-it/commit/d4af197b0e8ecde9a36e2417fe7dd2fb7c5c28ec">view</a> • Merge pull request #886 from madd15/Fix---Edit-user
* <a href="http://github.com/snipe/snipe-it/commit/1b423f5b542ac56d5836b8aa1a8c4a93927eeae1">view</a> • Fixed all issues that were reported by @leobg Also, renamed and fixed items of concern by @snipe Renamed Improvements to Asset Maintenances
* <a href="http://github.com/snipe/snipe-it/commit/4a5066054b1bb75222c6765675366405a4f70b73">view</a> • Display bugfixes for #819
* <a href="http://github.com/snipe/snipe-it/commit/7e5f32c9d85cc9a28976732d6232632e1cf0314a">view</a> • Merge pull request #898 from madd15/Default-Layout-fix
* <a href="http://github.com/snipe/snipe-it/commit/c61adc7041f919c156188b12de4bcb2a66a54419">view</a> • Partial fix for #851 datatables. Because clear error reporting is apparently for suckers
* <a href="http://github.com/snipe/snipe-it/commit/0154f240f3d20be2c4a94bf5fab582f91d0eabea">view</a> • Fixes JavaScript for edited assets
* <a href="http://github.com/snipe/snipe-it/commit/24b0d83387efc38340ae2678d220cdaef0bfad5a">view</a> • Fixes #912 - added clon button to list view
* <a href="http://github.com/snipe/snipe-it/commit/de62db5e18c5661595ab17b1c2c74907a00f07f1">view</a> • Fixes #901 - added notes field to list view
* <a href="http://github.com/snipe/snipe-it/commit/0c842fc772d4b82c1cb3148a230342fe852c5ad3">view</a> • Fixes #863 - clickable order number in asset view
* <a href="http://github.com/snipe/snipe-it/commit/01c29683880856e3e17a05e9fde91da18bb95b57">view</a> • Revert "Fixes #863 - clickable order number in asset view"
* <a href="http://github.com/snipe/snipe-it/commit/3e2bd02ce55a677ee50e5a46d225d0fc6aa51f6f">view</a> • Fixed issue with migration that left off the deleted_at field
* <a href="http://github.com/snipe/snipe-it/commit/3a3c021a6a34f9860bf5dc0075e9f3edb60d1248">view</a> • One last fix to the migration to add the supplier relationship
* <a href="http://github.com/snipe/snipe-it/commit/3aa3d67675043eec504b979a16a21146bad5635d">view</a> • Fixed the need to only be a date instead of a date time
* <a href="http://github.com/snipe/snipe-it/commit/69a5c9939637aee96ea16c05431c1aaec5288f25">view</a> • Fixed the datetime fields to be date fields only
* <a href="http://github.com/snipe/snipe-it/commit/0f5b8b5a908d4b7e64241972c53fef473c6c6c6f">view</a> • Needed to fix nullable issues
* <a href="http://github.com/snipe/snipe-it/commit/5ee4eb5871dd05cbf372093cb3f5fe1c0f1047bd">view</a> • Update the migration to fix an issue with the improvement_time so it would be an integer Created the view for improvements Updated messages in language pack for additional items needed Updated the asset view and supplier view to fix an issue
* <a href="http://github.com/snipe/snipe-it/commit/2457003debb0c2a406d1220874e667f26c298f40">view</a> • Fixed issue found with date being handled incorrectly Updated multiple views to reflect this issue
* <a href="http://github.com/snipe/snipe-it/commit/d1d6fe26a6302c37b85c541a7622698ead235648">view</a> • Fixed all issues that were reported by @leobg Also, renamed and fixed items of concern by @snipe Renamed Improvements to Asset Maintenances
* <a href="http://github.com/snipe/snipe-it/commit/6d1197a144aa0cd2479791190a9b46f480ba7d68">view</a> • Fix edit model cat list showing deleted categories
* <a href="http://github.com/snipe/snipe-it/commit/28359053986cf75a82c48b5b7c9bd9302f7c85ac">view</a> • Fix dup file uploads and layout
* <a href="http://github.com/snipe/snipe-it/commit/e4bee3d3729196abd43f10a0de7ce5bf1c9f3458">view</a> • Merge pull request #951 from madd15/fixes-1
* <a href="http://github.com/snipe/snipe-it/commit/eaf077f8076183d65032c7b1f495385d8d261bb7">view</a> • Fixes #946 - navbar custom color not working in FF
* <a href="http://github.com/snipe/snipe-it/commit/59b739c1c4ae3f11f6a36e7968f504d0e8322b76">view</a> • Fixes #902 - redirect to group listing page after group create
* <a href="http://github.com/snipe/snipe-it/commit/cf3619d7666b0f0f4693769a06232db1ad0d5874">view</a> • Fixes #937 - bug in which type of asset
* <a href="http://github.com/snipe/snipe-it/commit/6dea227c3e5123319263890cc6ddccda3fd6223c">view</a> • Fixes #851 - bulk user delete
* <a href="http://github.com/snipe/snipe-it/commit/0f0dab556d7920c87a456356e415b515b3ea8b1a">view</a> • Fixes #807 - bad link for subfolders
* <a href="http://github.com/snipe/snipe-it/commit/a901a648af4c383281ca6f36b5887f49604cf917">view</a> • Fixes #875 - allow user to decline asset and check asset back in if declined
* <a href="http://github.com/snipe/snipe-it/commit/26e081a2cbd90b2a4c3443a8b60c8e86c0daab41">view</a> • Fixes #909 again, because math is super hard
* <a href="http://github.com/snipe/snipe-it/commit/9184dd5303985af7ecf467bb57814b77bfb77077">view</a> • Fix for sad action column with button wrapping
* <a href="http://github.com/snipe/snipe-it/commit/f99cafc101267d524c994f14f8f0470f3583aead">view</a> • Fix for 0000-00-00 purchase date
* <a href="http://github.com/snipe/snipe-it/commit/b79841d481c5e3c3febddcc2e083614643fa967f">view</a> • Fix for @uberbrady's missing route on inline adding
* <a href="http://github.com/snipe/snipe-it/commit/20eb2df9be6ae00f560f91d191b2f7ee9854f8ef">view</a> • Fix to nicen up the layout for the inline-adding and Bootstrapify it.
* <a href="http://github.com/snipe/snipe-it/commit/bb450e6bb662c526581cefa08e63735b21b4dbb8">view</a> • Merge pull request #980 from snipe/inline_layout_fix
* <a href="http://github.com/snipe/snipe-it/commit/c1ae844308a879fe9cb4d7999ddabba4bfa5fe9d">view</a> • Fix #972 - Change back button to work
* <a href="http://github.com/snipe/snipe-it/commit/8c30c5d879ed1ebfcc23bf82cbf9bb0e247e1b5f">view</a> • Fixed issue in routes file
* <a href="http://github.com/snipe/snipe-it/commit/948c443829f20f26c9a76af2f63bd48b7d363e5f">view</a> • Fix for edit/clone
* <a href="http://github.com/snipe/snipe-it/commit/39da217a9ea1f300bc14f1615b2365027dab72dc">view</a> • Fixed table nane for asset_logs in migration
* <a href="http://github.com/snipe/snipe-it/commit/3bb296db789db166faf11d1a0b8289a44d592271">view</a> • Fixed language string for notes (when the hell did THAT break?)
* <a href="http://github.com/snipe/snipe-it/commit/c74c89a17124857e3f25d33f6d0a00f6eaf07861">view</a> • Fixed the migration for adding thread_id to correct the table name and make thread_id nullable
* <a href="http://github.com/snipe/snipe-it/commit/37d4a0105eb2a361b493ab504b22383d400d4356">view</a> • Fix for strict mode
* <a href="http://github.com/snipe/snipe-it/commit/a2aa05fcf95cf8cf4e9baa7cb3ab24a222a545fe">view</a> • Fixed the migration for adding thread_id to correct the table name and make thread_id nullable
* <a href="http://github.com/snipe/snipe-it/commit/3c730c691b32dc7ccf26458929444a721ed1393f">view</a> • Fixes #1010 - better errors on large file uploads
* <a href="http://github.com/snipe/snipe-it/commit/449ad4f86b03aac25891867067d9faa223cd7b5a">view</a> • Fixes #1014 - error if no assets are unaccepted
* <a href="http://github.com/snipe/snipe-it/commit/eb00acddfdf12ed1bb41d0a07741927964614d17">view</a> • Trying to fix the broken migration
* <a href="http://github.com/snipe/snipe-it/commit/dc265ba2a8abf9d0856728e6f6df79d4d89214a8">view</a> • Fixed back button on user create
* <a href="http://github.com/snipe/snipe-it/commit/e253d611b4b36bc00bc9ae49fb2ba4e48d882805">view</a> • Merge pull request #1027 from balticer/fix-validation-ampersand-and-sharp-s
* <a href="http://github.com/snipe/snipe-it/commit/66991ea66340ef7068f825da9fa505ee6b60b955">view</a> • Fixes #1018 - allow name re-use if deleted
* <a href="http://github.com/snipe/snipe-it/commit/5dcc795aa298246e26cfba6c17422825db43f870">view</a> • Fixes #1024 - delete option added to user dropdown
* <a href="http://github.com/snipe/snipe-it/commit/c476eda868de0cb2deb068a0b49bfe7bfc14aa12">view</a> • Removed link on location until location view is fixed
* <a href="http://github.com/snipe/snipe-it/commit/481b905331d361e6eaec5972bc5038862932b778">view</a> • Fixes #1045 - allow 0 value for accessories
* <a href="http://github.com/snipe/snipe-it/commit/b366dec983217e7fec13c8640951acddee915778">view</a> • Fix display for NULL entries created by previous model modal
* <a href="http://github.com/snipe/snipe-it/commit/67e0e14a12d49fc190daae553332a6c008f89314">view</a> • License importer, small fixes for asset imporer
* <a href="http://github.com/snipe/snipe-it/commit/80fb7a4c13b3df18ea73a1360e98217876753439">view</a> • Fixed author's name :P
* <a href="http://github.com/snipe/snipe-it/commit/e49cfb4bdef65fce08086dec4200d91a9ee90209">view</a> • Fixed validation on LDAP
### v1.2.11 - Released Aug 14, 2015 09:18:51
* <a href="http://github.com/snipe/snipe-it/commit/67e0e14a12d49fc190daae553332a6c008f89314">view</a> • License importer, small fixes for asset imporer
### v1.2.10 - Released Aug 06, 2015 11:00:46
* <a href="http://github.com/snipe/snipe-it/commit/5455abfd16b45561bda3077f58032652d8e660ad">view</a> • Fix for importer
* <a href="http://github.com/snipe/snipe-it/commit/5297d699b3f28704156a076d684210eb522919a0">view</a> • Fix logo url
* <a href="http://github.com/snipe/snipe-it/commit/336858e4ed786f7cdbd147db8b04430e95a548bf">view</a> • Fix #1022 - Missing Lang on viewing deleted user
### v1.2.9 - Released Jul 23, 2015 07:33:26
* <a href="http://github.com/snipe/snipe-it/commit/c8870ddcab0b521c9682cd8c5ab6fd56ee01753a">view</a> • Fixes #736 - more fields in bulk edit
* <a href="http://github.com/snipe/snipe-it/commit/5e7a4e8193b26875729089b36b28adca1644cb8d">view</a> • Fixes #599 - show groups in user list
* <a href="http://github.com/snipe/snipe-it/commit/f463cd6c8d72d9d28cd984ccad08fc596edbdaac">view</a> • Fixes for #759 - location heirarchy
* <a href="http://github.com/snipe/snipe-it/commit/51eeee09d72148d4dae629744753a96e51c1b8ae">view</a> • Fixes bug in #736 for new fields
* <a href="http://github.com/snipe/snipe-it/commit/139dd1339271351714623e53d323cce5356618de">view</a> • Super janky miulti-level menu on create - TODO: Fix this ish.
* <a href="http://github.com/snipe/snipe-it/commit/2d7a348ab705fbca6f432f7adf0861085ab836c5">view</a> • Fixed multi-level array nesting for locations
* <a href="http://github.com/snipe/snipe-it/commit/95279f885b231eda371835b9eeb998c683cfbfd3">view</a> • Fixes #759 - populate form with parent location info
* <a href="http://github.com/snipe/snipe-it/commit/8cdea8a38404ed2187fa59f8e7f9198cb9ce94bb">view</a> • Fix for location totals
* <a href="http://github.com/snipe/snipe-it/commit/496a768013c759a4e3fa190f5970bbb865cebd62">view</a> • Fixes #795 - add model name if no asset name
* <a href="http://github.com/snipe/snipe-it/commit/7c95f4231e3281ca99744aa3ba8e530cf746c6ba">view</a> • Fixes #799 - missing text in file delete confirmation
* <a href="http://github.com/snipe/snipe-it/commit/766b4b901f8dbefe4e052d1927f274a0ace4d7d3">view</a> • Fixes #822 - make user notes field nullable default null
* <a href="http://github.com/snipe/snipe-it/commit/fdef26608971b747ca3ac9ada87f295311543892">view</a> • Addresses #577 and fixes #165 - switch from email to username
* <a href="http://github.com/snipe/snipe-it/commit/f42540fedf92a315614c6c1dfacd31879fef2a78">view</a> • More fixes for #165 - added username field
* <a href="http://github.com/snipe/snipe-it/commit/3d4607ebd3e7f6494912f38be40945eb4aa6a57b">view</a> • Fixes #858 - find admin group by name instead of ID for consideration of clustered DBs
* <a href="http://github.com/snipe/snipe-it/commit/bf6674f6a0252abf51977a355cadc6fccbde7cd7">view</a> • Added table prefix for raw queries
* <a href="http://github.com/snipe/snipe-it/commit/ea0f2c5f347d31a1543b7b3c980c9909a3e2403d">view</a> • Fixes #833 - remove status label field if asset is checked out
* <a href="http://github.com/snipe/snipe-it/commit/edddf6ae80cfa60af17544ed06c1b7c5883afe7a">view</a> • Fixes #833 - remove status label field if asset is checked out
* <a href="http://github.com/snipe/snipe-it/commit/2e585f9cd205e7fad93559281ac92b0fb09f816e">view</a> • Fixes #839 - bad seed data
* <a href="http://github.com/snipe/snipe-it/commit/75b9b70a8632f10c7c55b6a62e8d19e6f8b4ebe8">view</a> • Fix email field so it's nullable, fix app command to add user
* <a href="http://github.com/snipe/snipe-it/commit/139dd1339271351714623e53d323cce5356618de">view</a> • Super janky miulti-level menu on create - TODO: Fix this ish.
* <a href="http://github.com/snipe/snipe-it/commit/2d7a348ab705fbca6f432f7adf0861085ab836c5">view</a> • Fixed multi-level array nesting for locations
* <a href="http://github.com/snipe/snipe-it/commit/95279f885b231eda371835b9eeb998c683cfbfd3">view</a> • Fixes #759 - populate form with parent location info
* <a href="http://github.com/snipe/snipe-it/commit/8cdea8a38404ed2187fa59f8e7f9198cb9ce94bb">view</a> • Fix for location totals
* <a href="http://github.com/snipe/snipe-it/commit/496a768013c759a4e3fa190f5970bbb865cebd62">view</a> • Fixes #795 - add model name if no asset name
* <a href="http://github.com/snipe/snipe-it/commit/7c95f4231e3281ca99744aa3ba8e530cf746c6ba">view</a> • Fixes #799 - missing text in file delete confirmation
* <a href="http://github.com/snipe/snipe-it/commit/766b4b901f8dbefe4e052d1927f274a0ace4d7d3">view</a> • Fixes #822 - make user notes field nullable default null
* <a href="http://github.com/snipe/snipe-it/commit/fdef26608971b747ca3ac9ada87f295311543892">view</a> • Addresses #577 and fixes #165 - switch from email to username
* <a href="http://github.com/snipe/snipe-it/commit/f42540fedf92a315614c6c1dfacd31879fef2a78">view</a> • More fixes for #165 - added username field
* <a href="http://github.com/snipe/snipe-it/commit/3d4607ebd3e7f6494912f38be40945eb4aa6a57b">view</a> • Fixes #858 - find admin group by name instead of ID for consideration of clustered DBs
* <a href="http://github.com/snipe/snipe-it/commit/bf6674f6a0252abf51977a355cadc6fccbde7cd7">view</a> • Added table prefix for raw queries
* <a href="http://github.com/snipe/snipe-it/commit/ea0f2c5f347d31a1543b7b3c980c9909a3e2403d">view</a> • Fixes #833 - remove status label field if asset is checked out
* <a href="http://github.com/snipe/snipe-it/commit/edddf6ae80cfa60af17544ed06c1b7c5883afe7a">view</a> • Fixes #833 - remove status label field if asset is checked out
* <a href="http://github.com/snipe/snipe-it/commit/2e585f9cd205e7fad93559281ac92b0fb09f816e">view</a> • Fixes #839 - bad seed data
* <a href="http://github.com/snipe/snipe-it/commit/75b9b70a8632f10c7c55b6a62e8d19e6f8b4ebe8">view</a> • Fix email field so it's nullable, fix app command to add user
* <a href="http://github.com/snipe/snipe-it/commit/d4af197b0e8ecde9a36e2417fe7dd2fb7c5c28ec">view</a> • Merge pull request #886 from madd15/Fix---Edit-user
* <a href="http://github.com/snipe/snipe-it/commit/a22687abc5cc913d5f83ecbac4046ba05353d30e">view</a> • Fix #896 - Only show Checkout/Checkin if deployable
* <a href="http://github.com/snipe/snipe-it/commit/05f0b94bf6b3e746093b45a1ecb6f432e6901880">view</a> • Fixed language string
* <a href="http://github.com/snipe/snipe-it/commit/de23ec57851f6c5a25b288919d82175dacc27426">view</a> • Fixes #544 - disable checking an asset out to a user if it is not a deployable status
* <a href="http://github.com/snipe/snipe-it/commit/7820efc12127068dff9e1c7a8c97cc2cf939d976">view</a> • Fixes #822 and #847 - added notes field on import for MySQL strict mode
* <a href="http://github.com/snipe/snipe-it/commit/c3c4e9def212b8bc5a36526bbfff8b1939c01464">view</a> • Fixes #852 - localized string for file types, added zip and rar for asset upload
### v1.2.7-master - Released May 27, 2015 06:45:44
* <a href="http://github.com/snipe/snipe-it/commit/73a08c031c2ff48bbe7e2886dd986a4566f14908">view</a> • Fixes #818, and randomizes password for dummy user
* <a href="http://github.com/snipe/snipe-it/commit/46c1f2a28bb141b65f362936c59779376ba0ce3e">view</a> • Server side datatables for user view - needs fix for deleted users
* <a href="http://github.com/snipe/snipe-it/commit/0ffb5df40b1983527efabad44e6c32fe0af3141f">view</a> • Fixed changelog order
* <a href="http://github.com/snipe/snipe-it/commit/3da652216bca192c16783fa52eb83ac650c7fba5">view</a> • Possible fix for #652 - need to test mobile and Cinema display
* <a href="http://github.com/snipe/snipe-it/commit/9edcc39de244c76ae2b8f8df473aa891996cd53d">view</a> • Fix restore button now showing
* <a href="http://github.com/snipe/snipe-it/commit/c14761b9a1af093c748c2bfa19b38a38c200502e">view</a> • Re-fix button not showing
* <a href="http://github.com/snipe/snipe-it/commit/c8bf26a3b3d29f44f6b45dfbbda5a33985ae076d">view</a> • Fix layout of loading box
* <a href="http://github.com/snipe/snipe-it/commit/4aa4e7c9fc831f151e4fd4a2676b7f8e1b845841">view</a> • Fix error if user is not in throttle table
* <a href="http://github.com/snipe/snipe-it/commit/a9f15fbcaef14ae1f78f08da632032c41074c0f9">view</a> • Convert Categories View to use Datatables, and fix Model View missing comma
* <a href="http://github.com/snipe/snipe-it/commit/d9b92240450f559d60b811d6ab6be948995de9e5">view</a> • Fix mobile unable to click sign in
* <a href="http://github.com/snipe/snipe-it/commit/7f2ccc860b5af8effdadff91119d5d9ffe9c0584">view</a> • Remove forgot password link and fix save icon
* <a href="http://github.com/snipe/snipe-it/commit/d952a1199b285dd2c7de3567ea6f4d006c489920">view</a> • Remove forgot password link and fix save icon
* <a href="http://github.com/snipe/snipe-it/commit/6b853750e59eacbb13ab3ef7ed403be4702e701c">view</a> • Fix for strict mode app install
* <a href="http://github.com/snipe/snipe-it/commit/e4b45231ecfa34b4f504db42f3f18c4440f0085a">view</a> • Fix for bad seed data if Jon Doe doesn't get created
* <a href="http://github.com/snipe/snipe-it/commit/33e7ce67616e8153785516ceca7423257bca9718">view</a> • Fixes for #722 localization
* <a href="http://github.com/snipe/snipe-it/commit/c88ce0d14d605d74b297f18bf55533218ed445bf">view</a> • Fixes for #722 datatables
* <a href="http://github.com/snipe/snipe-it/commit/efba1b90386b6481b9679a2ec8ddc85d1bd6d7d3">view</a> • Fix update button to goto right group
* <a href="http://github.com/snipe/snipe-it/commit/9de083afa78d5e76e289007423cb74b05371efc9">view</a> • Merge pull request #734 from snipe/depreciation_fix2
* <a href="http://github.com/snipe/snipe-it/commit/1a4f148318ca325bad1e042aeb7514933faeff7a">view</a> • Fix #737 -Only display comma & address2 if not Null
* <a href="http://github.com/snipe/snipe-it/commit/ba58e718b4af2e2f60138e0b6fb3f6f6985f30e0">view</a> • Resolved some deps from vendor changes
* <a href="http://github.com/snipe/snipe-it/commit/1c2e5ecc0f9460bc23f3c0e6ee44774263d08bd6">view</a> • Remove space after concat to fix SQL FUNCTION CONCAT NOT EXIST error
* <a href="http://github.com/snipe/snipe-it/commit/564d5fcb31689ab22405cd56ff402af097e1af7a">view</a> • Merge pull request #770 from southwolf/fix-concat-space
* <a href="http://github.com/snipe/snipe-it/commit/6a7fcd5c40b201cc0744eab8b73bd66bfa8e33aa">view</a> • Fixes #769 - set sort order for Accessory Category
* <a href="http://github.com/snipe/snipe-it/commit/9841dbbbc42c182f98d561cc319175973a55b789">view</a> • Fixed HTML so settings are saved correctly
* <a href="http://github.com/snipe/snipe-it/commit/3b491d4a6bc02b3a0b46e8eae6804879a119f56e">view</a> • Fixes #757 - use showAssetName method
* <a href="http://github.com/snipe/snipe-it/commit/767e2c69f324d32e0a49e0a386bd14640ad0304e">view</a> • Fixes #751 - ignore whether depreciation was selected or not to display purchase cost
### v1.2.6.1 - Released Mar 12, 2015 08:25:28
* <a href="http://github.com/snipe/snipe-it/commit/7047af44f6544d2eeed0f0fcefdbdd44489f189a">view</a> • Fixed layout for remember me button
* <a href="http://github.com/snipe/snipe-it/commit/4502582beb064ffeee4a1cdf892f513e58534014">view</a> • Trying to fix pre-commit hook :(
* <a href="http://github.com/snipe/snipe-it/commit/61b04d6e40baa9054e1701455259d8d62fa868ff">view</a> • Fixes #579 - user cannot accept more than once
* <a href="http://github.com/snipe/snipe-it/commit/2d196b1595ec87f119ad5a82f8f676918c52c896">view</a> • Fixes #602 for strict_mode
* <a href="http://github.com/snipe/snipe-it/commit/2540e90c37f37515d8d0277a4152c4b8198a4222">view</a> • Fixes #605 - hides user requestable view from admins
* <a href="http://github.com/snipe/snipe-it/commit/1c333e4a24a4950418175a8c354d7541637b7658">view</a> • Fixes #596 - better routes for checking in multiple items from user
* <a href="http://github.com/snipe/snipe-it/commit/7d5ee9750f912d85ac0c7f42e2beaba7e026989c">view</a> • Added #596 fix for accessories
* <a href="http://github.com/snipe/snipe-it/commit/3f9d9f23d5190052deb1f36be919c650e8f773b8">view</a> • Fixes #280 - updated link to use config url
* <a href="http://github.com/snipe/snipe-it/commit/2115c82587e06049245f17f9d710fbc7a61e57b9">view</a> • Fixed DB format for nullable EULA
* <a href="http://github.com/snipe/snipe-it/commit/f62f22b4bf1399c3b98041dfe17f4cc8450847b2">view</a> • ref #599. showing groups in user detail view. fixes a small design bug with group edit view
* <a href="http://github.com/snipe/snipe-it/commit/ad25c048c4a52a7f80a479a3b7d621aaad18b1d7">view</a> • Updated Sentry version to fix #625
* <a href="http://github.com/snipe/snipe-it/commit/d31c12cfafb2ba323973964215f033bd9aeb1f9b">view</a> • Merge pull request #629 from uberbrady/unicode_fix
* <a href="http://github.com/snipe/snipe-it/commit/33dd59fb814089c81886c0264b2356df2b212864">view</a> • Fix #637 - Remove Deleted Models from drop down
* <a href="http://github.com/snipe/snipe-it/commit/cb171bcac5c4ccbb347f370e3d2b28783378c0b2">view</a> • Fixes #645 - adds zip and rar to filetype
### v1.2.6 - Released Feb 28, 2015 08:27:45
### v1.2.6-beta - Released Feb 27, 2015 03:17:06
#### This is a pre-release
* <a href="http://github.com/snipe/snipe-it/commit/30df21c7aa2582bc3b1efbfd788c1aea2733aa7d">view</a> • Fixed missing checkedout-to info on asset view
* <a href="http://github.com/snipe/snipe-it/commit/70ae59ed6260101bcfb6e3cbd6309ecb9c1c935a">view</a> • Fixed a bug when no assets are in table that the autoincrement method blows up. Also optimzed the logic to get max id instead of popping top off creation date.
* <a href="http://github.com/snipe/snipe-it/commit/f8e12cabd4af8875abd759a3c9d6c2216cb88601">view</a> • Fixes #476 - added logo upload and header color
* <a href="http://github.com/snipe/snipe-it/commit/f85061f988a946f1d4a284fbfc8c442636c1364c">view</a> • Fix #541 - Headers not being skipped if checked
* <a href="http://github.com/snipe/snipe-it/commit/8b3e22b58e080b44e4de809b8598283fa6ba5bb0">view</a> • Fixes #546 - only insert data if values exist
* <a href="http://github.com/snipe/snipe-it/commit/083cb1b5ec51aa2b6932a59b9436a1a45fad5460">view</a> • Fix activate for strict db
* <a href="http://github.com/snipe/snipe-it/commit/b2af455523fcca1bb02018b38fdb6dc4861819d8">view</a> • Merge conflict resolution. Added a use at the same line as remote. Fixed
* <a href="http://github.com/snipe/snipe-it/commit/8879bff16084b2cfa0280fcb1f83d3f90368797f">view</a> • Fixed bug for reporting on upload in dashboard
* <a href="http://github.com/snipe/snipe-it/commit/3135869d5a3fafcf70e49dcbb99e36c2ec04ddd0">view</a> • Fixed font path
* <a href="http://github.com/snipe/snipe-it/commit/e41621def05994302627cd4a6a81abd8e43c86be">view</a> • Fixed relation between accessory and category
* <a href="http://github.com/snipe/snipe-it/commit/d33dcbbcb12172527cec977f679198f594ac975b">view</a> • Fixed bad method call in accessories on delete
* <a href="http://github.com/snipe/snipe-it/commit/c484afb12b0720eaba2d28f501bf547e2ad9caa9">view</a> • Fixed typo for accessories accept
### v1.2.5 - Released Feb 18, 2015 03:18:10
* <a href="http://github.com/snipe/snipe-it/commit/00f7717142e11b90764ffce2d554c566f8ad219f">view</a> • Fix #475 and styling
* <a href="http://github.com/snipe/snipe-it/commit/49f25a23a99c08606d58101e039a885b89503fa7">view</a> • Merge pull request #516 from splaer/fix-475
* <a href="http://github.com/snipe/snipe-it/commit/58ff929d7193b054073ef46ae2fafdef51d51919">view</a> • Fixes error when no model present because new asset
* <a href="http://github.com/snipe/snipe-it/commit/f57c61dd4d789635cee6f62899807b1a7928800e">view</a> • Possible fix for #518 - license count issue
* <a href="http://github.com/snipe/snipe-it/commit/064c0211dbb310d1dfdb126e3ce2cee72a80f628">view</a> • Fix #517 - User Requestable Assets
* <a href="http://github.com/snipe/snipe-it/commit/4a5007264e1712250726047162df91041d12d28c">view</a> • Fixed mac address not showing
* <a href="http://github.com/snipe/snipe-it/commit/17258b73a1c09918960d894702a0ae341a18f0b8">view</a> • Fixes #520 - state no longer required
* <a href="http://github.com/snipe/snipe-it/commit/f40bb7b8b3a17ff772c797a3f91a845b068be3d2">view</a> • Fixes #520 postal code requirement
* <a href="http://github.com/snipe/snipe-it/commit/08ee02d0cd4d1ff9ed2b0600b75390c1e34c1f53">view</a> • Fixes #525 - added serial to asset model UI
* <a href="http://github.com/snipe/snipe-it/commit/063e5c407c8f817c16026887be16eeb42598417f">view</a> • Fixed the depreciation report, fixes to calculate current depreciated value (which were only used there). Additional fixes and refactoring around Depreciable, in terms of how assets get depreciation via models, and licenses get depreciation directly.
### v1.2.4 - Released Feb 12, 2015 06:57:47
* <a href="http://github.com/snipe/snipe-it/commit/2277b6ee699a78108523eee11695a280e76b1bb4">view</a> • Fixed checkout logic for new assigned_to
* <a href="http://github.com/snipe/snipe-it/commit/dbc93de6b3966470f83254547f8029c60f489490">view</a> • Fixes checkin button on view
* <a href="http://github.com/snipe/snipe-it/commit/31f4ba88f655e1386f2f4f0efae84399f7aa6d52">view</a> • Fix RTD query to not display checked out asset
* <a href="http://github.com/snipe/snipe-it/commit/5867c604104781c351f870ff3e0fd4b4d6eeb35a">view</a> • Fixed scope chaining on assigned_to
* <a href="http://github.com/snipe/snipe-it/commit/7715731c4a2e423afb94873227eb728ad4877221">view</a> • Fix count in header
* <a href="http://github.com/snipe/snipe-it/commit/c2e532e32e4943e251dcb5fdd005e9b65d9798a5">view</a> • Fixed language file for status label messages
* <a href="http://github.com/snipe/snipe-it/commit/f36029a34a696d89b1058c9abdca7953d51e2bc4">view</a> • Fixed migration for to set assigned_to to null per #506
* <a href="http://github.com/snipe/snipe-it/commit/f72b38579037d76b5b188c5d85e24ca567e2480b">view</a> • Fix licenses so null instead of 0
* <a href="http://github.com/snipe/snipe-it/commit/34032c73ceee7a9666680f21bf7490fdc32dbdb6">view</a> • Fixed licenses so null instead of 0
* <a href="http://github.com/snipe/snipe-it/commit/e343c157c5998d6f30a4e25da23ad1092d50c103">view</a> • Fixed naming conflict for requestable
* <a href="http://github.com/snipe/snipe-it/commit/cd5a352961a1e1e8d90368abf81fedee5ce94bef">view</a> • Fix for wrong math on remaining licenses when assigned to an asset
* <a href="http://github.com/snipe/snipe-it/commit/342a8b81afb2060a128d0667acc15fa5caafc2ea">view</a> • Fix for error when asset has null status
* <a href="http://github.com/snipe/snipe-it/commit/fbf03b225d732e12821bfc83b9bae7fb7b4b8be8">view</a> • Fixes #509 - added MAC address as model option
* <a href="http://github.com/snipe/snipe-it/commit/aef3a734a3530f109b82fc0897e25727293f9862">view</a> • Small fix for pending status
* <a href="http://github.com/snipe/snipe-it/commit/f175f52530e58bd5ab80139c526fc7838750cb11">view</a> • Fixed spacer in sidenav for list all
### v1.2.3 - Released Feb 09, 2015 12:22:12
### v1.2.3-beta - Released Feb 07, 2015 06:02:52
#### This is a pre-release
* <a href="http://github.com/snipe/snipe-it/commit/950567e9d66a6836cbca1383d24fc8548d3cbadf">view</a> • Fixes issue related to #471 - assigning to user ID 0 causes erro
* <a href="http://github.com/snipe/snipe-it/commit/2b86f14e30c155f72b903428fd05a896ee9adfcc">view</a> • Possible fix for #484 - fullname issue
* <a href="http://github.com/snipe/snipe-it/commit/1db806f8b283e13dd04f20335d7087d12a04fa23">view</a> • Fixes #488 - longer user jobtitle
* <a href="http://github.com/snipe/snipe-it/commit/f5efc368a58e1b26689dadb285918b090b66eb59">view</a> • Fixes #487 - maintained and purchase order in strict mode
* <a href="http://github.com/snipe/snipe-it/commit/cd338d2a70e1bd4dca3bc651813e51095d7155f0">view</a> • Fixes #483 - line breaks in notes on view
* <a href="http://github.com/snipe/snipe-it/commit/e67ba8a7437d4f27ae869072898e65749602f2dd">view</a> • Fix reporting error on depreciation
* <a href="http://github.com/snipe/snipe-it/commit/1aeb4de0fae723801f0cdb555c77b5ee17ae1919">view</a> • Possible fix for #491 - solving for giticide on package dep
* <a href="http://github.com/snipe/snipe-it/commit/c255edaf617872ac4a896106e56cc816209c2d5b">view</a> • More travis fixes
* <a href="http://github.com/snipe/snipe-it/commit/feeef4b66c1b6049a1f18c67e034907ea26c7da9">view</a> • Fix for asset log incorrectly using soft deletes
* <a href="http://github.com/snipe/snipe-it/commit/140bd137a48c199269d635aef57d14b1f0a4330a">view</a> • Minor display fixes
* <a href="http://github.com/snipe/snipe-it/commit/4a77dee79c18f0e2ab155c7024234150ce98b808">view</a> • Fixes #447 - added asset log entry on save
* <a href="http://github.com/snipe/snipe-it/commit/d85e5246807e597c1efac85c368a642a6fdcf944">view</a> • Fixes #451 - allows spaces in state name
* <a href="http://github.com/snipe/snipe-it/commit/95141d49ba3c4f2b17ed6a26c20e7ad2a8aac9cb">view</a> • Fixes #432 - add model name to checkout
* <a href="http://github.com/snipe/snipe-it/commit/3787a3f4bab9908f4903abdc2951cc254c8dc911">view</a> • Fixed language strings for incrementing IDs
* <a href="http://github.com/snipe/snipe-it/commit/76ac39115347dabac8ada21d981494a3edf7a29c">view</a> • Fixed edit bug where new Category was invoked twice
* <a href="http://github.com/snipe/snipe-it/commit/940281dd4dd0a69b900a052c0bb84e24dde89666">view</a> • Fixed bug on validation display
* <a href="http://github.com/snipe/snipe-it/commit/31d323fb71fcbe94f17f0a2b38183709e8c77151">view</a> • Cosmetic fix on form
* <a href="http://github.com/snipe/snipe-it/commit/8f86ec9dae58cef27387b028f70c8116d649b425">view</a> • Change depreciation to be by month; formatting fixes.
* <a href="http://github.com/snipe/snipe-it/commit/4da2bccbf78a0b630267c6ed75f3a1bd8100e20d">view</a> • Merge pull request #27 from snipe/depreciation_fix
* <a href="http://github.com/snipe/snipe-it/commit/7bc7ffb72813cd176658d536bbdd6be0faa9a45c">view</a> • Fixed some error reporting/required fields around checkout/checkin
* <a href="http://github.com/snipe/snipe-it/commit/48e180c6910d30732559b0cc077fce679344f56e">view</a> • Fixed asset bug caused by unique validation in assets model
* <a href="http://github.com/snipe/snipe-it/commit/57107dceeee81e8618198da33af79fe66bde0d9e">view</a> • Fixed checkin text
* <a href="http://github.com/snipe/snipe-it/commit/3401fee672d796f4aca8dafced6917c7caf87866">view</a> • Another table fix
* <a href="http://github.com/snipe/snipe-it/commit/ddfd69e5100b19bb05d6b76cb9fad3dbadad1921">view</a> • More table fixes
* <a href="http://github.com/snipe/snipe-it/commit/5c43caf0579a26c1604fc81f5cbdf8f0d43c157d">view</a> • More table fixes
* <a href="http://github.com/snipe/snipe-it/commit/44ba90f9f0a968999a743c35dd2bf153c2edbf1d">view</a> • Fixed icon set to white in main nav
* <a href="http://github.com/snipe/snipe-it/commit/719c36d482cc67f1513351672eda057519f7f735">view</a> • migration to fix a few fields in the log table
* <a href="http://github.com/snipe/snipe-it/commit/5b27a34f050646467a178ff780efc80036aadf1b">view</a> • Fixed fieldname in userlog
* <a href="http://github.com/snipe/snipe-it/commit/76da83cbe1c4334380bb996a40cc374ab4ec12e9">view</a> • Fixed links to edit/checkout
* <a href="http://github.com/snipe/snipe-it/commit/d6a718e99766829e700760c2266b62ad37cdb66b">view</a> • Fixed bug in views for created_at date
* <a href="http://github.com/snipe/snipe-it/commit/0ee08e47e9f2b144084703142ae5eb099090476d">view</a> • Fixed fatal error if admin who created the asset was deleted. (This should never happen, but...)
* <a href="http://github.com/snipe/snipe-it/commit/61cceb5f0b44e7f2a82ccca44be2bc42e8825156">view</a> • Fixed open tag in CSS
* <a href="http://github.com/snipe/snipe-it/commit/c93469c465c0ce8a291d595ac8ccbafbfc68c71a">view</a> • Fixed query for asset/license header boxes
* <a href="http://github.com/snipe/snipe-it/commit/d46556a83d5335913b8b7fe8558f416540290343">view</a> • Fixed phone display if no value set
* <a href="http://github.com/snipe/snipe-it/commit/7a5b133c5875959c5d7bebf16ea82bac7ceb3989">view</a> • Fixed bug linking to assets when they should be pointing to licenses
* <a href="http://github.com/snipe/snipe-it/commit/e13578d97d6b1ef1990f171beda9b35868fda47c">view</a> • Fixed error when no category is given
* <a href="http://github.com/snipe/snipe-it/commit/4c0af1eae1031c2630f6e29cc73f8a9dfac1081c">view</a> • Fixed typo causing failure with mysql strict
* <a href="http://github.com/snipe/snipe-it/commit/0e3bcfecd05a39bfea6fc7ba11cb24d9d49e6d86">view</a> • Should be final fixes for mysql strict mode
* <a href="http://github.com/snipe/snipe-it/commit/9e189aa309750c221c27352f35e2ca1f5fab9173">view</a> • Fixes #80, also prevents the user from checking out an asset that is undeployable, etc
* <a href="http://github.com/snipe/snipe-it/commit/8680d98bc36bffa08f87020300b315d26be09928">view</a> • Fixed status display bug
* <a href="http://github.com/snipe/snipe-it/commit/5858bfb99b2144fbc805ec62cc90e6aaaf019f77">view</a> • Fixed language file paths caused by #88
* <a href="http://github.com/snipe/snipe-it/commit/9f7cbc8a4f01ddf2596e831f658c9a8c321b2f46">view</a> • Another fix related to #88, also accounts for users with invalid location_ids
* <a href="http://github.com/snipe/snipe-it/commit/f0f07b578b2439a627e5e946df0849d88d8526cf">view</a> • Fixing pivot for users
* <a href="http://github.com/snipe/snipe-it/commit/9fa826b2e77ce22d25a8b3094bc825802d25be85">view</a> • Fixed assigned to id
* <a href="http://github.com/snipe/snipe-it/commit/d591c1ea0495de091eb0f71daa8572929096c897">view</a> • Fixed bug where RTD = 1 instead of 0
* <a href="http://github.com/snipe/snipe-it/commit/e49420f62d26405b2fa0385f0ae7b3009b3beeaf">view</a> • Fixed bug in depreciation display
* <a href="http://github.com/snipe/snipe-it/commit/1dc7fd1bdf8852fed6d886938f632c8ea69d4798">view</a> • Fixed depreciation display on asset view
* <a href="http://github.com/snipe/snipe-it/commit/cc275367bffa3965a229e1527f6cd8cffd3415f1">view</a> • Removed close button on 'no results' error
* <a href="http://github.com/snipe/snipe-it/commit/211a527ae176df667f6f8fbc95901c53a368d8e2">view</a> • Fixed FK
* <a href="http://github.com/snipe/snipe-it/commit/aaebaa8d36158aafc61988a6370239e85f2e75e5">view</a> • Bugfix to put custom title in the page title
* <a href="http://github.com/snipe/snipe-it/commit/194150bbf0493512018390d011e8d88d144e9763">view</a> • Hacky shit to fix pagination weirdness - will come back to this
* <a href="http://github.com/snipe/snipe-it/commit/60d94eea04d1ebb93704e6a0d20621ff18708272">view</a> • Changes serial to text area, allow new lines. Fixes #118
* <a href="http://github.com/snipe/snipe-it/commit/580590b4c0b4a2f76ef8edfe02de986267fc7395">view</a> • Fixed === to == (PHP is loosely typed)
* <a href="http://github.com/snipe/snipe-it/commit/efad5db082d1461ea26556fad2f1671a49dc1480">view</a> • Fix for broken datatables in upgrading to v2.2
* <a href="http://github.com/snipe/snipe-it/commit/5690e9ce1f178486179ce6cdfb00ca417acd87dd">view</a> • Fixed code indentation for Apache virtualhost example
* <a href="http://github.com/snipe/snipe-it/commit/67aba76d3f83c5f374c05fe07d52eebd81d13278">view</a> • Fixing this change from #109 that somehow got reverted
* <a href="http://github.com/snipe/snipe-it/commit/f4c5da57d0397877d90aa398267e59fcffee7b47">view</a> • Fixed auth error when user isn't logged in
* <a href="http://github.com/snipe/snipe-it/commit/607484b29407718238571eb5269c9c27830338f7">view</a> • Fixes #141 for mysql with strict mode enabled
* <a href="http://github.com/snipe/snipe-it/commit/2825bcb4310899e89ccbc73dfa8b59ade28018da">view</a> • Fixed #179 - account page to show assets checked out to the logged in user
* <a href="http://github.com/snipe/snipe-it/commit/c782f29f5aae752a6246be9778d418df172dd4f6">view</a> • Pulled account sub-nav into top menu to free up UI space. #changelog
* <a href="http://github.com/snipe/snipe-it/commit/fad2ec66fa9abe0b34baf16cce453a7e9fc9e4d4">view</a> • More README fixes and refinement
* <a href="http://github.com/snipe/snipe-it/commit/89a8f3c277d2482b2cd04c4c5c582c9e507770f8">view</a> • Fixes #183 - added employee number to users
* <a href="http://github.com/snipe/snipe-it/commit/a7b809cb91f49fb2c8eaecc67822fa155a0f20ce">view</a> • Updated title/header for users, additional fixes for #151
* <a href="http://github.com/snipe/snipe-it/commit/5266d9a30a9663fa80ff764b25ff71726e5c4f4c">view</a> • Fixed title tag for user list view
* <a href="http://github.com/snipe/snipe-it/commit/43485e1a51330ef585a65b469d7eb85ae7bde13a">view</a> • Fixed language definition
* <a href="http://github.com/snipe/snipe-it/commit/6b5a552d95ff6f6d5567275b50fcd487fb793820">view</a> • Fixed #186 - Bug with select box not retaining selections on edit screen
* <a href="http://github.com/snipe/snipe-it/commit/90eb883b671919ea360122c2bf44433995a12144">view</a> • Fixed #187 - replaced dummy site name with site name from admin panel preferences
* <a href="http://github.com/snipe/snipe-it/commit/2b9494ed8271254f8f84e016f238d518e6109842">view</a> • Fixed inconsistent password requirements across admin user creation, user profile and forgotten password
* <a href="http://github.com/snipe/snipe-it/commit/9dc40a3a9c161267fd8c88aacc1fbf536c1ec2de">view</a> • Fixed a few CSS quirks
* <a href="http://github.com/snipe/snipe-it/commit/99003e126a8fd0ad9aaea5a550e0af5e306fc1bb">view</a> • Fixed bug with edit (supplier_id), added requestable field for assets
* <a href="http://github.com/snipe/snipe-it/commit/21251b462308f2d783b83be1a331a0faf0813d16">view</a> • Fixed #190, where depreciation on licenses would not be saved
* <a href="http://github.com/snipe/snipe-it/commit/4a13cded607415d749151cef495332c48c58cf86">view</a> • Fixed path for Travis composer
* <a href="http://github.com/snipe/snipe-it/commit/ddf946ad5eb6dd8480eeaa709f82af75e0c61444">view</a> • Tried to fix failing build caused by travis composer
* <a href="http://github.com/snipe/snipe-it/commit/a4b220d6c31c97f6504023f0b52527825a4cd897">view</a> • Fixed #191 - allow admins to assign a user during asset creation
* <a href="http://github.com/snipe/snipe-it/commit/dc1033025a0bc1b2d657e06c89058c3ab95f2c59">view</a> • Fixed #151 - more complete translations
* <a href="http://github.com/snipe/snipe-it/commit/56d619b218794b43d8c6b182c89c75f83af9dcd9">view</a> • Fixed missing language string
* <a href="http://github.com/snipe/snipe-it/commit/cb8369e9de96aaf1cf9108e22f4038fa6486b881">view</a> • Initial QA Patch to fix errors Add License Add Asset Show Deleted Users License Assign
* <a href="http://github.com/snipe/snipe-it/commit/62a3ed671bbd957075563933f49e8a5445042737">view</a> • DB migration, layout and clone fixes
* <a href="http://github.com/snipe/snipe-it/commit/9ccc7d756f9361757eafc1dce9684ee9f5ecc1c3">view</a> • A0.4.2: Added asset, license, user, model cloning and fixed some bugs.
* <a href="http://github.com/snipe/snipe-it/commit/652f1c746c4757dce9d33d7bd90a9357822c4656">view</a> • Fixes Travis CI build
* <a href="http://github.com/snipe/snipe-it/commit/363d084bd623f778cd72ca7d385a4fb2f67ef474">view</a> • Fixed DB name in travis CI
* <a href="http://github.com/snipe/snipe-it/commit/86b7b6946f1e1bd404127e228c615e4abe0b20fb">view</a> • Fixes #316 - added model name back to view
* <a href="http://github.com/snipe/snipe-it/commit/9e85dcb9fcb4cc932ecddd23caa6b51e83110543">view</a> • Fixes #315 - add EOL as display option in settings (run migrations)
* <a href="http://github.com/snipe/snipe-it/commit/ee35948980c22f9256241c02d7febd90275f6229">view</a> • fix div issues
* <a href="http://github.com/snipe/snipe-it/commit/0022389463e251e73402450cfbc280cb05633bd1">view</a> • Fix dropdown menu position
* <a href="http://github.com/snipe/snipe-it/commit/343798d241172707145ef365445062db9bb6b99a">view</a> • Merge pull request #322 from madd15/fix-js-delete-asset
* <a href="http://github.com/snipe/snipe-it/commit/74ae2fceea68d18514e87edc008cb3016361beee">view</a> • Fix class on th
* <a href="http://github.com/snipe/snipe-it/commit/fc2d472ed350d7d63fb97942d00a97b62d4bed55">view</a> • Fixed english language string
* <a href="http://github.com/snipe/snipe-it/commit/89c7159c56f88bcf8459a5eb02d79d636335cb28">view</a> • Fix array check for empty rows
* <a href="http://github.com/snipe/snipe-it/commit/7ddc6d497af13e7894031ac763939be9863889a4">view</a> • Fix Report Langs
* <a href="http://github.com/snipe/snipe-it/commit/13b173409fcd5b5ce8e79566b5110eadcf51c233">view</a> • Fix License form langs
* <a href="http://github.com/snipe/snipe-it/commit/b73ae3147a60b29ac455063ecf419a609cce2cac">view</a> • Fixes #362, reduced asset name to 2 char min
* <a href="http://github.com/snipe/snipe-it/commit/637009054cc74b17e2dd226c6f8c467eed5b0962">view</a> • Fixed typo in english
* <a href="http://github.com/snipe/snipe-it/commit/6905d82fc48998f9c95c454c8bf37a34e30c002e">view</a> • Fixes #374 to keep the requirement to PHP 5.4
* <a href="http://github.com/snipe/snipe-it/commit/89a2b87e42c18b308835ef71d196b91002b451ef">view</a> • Fixes #367 - added model number to dropdown
* <a href="http://github.com/snipe/snipe-it/commit/64c16a0bacfcde7c4d92971f2129f1b1aeac2c0e">view</a> • Fixes #386 and #273 - altered column type to text
* <a href="http://github.com/snipe/snipe-it/commit/daefc86e5878a21f9909806599f22198360c1f9b">view</a> • Formattig fixes for #386
* <a href="http://github.com/snipe/snipe-it/commit/73dd339772fcc35e50603ded115f67714620da69">view</a> • Fix #388 - License not showing checked out in view
* <a href="http://github.com/snipe/snipe-it/commit/0663ccb99fa926ff944dded330ba1f0cd95abbb3">view</a> • Check if ->adminuser->id isset before trying to print the fullName so we can catch when a user that created an asset has been deleted. Fixes #349
* <a href="http://github.com/snipe/snipe-it/commit/533be7f942cb6dfccd1e8a79c043d61791e4c54b">view</a> • fixed #435. using namespace with route groups to increase the readability
* <a href="http://github.com/snipe/snipe-it/commit/e434616db83a8d693af63b4705e1b24476fc3c17">view</a> • Merge pull request #436 from rashivkp/fix-435
As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
## Our Standards
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
Examples of behavior that contributes to creating a positive environment
include:
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
Examples of unacceptable behavior by participants include:
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at abuse@snipeitapp.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.1.0, available at [http://contributor-covenant.org/version/1/1/0/](http://contributor-covenant.org/version/1/1/0/)
Please see the documentation on [contributing and developing for Snipe-IT](https://snipe-it.readme.io/docs/contributing-overview).
**Before opening an issue to report a bug or request help, make sure you've checked the [Common Issues](http://docs.snipeitapp.com/common-issues.html) and [Getting Help](http://docs.snipeitapp.com/getting-help.html) pages.**
## Developing on Snipe-IT
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
Please see the [Contributing guidelines in the documentation](http://docs.snipeitapp.com/contributing.html).
Thanks goes to all of these wonderful people ([emoji key](https://github.com/kentcdodds/all-contributors#emoji-key)) who have helped Snipe-IT get this far:
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
This is a FOSS project for asset management in IT Operations. Knowing who has which laptop, when it was purchased in order to depreciate it correctly, handling software licenses, etc.
It is built on [Laravel 10](http://laravel.com).
It is built on [Laravel 4.2](http://laravel.com) and uses the [Sentry 2](https://github.com/cartalyst/sentry) package.
Snipe-IT is actively developed and we [release quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
This project is being actively developed and we're [releasing quite frequently](https://github.com/snipe/snipe-it/releases). ([Check out the live demo here](https://snipeitapp.com/demo/).)
> [!TIP]
> __This is web-based software__. This means there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, any flavor of Linux, as well as Windows, and we have a [Docker image](https://snipe-it.readme.io/docs/docker) available if that's what you're into.
__This is web-based software__. This means there there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser. It runs on any Mac OSX, flavor of Linux, as well as Windows.
-----
### Installation
For instructions on installing and configuring Snipe-IT on your server, check out the [installation manual](https://snipe-it.readme.io/docs). (Please see the [requirements documentation](https://snipe-it.readme.io/docs/requirements) for full requirements.)
__Installation and configuration documentation for this project has been moved to http://docs.snipeitapp.com.__
If you're having trouble with the installation, please check the [Common Issues](https://snipe-it.readme.io/docs/common-issues) and [Getting Help](https://snipe-it.readme.io/docs/getting-help) documentation, and search this repository's open *and* closed issues for help.
#### Server Requirements
Please see the [requirements documentation](http://docs.snipeitapp.com/requirements.html) for full requirements.
For help using Snipe-IT, check out the [user's manual](https://snipe-it.readme.io/docs/overview).
To deploy on Ubuntu using Ansible and Vagrant, check out the [Snipe-IT Installation scripts](https://github.com/GR360RY/snipeit-ansible) created by [@GR360RY](https://github.com/GR360RY/).
To deploy on a fresh Ubuntu / CentOS install that will be dedicated to Snipe-It, run the "install.sh". Make sure to chmod +x install.sh and run as sudo on Ubuntu systems (or equivalent on CentOS.)
-----
### Bug Reports & Feature Requests
Feel free to check out the [GitHub Issues for this project](https://github.com/snipe/snipe-it/issues) to open a bug report or see what open issues you can help with. Please search through existing issues (open *and* closed) to see if your question has already been answered before opening a new issue.
Feel free to check out the [GitHub Issues for this project](https://github.com/snipe/snipe-it/issues) to open a bug report or see what open issues you can help with. Please search through existing issues (open and closed) to see if your question hasn't already been answered before opening a new issue.
We use Waffle.io to help better communicate our roadmap with users. Our [project page there](http://waffle.io/snipe/snipe-it) will show you the backlog, what's ready to be worked on, what's in progress, and what's completed.
If you're having trouble with the installation, please check the [Common Issues](http://docs.snipeitapp.com/common-issues.html) and [Getting Help](http://docs.snipeitapp.com/getting-help.html) documentation.
> [!IMPORTANT]
> **PLEASE see the [Getting Help Guidelines](https://snipe-it.readme.io/docs/getting-help) and [Common Issues](https://snipe-it.readme.io/docs/common-issues) before opening a ticket, and be sure to complete all of the questions in the Github Issue template to help us to help you as quickly as possible.**
>
-----
### Upgrading
Please see the [upgrading documentation](https://snipe-it.readme.io/docs/upgrading) for instructions on upgrading Snipe-IT.
Please see the [upgrading documentation](http://docs.snipeitapp.com/upgrading.html) for instructions on upgrading Snipe-IT.
------
### Announcement List
@@ -51,50 +52,14 @@ To be notified of important news (such as new releases, security advisories, etc
### Translations!
Please see the [translations documentation](https://snipe-it.readme.io/docs/translations) for information about available languages and how to add translations to Snipe-IT.
-----
### Libraries, Modules & Related Projects
Since the release of the JSON REST API, several third-party developers have been developing modules and libraries to work with Snipe-IT.
> [!NOTE]
> As these were created by third-parties, Snipe-IT cannot provide support for these project, and you should contact the developers directly if you need assistance. Additionally, Snipe-IT makes no guarantees as to the reliability, accuracy or maintainability of these libraries. Use at your own risk. :)
- [Python Module](https://github.com/jbloomer/SnipeIT-PythonAPI) by [@jbloomer](https://github.com/jbloomer)
- [SnipeSharp - .NET module in C#](https://github.com/barrycarey/SnipeSharp) by [@barrycarey](https://github.com/barrycarey)
- [InQRy -unmaintained-](https://github.com/Microsoft/InQRy) by [@Microsoft](https://github.com/Microsoft)
- [SnipeitPS](https://github.com/snazy2000/SnipeitPS) by [@snazy2000](https://github.com/snazy2000) - Powershell API Wrapper for Snipe-it
- [jamf2snipe](https://github.com/grokability/jamf2snipe) - Python script to sync assets between a JAMFPro instance and a Snipe-IT instance
- [jamf-snipe-rename](https://macblog.org/jamf-snipe-rename/) - Python script to rename computers in Jamf from Snipe-IT
- [Marksman](https://github.com/Scope-IT/marksman) - A Windows agent for Snipe-IT
- [Snipe-IT plugin for Jira Service Desk](https://marketplace.atlassian.com/apps/1220964/snipe-it-for-jira)
- [Python 3 CSV importer](https://github.com/gastamper/snipeit-csvimporter) - allows importing assets into Snipe-IT based on Item Name rather than Asset Tag.
- [Snipe-IT Kubernetes Helm Chart](https://github.com/t3n/helm-charts/tree/master/snipeit) - For more information, [click here](https://hub.helm.sh/charts/t3n/snipeit).
- [Snipe-IT Bulk Edit](https://github.com/bricelabelle/snipe-it-bulkedit) - Google Script files to use Google Sheets as a bulk checkout/checkin/edit tool for Snipe-IT.
- [MosyleSnipeSync](https://github.com/RodneyLeeBrands/MosyleSnipeSync) by [@Karpadiem](https://github.com/Karpadiem) - Python script to synchronize information between Mosyle and Snipe-IT.
- [WWW::SnipeIT](https://github.com/SEDC/perl-www-snipeit) by [@SEDC](https://github.com/SEDC) - perl module for accessing the API
- [UniFi to Snipe-IT](https://github.com/RodneyLeeBrands/UnifiSnipeSync) by [@karpadiem](https://github.com/karpadiem) - Python script that synchronizes UniFi devices with Snipe-IT.
- [Kandji2Snipe](https://github.com/grokability/kandji2snipe) by [@briangoldstein](https://github.com/briangoldstein) - Python script that synchronizes Kandji with Snipe-IT.
- [SnipeAgent](https://github.com/ReticentRobot/SnipeAgent) by [@ReticentRobot](https://github.com/ReticentRobot) - Windows agent for Snipe-IT.
- [Gate Pass Generator](https://github.com/cha7uraAE/snipe-it-gate-pass-system) by [@cha7uraAE](https://github.com/cha7uraAE) - A Streamlit application for generating gate passes based on hardware data from a Snipe-IT API.
Please see the [translations documentation](http://docs.snipeitapp.com/translations.html) for information about available languages and how to add translations to Snipe-IT.
-----
### Contributing
Please see the documentation on [contributing and developing for Snipe-IT](https://snipe-it.readme.io/docs/contributing-overview).
Please see the documentation on [contributing and developing for Snipe-IT](http://docs.snipeitapp.com/contributing.html).
[](http://waffle.io/snipe/snipe-it)
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
The ERD is available [online here](https://drawsql.app/templates/snipe-it).
[Here is a list](CONTRIBUTORS.md) of the wonderful people that have contributed to the Snipe-IT.
-----
### Security
> [!IMPORTANT]
> **To report a security vulnerability, please email security@snipeitapp.com instead of using the issue tracker.**
This document is targeted at developers looking to make modifications to this application's code base and want to run the existing test suite.
Before starting, follow the [instructions](README.md#installation) for installing the application locally and ensure you can load it in a browser properly.
## Unit and Feature Tests
Before attempting to run the test suite copy the example environment file for tests and update the values to match your environment:
`cp .env.testing.example .env.testing`
The following should work for running tests in memory with sqlite:
To use MySQL you should update the `DB_` variables to match your local test database:
```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE={}
DB_USERNAME={}
DB_PASSWORD={}
```
Now you are ready to run the entire test suite from your terminal:
```shell
php artisan test
````
To run individual test files, you can pass the path to the test that you want to run:
```shell
php artisan test tests/Unit/AccessoryTest.php
```
Some tests, like ones concerning LDAP, are marked with the `@group` annotation. Those groups can be run, or excluded, using the `--group` or `--exclude-group` flags:
```shell
php artisan test --group=ldap
php artisan test --exclude-group=ldap
```
This can be helpful if a set of tests are failing because you don't have an extension, like LDAP, installed.
"description":"Laravel environment mode. Unless developing the application, this should be production.",
"value":"production"
},
"APP_DEBUG":{
"description":"Laravel debug mode. Unless developing the application or actively debugging a problem, this should be set to false.",
"value":"false"
},
"APP_KEY":{
"description":"A secret key for verifying the integrity of signed cookies. (See either https://snipe-it.readme.io/docs/generate-your-app-key or generate at https://coderstoolbox.online/toolbox/generate-symfony-secret)",
"value":""
},
"APP_URL":{
"description":"URL where your Snipe-IT install will be available at.",
"value":"https://your-app-name.herokuapp.com"
},
"APP_TIMEZONE":{
"description":"Which timezone do you want to use for your install? (http://php.net/manual/en/timezones.php)",
"value":"UTC"
},
"APP_LOCALE":{
"description":"Which language do you want to use for your install? (https://snipe-it.readme.io/docs/configuration#setting-a-language)",
"value":"en"
},
"MAX_RESULTS":{
"description":"The maximum number of search results that can be returned at one time.",
"value":"500"
},
"MAIL_MAILER":{
"description":"Mail driver - Generally SMTP on Heroku - https://snipe-it.readme.io/docs/configuration#required-outgoing-mail-settings",
"value":"smtp"
},
"MAIL_HOST":{
"description":"SMTP Server Hostname",
"value":"smtp.your.domain.name"
},
"MAIL_PORT":{
"description":"SMTP Server Port",
"value":"25"
},
"MAIL_USERNAME":{
"description":"SMTP Server Username",
"value":"YOURUSERNAME"
},
"MAIL_PASSWORD":{
"description":"SMTP Server Password",
"value":"YOURPASSWORD"
},
"MAIL_TLS_VERIFY_PEER":{
"description":"Ensure validity of TLS certificate on remote mail server",
"value":true
},
"MAIL_FROM_ADDR":{
"description":"Email from address",
"value":"no-reply@domain.name"
},
"MAIL_FROM_NAME":{
"description":"Email from Name",
"value":"Snipe-IT"
},
"MAIL_REPLYTO_ADDR":{
"description":"Email Reply-To address",
"value":"your@domain.name"
},
"MAIL_REPLYTO_NAME":{
"description":"Email Reply-To Name",
"value":"Snipe-IT"
},
"MAIL_AUTO_EMBED":{
"description":"Whether or not to embed images in emails (via CID or base64) versus linking to them.",
"value":"true"
},
"MAIL_AUTO_EMBED_METHOD":{
"description":"Method that should be used for attaching inline images.",
"value":"base64"
},
"SESSION_LIFETIME":{
"description":"Specify the time in minutes that the session should remain valid.",
"value":"12000"
},
"EXPIRE_ON_CLOSE":{
"description":"Specify whether or not the logged in session should be expired when the user closes their browser window.",
"value":"false"
},
"ENCRYPT":{
"description":"Specify whether you wish to use encrypted cookies for your Snipe-IT sessions.",
"value":"true"
},
"COOKIE_NAME":{
"description":"The name of the cookie set by Snipe-IT for session management.",
"value":"snipeit_session"
},
"COOKIE_DOMAIN":{
"description":"The domain name that the session cookie should be sent for.",
"value":"your-app-name.herokuapp.com"
},
"SECURE_COOKIES":{
"description":"Should cookies only be sent for HTTPS connections? Generally true on Heroku.",
"value":"true"
},
"LOGIN_MAX_ATTEMPTS":{
"description":"The maximum number of failed attempts allowed before the user is throttled.",
"value":"5"
},
"LOGIN_LOCKOUT_DURATION":{
"description":"The duration (in seconds) that the user should be blocked from attempting to authenticate again.",
"value":"60"
},
"LOG_CHANNEL":{
"description":"Driver to send logs to. (errorlog for stderr)",
"value":"errorlog"
},
"ALLOW_IFRAMING":{
"description":"Allow Snipe-IT to be loaded using an iFrame?",
"value":"false"
},
"GOOGLE_MAPS_API":{
"description":"Include your Google Maps API key here if you'd like Snipe-IT to load maps from Google on your locations and suppliers pages.",
"required":false
},
"BACKUP_ENV":{
"description":"Set this to true if you wish to backup your .env file in your Admin > Backups process.",
"value":"true"
},
"ENABLE_HSTS":{
"description":"Whether or not to send the HSTS security policy header.",
protected$description='This is a rescue command that can be used to turn off LDAP settings in the event that you managed to lock yourself out using bad LDAP settings.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
if($this->confirm("\n****************************************************\nThis will disable LDAP support. You will not be able \nto login with an account that does not exist \nlocally in the Snipe-IT local database. \n****************************************************\n\nDo you wish to continue? [y|N]")){
$this->error('Log ID: '.$checkout_log->id.' -- Asset ID '.$checkout_log->item_id.' SHOULD BE checked out to User '.$checkout_log->target_id.' but its assigned_to is '.$asset->assigned_to);
$this->info("Asset id: ".$asset->id." action log, action type is: ".$action_log->action_type);
}
switch($action_log->action_type){
case'checkin from':
if($this->option("debug")){
$this->info("Doing a checkin for ".$asset->id);
}
$asset->assigned_to=null;
// if you have a required custom field, we still want to save, and we *don't* want an action_log
$asset->saveQuietly();
return;
case'checkout':
if($this->option("debug")){
$this->info("Doing a checkout for ".$asset->id." picking target type: ".$action_log->target_type);
}
if($asset->assigned_to!=$action_log->target_id){
$this->error("Asset's assigned_to does *NOT* match Action Log's target_id. \$asset->assigned_to=".$asset->assigned_to." vs. \$action_log->target_id=".$action_log->target_id);
//FIXME - do we abort here? Do we try to keep looking? I don't know, this means your data is *really* messed up...
}
$asset->assigned_type=$action_log->target_type;
$asset->saveQuietly();// see above
return;
}
}
$asset->assigned_to=null;//asset was never checked in or out in its lifetime - it stays 'checked in'
{--user_id= : The ID of the user to create the token for.}
{--name= : The name of the new API token}
{--key-only : Only return the value of the API key}';
/**
* The console command description.
*
* @var string
*/
protected$description='This console command allows you to generate Personal API tokens to be used with the Snipe-IT JSON REST API on behalf of a user.';
protected$signature='snipeit:global-logout {--force : Skip the danger prompt; assuming you enter "y"} ';
/**
* The console command description.
*
* @var string
*/
protected$description='This command will destroy all web sessions on disk and will force a re-login for all users.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
if(!$this->option('force')&&!$this->confirm("****************************************************\nTHIS WILL FORCE A LOGIN FOR ALL LOGGED IN USERS.\n\nAre you SURE you wish to continue? ")){
$this->error('ERROR: '.$summary[$x]['firstname'].' '.$summary[$x]['lastname'].' (username: '.$summary[$x]['username'].') was not imported: '.$summary[$x]['note']);
}else{
$this->info('User '.$summary[$x]['firstname'].' '.$summary[$x]['lastname'].' (username: '.$summary[$x]['username'].') was '.strtoupper($summary[$x]['createorupdate']).'.');
}
}
}elseif($this->option('json_summary')){
$json_summary=['error'=>false,'error_message'=>'','summary'=>$summary];// hardcoding the error to false and the error_message to blank seems a bit weird
$this->error("WARNING: Using an RFC1918 Private address for LDAP server. This may be correct, but it can be a problem if your Snipe-IT instance is not hosted on your private network");
$this->error("Unable to get information from bind.");
}
}
$this->info("STAGE 6: Test LDAP Login to Snipe-IT");
foreach($ldap_urlsAS$ldap_url){
$this->info("Starting auth to ".$ldap_url[0]);
while(true){
$with_tls=$ldap_url[1]?"with":"without";
$with_startssl=$ldap_url[2]?"using":"not using";
if(!$this->confirm('Do you wish to try to authenticate to this directory: '.$ldap_url[0]."$with_tls TLS and $with_startssl STARTSSL?")){
break;
}
$username=$this->ask("Username");
$password=$this->secret("Password");
$this->test_authed_bind($ldap_url[0],$ldap_url[1],$ldap_url[2],$username,$password);// FIXME - should do some other stuff here, maybe with the concatenating or something? maybe? and/or should put up some results?
ldap_set_option($lconn,LDAP_OPT_PROTOCOL_VERSION,3);// should we 'test' different protocol versions here? Does anyone even use anything other than LDAPv3?
// no - it's formally deprecated: https://tools.ietf.org/html/rfc3494
if(!$check_cert){
putenv('LDAPTLS_REQCERT=never');// This is horrible; is this *really* the only way to do it?
}else{
putenv('LDAPTLS_REQCERT');// have to very explicitly and manually *UN* set the env var here to ensure it works
protected$description='This command allows you to merge the history of users. It looks for users without an email address as their username and merges them into the version that does have an email username.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
// Get the list of users who have an email address as their username
protected$description='This will move your locally uploaded files to whatever your current disk is.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
if(config('filesystems.default')=='local'){
$this->error('Your current disk is set to local so we cannot proceed.');
$this->warn("Please configure your .env settings for S3. \nChange your PUBLIC_FILESYSTEM_DISK value to 's3_public' and your PRIVATE_FILESYSTEM_DISK to s3_private.");
$this->warn("\nTHIS WILL DELETE ALL OF YOUR LOCAL UPLOADED FILES. \n\nThis cannot be undone, so you should take a backup of your system before you proceed.\n");
* Log a message to file, configurable by the --log-file parameter.
* If a warning message is passed, we'll spit it to the console as well.
*
* @author Daniel Melzter
* @since 3.0
* @param string $string
* @param string $level
*/
publicfunctionlog($string,$level='info')
{
if($level==='warning'){
Log::warning($string);
$this->comment($string);
}else{
Log::Info($string);
if($this->option('verbose')){
$this->comment($string);
}
}
}
/**
* Get the console command arguments.
*
* @author Daniel Melzter
* @since 3.0
* @return array
*/
protectedfunctiongetArguments()
{
return[
['filename',InputArgument::REQUIRED,'File for the CSV import.'],
];
}
/**
* Get the console command options.
*
* @author Daniel Melzter
* @since 3.0
* @return array
*/
protectedfunctiongetOptions()
{
return[
['email_format',null,InputOption::VALUE_REQUIRED,'The format of the email addresses that should be generated. Options are firstname.lastname, firstname, filastname',null],
['username_format',null,InputOption::VALUE_REQUIRED,'The format of the username that should be generated. Options are firstname.lastname, firstname, filastname, email',null],
['logfile',null,InputOption::VALUE_REQUIRED,'The path to log output to. storage/logs/importer.log by default',storage_path('logs/importer.log')],
['item-type',null,InputOption::VALUE_REQUIRED,'Item Type To import. Valid Options are Asset, Consumable, Accessory, License, or User','Asset'],
['web-importer',null,InputOption::VALUE_NONE,'Internal: packages output for use with the web importer'],
['user_id',null,InputOption::VALUE_REQUIRED,'ID of user creating items',1],
['update',null,InputOption::VALUE_NONE,'If a matching item is found, update item information'],
['send-welcome',null,InputOption::VALUE_NONE,'Whether to send a welcome email to any new users that are created.'],
protected$signature='snipeit:pave {--force : Skip the interactive yes/no prompt for confirmation}';
/**
* The console command description.
*
* @var string
*/
protected$description='Clear the database tables, leaving all migrations, table structure, and the first user in place. (It is primarily a quick tool for developers.) If you want to destroy all tables as well, use php artisan db:wipe.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
if(!$this->option('force')){
$confirmation=$this->confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE DATA IN YOUR DATABASE. \nThere is NO undo. This WILL destroy ALL of your data, \nINCLUDING ANY non-Snipe-IT tables you have in this database. \n****************************************************\n\nDo you wish to continue? No backsies! ");
if(!$confirmation){
$this->error('ABORTING');
exit(-1);
}
}
// List all the tables in the database so we don't have to worry about missing some as the app grows
protected$description='Purge all soft-deleted deleted records in the database. This will rewrite history for items that have been edited, or checked in or out. It will also rewrite history for users associated with deleted items.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
$force=$this->option('force');
if(($this->confirm("\n****************************************************\nTHIS WILL PURGE ALL SOFT-DELETED ITEMS IN YOUR SYSTEM. \nThere is NO undo. This WILL permanently destroy \nALL of your deleted data. \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]"))||$force=='true'){
protected$description='Clears the login_attempts table';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
if($this->confirm("\n****************************************************\nTHIS WILL DELETE ALL OF THE YOUR LOGIN ATTEMPT RECORDS. \nThere is NO undo! \n****************************************************\n\nDo you wish to continue? No backsies! [y|N]")){
protected$description='This utility will regenerate the column names for custom fields. It should typically only be needed when a PHP upgrade changed the behavior of the unicode conversion between versions.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* All three of these things must match for the custom fields system to work as expected:
*
* - what the system thinks the output of $field->convertUnicodeDbSlug() is
* - the actual db_column name in the customfields table
* - the physical column name that was created on the assets table
*
* For some people who upgraded their version of PHP, the unicode converter now behaves
* differently in than it did when their custom fields were first created, specifically as it
* relates to handling slashes, ampersands, etc. This can result in the field names no longer
* matching up, as an older version of the PHP extension simply dropped slashes, etc, while the
* newer version of the PHP extension will convert them to underscores.
*
* @return mixed
*/
publicfunctionhandle()
{
if($this->confirm('This will regenerate all of the custom field database fieldnames in your database. THIS WILL CHANGE YOUR SCHEMA AND SHOULD NOT BE DONE WITHOUT MAKING A BACKUP FIRST. Do you wish to continue?')){
$this->error('-- ✘ Field mismatch: '.$field->name.' value should be '.$field->convertUnicodeDbSlug().' but is '.$field->db_column.' in the custom_fields table');
}else{
$this->error('-- ✘ Field mismatch: '.$field->name.' column should be '.$field->convertUnicodeDbSlug().' but is '.$custom_field_columns[$field->id].' on the assets table.');
}
/** Make sure the custom_field_columns array has the ID */
$this->info('-- ✓ Updating field from '.$field->db_column.' to '.$field->convertUnicodeDbSlug().' in the custom fields table');
$field->db_column=$field->convertUnicodeDbSlug();
$field->save();
}else{
$this->warn('-- ✘ WARNING: There is no field on the assets table ending in '.$field->id.'. This may require more in-depth investigation and may mean the schema was altered manually.');
}
}
/** Update the db_column property in the custom fields table, just in case it doesn't match the other
{--force : Force a re-crypt of encrypted data from MCRYPT.}';
/**
* The console command description.
*
* @var string
*/
protected$description='This command allows upgrading users to de-encrypt their deprecated mcrypt encrypted fields and re-encrypt them using the current OpenSSL encryption.';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
// Check and see if they have a legacy app key listed in their .env
// If not, we can try to use the current APP_KEY if looks like it's old
$this->error('ERROR: You do not have a LEGACY_APP_KEY set in your .env file. Please locate your old APP_KEY and ADD a line to your .env file like: LEGACY_APP_KEY=YOUR_OLD_APP_KEY');
$this->comment('INFO: Your LEGACY_APP_KEY looks correct. Okay to continue.');
}else{
$this->error('ERROR: Your LEGACY_APP_KEY is not the correct length (32 characters or base64 followed by 44 characters for later versions). Please locate your old APP_KEY and use that as your LEGACY_APP_KEY in your .env file to continue.');
$this->comment("This tool will attempt to decrypt your old Snipe-IT (mcrypt, now deprecated) encrypted data and re-encrypt it using OpenSSL. \n\nYou should only continue if you have backed up any and all old APP_KEYs and have backed up your data.");
$force=($this->option('force'))?true:false;
if($force||($this->confirm('Are you SURE you wish to continue?'))){
protected$description='This utility will regenerate all asset tags. THIS IS DATA-DESTRUCTIVE AND SHOULD BE USED WITH CAUTION. ';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
if($this->confirm('This will regenerate all of the asset tags within your system. This action is data-destructive and should be used with caution. Do you wish to continue?')){
$this->info($user_count.'. '.$user->username.' ('.$user->id.') was deleted at '.$user->deleted_at.' and has '.$user_logs->count().' checkouts associated.');
// if we got a newline at the end of this, then the _next_ read is the beginning of a line
if($buffer[strlen($buffer)-1]==="\n"){
$this->reading_beginning_of_line=true;
}else{
$this->reading_beginning_of_line=false;
}
}
return$bytes_read;
}
}
classRestoreFromBackupextendsCommand
{
/**
* The name and signature of the console command.
*
* @var string
*/
// FIXME - , stripping prefixes and nonstandard SQL statements. Without --prefix, guess and return the correct prefix to strip
protected$signature='snipeit:restore
{--force : Skip the danger prompt; assuming you enter "y"}
{filename : The zip file to be migrated}
{--no-progress : Don\'t show a progress bar}
{--sanitize-guess-prefix : Guess and output the table-prefix needed to "sanitize" the SQL}
{--sanitize-with-prefix= : "Sanitize" the SQL, using the passed-in table prefix (can be learned from --sanitize-guess-prefix). Pass as just \'--sanitize-with-prefix=\' to use no prefix}
{--sql-stdout-only : ONLY "Sanitize" the SQL and print it to stdout - useful for debugging - probably requires --sanitize-with-prefix= }';
/**
* The console command description.
*
* @var string
*/
protected$description='Restore from a previously created Snipe-IT backup file';
/**
* Create a new command instance.
*
* @return void
*/
publicfunction__construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
publicfunctionhandle()
{
$dir=getcwd();
if($dir!=base_path()){// usually only the case when running via webserver, not via command-line
Log::debug("Current working directory is: $dir, changing directory to: ".base_path());
chdir(base_path());// TODO - is this *safe* to change on a running script?!
}
//
$filename=$this->argument('filename');
if(!$filename){
return$this->error('Missing required filename');
}
if(!$this->option('force')&&!$this->option('sanitize-guess-prefix')&&!$this->confirm('Are you sure you wish to restore from the given backup file? This can lead to MASSIVE DATA LOSS!')){
return$this->error('Data loss not confirmed');
}
if(config('database.default')!='mysql'){
return$this->error('DB_CONNECTION must be MySQL in order to perform a restore. Detected: '.config('database.default'));
}
$za=newZipArchive();
$errcode=$za->open($filename/* , ZipArchive::RDONLY */);// that constant only exists in PHP 7.4 and higher
//print("INTERESTING - last_pos is $last_pos when searching $raw_path for $dir - last_pos+strlen(\$dir) is: ".($last_pos+strlen($dir))." and strlen(\$rawpath) is: ".strlen($raw_path)."\n");
//print("We would copy $raw_path to $dir.\n"); //FIXME append to a path?
$this->warn('Potentially unsafe file '.$raw_path.' is being skipped');
$boring_files[]=$raw_path;
continue2;
}
//print("INTERESTING - last_pos is $last_pos when searching $raw_path for $file - last_pos+strlen(\$file) is: ".($last_pos+strlen($file))." and strlen(\$rawpath) is: ".strlen($raw_path)."\n");
//no wildcards found in $file, process 'normally'
if($last_pos+strlen($file)==strlen($raw_path)||$has_wildcard){//again, no trailing slash. or this is a wildcard and we just take it.
// print("FOUND THE EXACT FILE: $file AT: $raw_path!!!\n"); //we *do* care about this, though.
// TODO notes: we are stealing the dump_binary_path (which *probably* also has your copy of the mysql binary in it. But it might not, so we might need to extend this)
// we unilaterally prepend a slash to the `mysql` command. This might mean your path could look like /blah/blah/blah//mysql - which should be fine. But maybe in some environments it isn't?
return$this->error("mysql tool at: '$mysql_binary' does not exist, cannot restore. Please edit DB_DUMP_PATH in your .env to point to a directory that contains the mysqldump and mysql binary");
}
$proc_results=proc_open("$mysql_binary -h ".escapeshellarg(config('database.connections.mysql.host')).' -u '.escapeshellarg(config('database.connections.mysql.username')).' '.escapeshellarg(config('database.connections.mysql.database')),// yanked -p since we pass via ENV
$env_vars);// this is not super-duper awesome-secure, but definitely more secure than showing it on the CLI, or dropping temporary files with passwords in them.
if($proc_results===false){
return$this->error('Unable to invoke mysql via CLI');
}
// I'm not sure about these?
stream_set_blocking($pipes[1],false);// use non-blocking reads for stdout
stream_set_blocking($pipes[2],false);// use non-blocking reads for stderr
// $this->info("Stdout says? ".fgets($pipes[1])); //FIXME: I think we might need to set non-blocking mode to use this properly?
$this->error("Specify only one of --emergency, or an app key value, in order to rotate keys");
return1;
}
if($this->option('emergency')){
$msg="\n****************************************************\nTHIS WILL MODIFY YOUR APP_KEY AND DE-CRYPT YOUR ENCRYPTED CUSTOM FIELDS AND \nRE-ENCRYPT THEM WITH A NEWLY GENERATED KEY. \n\nThere is NO undo. \n\nMake SURE you have a database backup and a backup of your .env generated BEFORE running this command. \n\nIf you do not save the newly generated APP_KEY to your .env in this process, \nyour encrypted data will no longer be decryptable. \n\nAre you SURE you wish to continue, and have confirmed you have a database backup and an .env backup? ";
}else{
$msg="\n****************************************************\nTHIS WILL DE-CRYPT YOUR ENCRYPTED CUSTOM FIELDS AND RE-ENCRYPT THEM WITH YOUR\nAPP_KEY.\n\nThere is NO undo. \n\nMake SURE you have a database backup BEFORE running this command. \n\nAre you SURE you wish to continue, and have confirmed you have a database backup? ";
}
if($this->option('force')||$this->confirm($msg)){
// Get the existing app_key and ciphers
// We put them in a variable since we clear the cache partway through here.
if($this->option('emergency')){
$old_app_key=config('app.key');
$cipher=config('app.cipher');
// Generate a new one
Artisan::call('key:generate',['--show'=>true]);
$new_app_key=trim(Artisan::output());
// Clear the config cache
Artisan::call('config:clear');
// Write the new app key to the .env file
$this->writeNewEnvironmentFileWith($new_app_key);
}elseif($this->argument('previous_key')){
$old_app_key=$this->argument('previous_key');
$cipher=config('app.cipher');// just a guess?
$new_app_key=config('app.key');
}
$this->warn('Your app cipher is: '.$cipher);
$this->warn('Your old APP_KEY is: '.$old_app_key);
$this->warn('Your new APP_KEY is: '.$new_app_key);
// Manually create an old encrypter instance using the old app key
// and also create a new encrypter instance so we can re-crypt the field
Log::debug('Asset: '.$asset->id.' has '.$asset->checkin_counter.' checkins, '.$asset->checkout_counter.' checkouts, and '.$asset->requests_counter.' requests');
}
}else{
$this->info('No assets to sync');
}
});
$bar->finish();
$time_elapsed_secs=microtime(true)-$start;
$this->info("\nSync of ".$assets_count.' assets executed in '.$time_elapsed_secs.' seconds');
protected$description='This utility will sync the location_id of assets based on current state. It should not normally be needed, but is a safeguard in case we missed something in the Great Migration when flattening the assets to location relationship.';
$output['info'][]='There are '.$rtd_assets->count().' unassigned assets.';
foreach($rtd_assetsas$rtd_asset){
$output['info'][]='Setting Unassigned Asset '.$rtd_asset->id.' ('.$rtd_asset->asset_tag.') to location: '.$rtd_asset->rtd_location_id.' because their default location is: '.$rtd_asset->rtd_location_id;
$output['info'][]='Setting User Asset '.$assigned_user_asset->id.' ('.$assigned_user_asset->asset_tag.') to '.$assigned_user_asset->assignedTo->userLoc->name.' which is id: '.$new_location;
}else{
$output['warn'][]='Asset '.$assigned_user_asset->id.' ('.$assigned_user_asset->asset_tag.') still has no location! ';
$output['info'][]='Setting Location Assigned asset '.$assigned_location_asset->id.' ('.$assigned_location_asset->asset_tag.') that is checked out to '.$assigned_location_asset->assignedTo->name.' (#'.$assigned_location_asset->assignedTo->id.') to location: '.$assigned_location_asset->assetLoc()->id;
$assigned_location_asset->unsetEventDispatcher();
$assigned_location_asset->save();
}else{
$output['warn'][]='Asset '.$assigned_location_asset->id.' ('.$assigned_location_asset->asset_tag.') did not return a valid associated location - perhaps it was deleted?';
protected$description='This command should be used to convert an unencrypted custom field into a custom field and encrypt the associated data in the assets table for that column.';
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.