Compare commits

...

93 Commits

Author SHA1 Message Date
Brady Wetherington de6f3f866f Attempt to solve LDAP sync overriding administrator choices (#8742) 2020-11-17 00:11:00 -08:00
snipe 8444a60bc9 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2020-11-16 23:57:23 -08:00
snipe 3237411b5d Bumped version 2020-11-16 23:57:17 -08:00
snipe 5ba1659563 Removed dupe date 2020-11-16 23:56:48 -08:00
snipe 6e068ec339 Add @chamilton-ccn as a contributor 2020-11-16 22:15:59 -08:00
Charles Hamilton 4fd666716f Fixed #8482 - Ubuntu version (#8598)
* Bash cannot compare floating point numbers natively. This modification addresses issue #8482 and retains the intended function of the previous code.

* Bash cannot compare floating point numbers natively. This modification addresses issue #8482 and retains the intended function of the previous code.

Co-authored-by: Charles Hamilton <chamilton@dyercpa.com>
2020-11-16 22:15:40 -08:00
snipe 6eb860ca24 Swapped travis build badge for chipper build badge 2020-11-16 21:49:57 -08:00
snipe 903698a7b0 Merge remote-tracking branch 'origin/develop' 2020-11-16 21:35:26 -08:00
snipe 513faf2db5 Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2020-11-16 21:34:59 -08:00
snipe 9e46bc6c28 Fix for spanish translation 2020-11-16 21:34:47 -08:00
NMC 402fecd408 Fixed #7850: allow xlsx file. (#8386)
Thanks!
2020-11-16 21:32:15 -08:00
Brady Wetherington a97b15ec96 Re-add LDAP "test login" feature to LDAP settings (helps with #8751) (#8757)
* Start work on re-adding back the "Test LDAP logins" feature to develop

* Add back-end method to allow LDAP test users to try to log in.
2020-11-16 21:23:08 -08:00
snipe 8504c9e8b9 Added phplint to dev in composer 2020-11-16 19:08:04 -08:00
snipe 4ebfd6624c Merge remote-tracking branch 'origin/develop' 2020-11-16 17:24:57 -08:00
snipe fbaf6e2494 Fixed #8747 - upload path for uploaded images 2020-11-16 16:39:02 -08:00
snipe 612d3f9b2a Merge remote-tracking branch 'origin/develop' 2020-11-16 13:32:53 -08:00
Brady Wetherington 6e4ab5cd96 Fix for #8746 - missing comma in a translation file (#8756) 2020-11-16 13:29:57 -08:00
snipe 849966d2c5 Merge remote-tracking branch 'origin/develop' 2020-11-13 16:48:58 -08:00
snipe 1f5bcf2475 Added option to download activity report 2020-11-13 16:25:05 -08:00
snipe 58c476195b Bumped hash 2020-11-13 14:14:27 -08:00
snipe dcd98a7bf1 Bumped hash 2020-11-13 14:13:44 -08:00
snipe 686ab681e5 Removed duplicate badge 2020-11-13 13:54:27 -08:00
snipe 052f8e2c42 Addresses - not fixes - #8740
More investigation here is needed
2020-11-13 12:34:42 -08:00
snipe e9578ba8a1 Fixed #8737 - incorrect validation string for components update 2020-11-13 12:09:48 -08:00
snipe 0c0de5e351 Added clarity in language as to what the activated flag does on LDAP screens 2020-11-13 11:52:34 -08:00
snipe 10cadecd14 Moved a few of the user edit fields to make more sense (optional stuff further down) 2020-11-13 11:52:09 -08:00
snipe 644084658a Merge remote-tracking branch 'origin/develop' 2020-11-13 04:30:03 -08:00
snipe 07936ea901 Changed asset name to asset tag in maintenances 2020-11-13 03:38:31 -08:00
snipe 08784f9cc5 Make expected_checkin fillable 2020-11-13 03:22:26 -08:00
snipe a87e615e7f Fixed #8544 - escaping on maintenance notes 2020-11-12 23:55:16 -08:00
snipe df5cc7525e Merge remote-tracking branch 'origin/develop' 2020-11-12 23:39:09 -08:00
snipe 75b8c3455c Fixed #8609 - custom fieldsets not draggable anymore (regression) 2020-11-12 23:38:12 -08:00
snipe 81d38a0ded Fixed #8733 - typo in unaccepted assets report 2020-11-12 23:26:05 -08:00
snipe b2a8af2fa9 Fixed #8647 - Added additional help info on importer page 2020-11-12 22:46:51 -08:00
snipe 9d2363741e Improved 2FA reset layout 2020-11-12 22:25:07 -08:00
snipe fc6a33ad38 Added some LDAP debugging - related to #8670 2020-11-12 22:19:16 -08:00
snipe 896ce3456e Possible fix for #8670 - LDAP users deactivated on login 2020-11-12 22:18:49 -08:00
snipe 9db191f0b2 Fixes for #8732 - Flysystem paths, migrator script 2020-11-12 21:46:06 -08:00
snipe c7d752fb65 Added S3 url into CSP 2020-11-12 19:50:01 -08:00
snipe 5026177161 Added link to bricelabelle/snipe-it-bulkedit 2020-11-12 18:55:02 -08:00
snipe d2805442ad Updated Laravel version 2020-11-12 18:54:49 -08:00
snipe 7765c87387 Fixed #8669 - Allow application/xml in SAML upload in Safari 2020-11-12 18:47:19 -08:00
snipe 6dccf399a5 Fixed offset issue for #8732 2020-11-12 15:51:31 -08:00
snipe 7432e3fb2d Add @dampfklon as a contributor 2020-11-12 15:28:29 -08:00
snipe caeea9f530 Merge remote-tracking branch 'origin/develop' 2020-11-12 15:27:49 -08:00
snipe 0fdfd013e7 Fixed #8715 - wrong API url for unaccepted assets 2020-11-12 15:26:50 -08:00
snipe d537fc5c32 Added linebreak to console confirmation 2020-11-12 15:21:00 -08:00
snipe 9164dda64f Added artisan command to purge logins 2020-11-12 15:20:15 -08:00
snipe 5ea9c31eab Removed debugging 2020-11-12 15:14:56 -08:00
snipe c8572deb5c Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2020-11-12 15:13:50 -08:00
snipe 57d25ebb20 Fixed #8719 - use same convention for file names on licenses as we do on assets 2020-11-12 15:13:45 -08:00
Dampfklon be114176a2 Refactor Expected Checkin Notification into markdown and enable translation (#8236)
Co-authored-by: snipe <snipe@snipe.net>
2020-11-12 15:09:40 -08:00
Dampfklon 1f9b04405c Enable translation of accept-asset page (#8237) 2020-11-12 15:07:45 -08:00
Dampfklon 4ef11c463c Enable translations of checkin notifications (#8235) 2020-11-12 15:05:57 -08:00
Dampfklon 5fb31a5a3f Use translated salutation from other notifications (#8234) 2020-11-12 15:05:22 -08:00
snipe f0e04ab9e4 Fixed #8726 - disallow archived assets to be checked out 2020-11-12 15:01:13 -08:00
snipe 8a65081768 Possible fix for #8732 2020-11-12 14:47:38 -08:00
snipe c451fde466 Fixed exception namespace 2020-11-12 14:27:59 -08:00
snipe 5098d69c05 Fixed stupid auto-indent 2020-11-12 14:20:54 -08:00
snipe b12de13041 Fixed markdown in expiring licenses alert 2020-11-12 14:10:45 -08:00
snipe 72126f7d44 Removed duplicate extension checks 2020-11-12 13:24:53 -08:00
snipe df000ce32f Merge branch 'develop' of https://github.com/snipe/snipe-it into develop 2020-11-12 13:22:54 -08:00
snipe 6a2e21f502 More in depth error reporting on mail test failure 2020-11-12 13:22:49 -08:00
Brady Wetherington 5ad6234584 Merge pull request #8730 from winstan/patch-1
Fixed #8699: exclude blank LDAP attributes from searches
2020-11-12 11:26:19 -08:00
Anthony Winstanley cc79bb1449 Exclude blank LDAP attributes
Asking for '' attributes is an error for some LDAP servers.
2020-11-12 09:34:28 -08:00
snipe c8d588871c Merge remote-tracking branch 'origin/develop' 2020-11-11 14:47:30 -08:00
snipe 8890372a69 Production assets with dark skin fixes 2020-11-11 14:47:13 -08:00
Godfrey Martinez 80f2d749a2 Corrected css to the bootstrap popovers for all dark mode skins (#8714)
* added css to the bootstrap popovers in dark blue

* corrects the tool tips css for all dark mode skins other than dark blue
2020-11-11 14:11:39 -08:00
snipe 7f7064c835 Make last_checkout fillable 2020-11-11 13:30:11 -08:00
snipe 31d0b4a46c Merge remote-tracking branch 'origin/develop' 2020-11-10 12:39:55 -08:00
snipe 5759d4819e Improved upgrade.php script to check for PHP extensions (#8712)
* Troubleshooting gd detection :(

* Welp, that didn’t work.

* Improvements to the update script that will make it easier to maintain

* Improved spacing

* Nicer intro

* Sorry for all the commits - I have to push in order to test :(

* More display improvements

* Phrasing!

* More formatting

* Removed extra line break

* Few more formatting changes

* Remove the config caching - it’s too confusing for users

* Added comments

* Temp required extension in the array so I can show output :)

* Added ascii x

* removed extra line break

* Made error message clearer

* Remove extra line

* Removed farts

* Changed phrasing for PHP upgrade warning

* Small tweaks per PR review

* Some spacing fixes

* Added confirmation of the either/ors

* Minor formatting tweaks

* Fixed weird indenting?

* Fixed missing $unused_file variable
2020-11-10 12:39:10 -08:00
snipe c49788dd9f Fixed weird linebreaks in upgrade.php 2020-11-10 09:08:13 -08:00
snipe 3641a6d451 Additional extension checking 2020-11-10 09:06:44 -08:00
snipe 8c79070cd9 Added some extension checking for upgrade.php 2020-11-10 08:47:35 -08:00
snipe f8563bec94 Added some extension checking for upgrade.php 2020-11-10 08:46:19 -08:00
snipe fd7c0bc5fb Use newer blade facade for requests 2020-11-10 08:36:18 -08:00
snipe 7d708572fc Slightly nicer formatting for query 2020-11-10 07:43:54 -08:00
snipe ea68ff1284 Sigh. Typo 2020-11-10 06:51:40 -08:00
snipe 66ccf4da03 Merge remote-tracking branch 'origin/develop' 2020-11-10 06:44:10 -08:00
snipe 0b4a13156f Added more detail and dryrun to assigned_to vs log checker script 2020-11-10 06:43:36 -08:00
snipe a8a3962008 Merge remote-tracking branch 'origin/develop' 2020-11-10 06:17:04 -08:00
snipe e110a7b15e Experimental script to find mismatched IDs based on logs 2020-11-10 06:16:15 -08:00
snipe 30d68309a9 Add ability to checkout an asset if the user it’s assigned_to isn’t valid
This would only happen if a merge-users went wonky
2020-11-10 05:06:47 -08:00
snipe 547d1a5a93 Merge remote-tracking branch 'origin/develop' 2020-11-10 04:43:20 -08:00
snipe adf64361e8 Updated most recent translations 2020-11-10 04:43:02 -08:00
snipe a43fb060f4 Throw an error if the asset cannot be updated in the merge 2020-11-10 04:41:40 -08:00
snipe c607d89817 Merge remote-tracking branch 'origin/develop' 2020-11-10 01:59:18 -08:00
snipe 8c19b11e73 Fixed #8448 - “undefined” when testing email from quickstart 2020-11-10 01:48:18 -08:00
snipe 178ed82dc4 Fixed [ch9336] - Removed time stamp in Depreciation report 2020-11-10 01:13:13 -08:00
snipe 6757df5a2d Added Checkout Date Time to Asset Details Page [ch1418] 2020-11-10 01:02:08 -08:00
snipe 044dfe2620 Fixed [ch945] - Status colors are not displaying correctly in the chart on the dashboard 2020-11-10 00:54:39 -08:00
snipe 9e319e91d6 Merge remote-tracking branch 'origin/develop' 2020-11-09 23:56:33 -08:00
snipe 895a544d4c Fixed [ch15347] - added status in Depreciation Report 2020-11-09 23:56:16 -08:00
169 changed files with 1623 additions and 937 deletions
+18
View File
@@ -1938,6 +1938,24 @@
"contributions": [
"code"
]
},
{
"login": "dampfklon",
"name": "Dampfklon",
"avatar_url": "https://avatars1.githubusercontent.com/u/1733625?v=4",
"profile": "https://github.com/dampfklon",
"contributions": [
"code"
]
},
{
"login": "chamilton-ccn",
"name": "Charles Hamilton",
"avatar_url": "https://avatars2.githubusercontent.com/u/52973156?v=4",
"profile": "https://communityclosing.com",
"contributions": [
"code"
]
}
]
}
-80
View File
@@ -1,80 +0,0 @@
addons:
code_climate:
repo_token:
secure: "C/bUAEpwfZB82dkzI2Nxx3PW5w/BzbKkSyCkp6YjT046jD2/QKvz6ngCFlt3tAWV11TXWFI6D8DzkMmdWOrQl3SGlPZXRD8QOvCiz0HiGMDvlxjAaPaQecGaQZdx/H4m6xTUXRNUVaYmxlMgkkFCWhAp+HZDs0iyOEVamp0Jszg="
hosts:
- localhost
sudo: false
# see http://about.travis-ci.org/docs/user/languages/php/ for more hints
language: php
services:
- mysql
# list any PHP version you want to test against
php:
- 7.2
- 7.3.0
- 7.4
# execute any number of scripts before the test run, custom env's are available as variables
before_script:
- phpenv config-add .github/travis-memory.ini
- phantomjs --webdriver=4444 &
- sleep 4
- mysql -e 'CREATE DATABASE snipeit_unit;'
- mysql -e 'CREATE USER "travis'@'localhost";'
- mysql -e 'GRANT ALL PRIVILEGES ON * . * TO "travis'@'localhost";'
- mysql -e 'FLUSH PRIVILEGES;'
- cp .env.testing-ci .env
- composer self-update
- composer install -n --prefer-source
- chmod -R 777 storage
- php artisan migrate --env=testing-ci --database=mysql --force
- ./vendor/bin/codecept build
- php artisan --env=testing-ci key:generate
- php artisan --env=testing-ci snipeit:travisci-install
- php artisan --env=testing-ci db:seed --database=mysql --force
- php artisan --env=testing-ci snipeit:create-admin --first_name=Alison --last_name=Foobar --email=me@example.com --username=snipe --password=password
- php artisan --env=testing-ci passport:install
- php artisan serve --env=testing-ci --port=8000 --host=localhost &
- sleep 5
- pip install --user codecov
- sleep 5
# omitting "script:" will default to phpunit
# use the $DB env variable to determine the phpunit.xml to use
# script: ./vendor/bin/codecept run --env testing-ci
script:
- ./vendor/bin/codecept run unit
# - ./vendor/bin/codecept run acceptance --env=testing-ci
- ./vendor/bin/codecept run functional --env=functional-travis -g func1
- ./vendor/bin/codecept run functional --env=functional-travis -g func2
- ./vendor/bin/codecept run api --env=functional-travis
after_script:
- vendor/bin/test-reporter
after_success:
- codecov
after_failure:
- cat tests/_output/*.fail.html
- curl http://localhost:8000/login
- cat storage/logs/laravel.log
# configure notifications (email, IRC, campfire etc)
notifications:
email: false
slack:
secure: vv9we1RxB9RsrMbomSdq6D7vz/okobw87pEkgIZjB+hj1QpQ2by90gsPsOa+NgsJEFaEP7e4KlT6SH8kK+zhbmuKaUd3d1//XdcancE22LZXi6tkiB5yuR/Jhhb1LLDqyGJTB4D92hMnnCPiUjpxNA3r437ttNeYRdYIEEP3drA=
webhooks:
urls:
- https://webhooks.gitter.im/e/5e136eb0c1965f3918d0
on_success: change # options: [always|never|change] default: always
on_failure: change # options: [always|never|change] default: always
on_start: false # default: false
+6 -9
View File
@@ -1,13 +1,11 @@
[![Build Status](https://travis-ci.org/snipe/snipe-it.svg?branch=master)](https://travis-ci.org/snipe/snipe-it) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.svg)](https://crowdin.com/project/snipe-it) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/snipe/snipe-it?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/) [![Twitter Follow](https://img.shields.io/twitter/follow/snipeitapp.svg?style=social)](https://twitter.com/snipeitapp) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/553ce52037fc43ea99149785afcfe641)](https://www.codacy.com/app/snipe/snipe-it?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=snipe/snipe-it&amp;utm_campaign=Badge_Grade)
[![All Contributors](https://img.shields.io/badge/all_contributors-189-orange.svg?style=flat-square)](#contributors) [![Open Source Helpers](https://www.codetriage.com/snipe/snipe-it/badges/users.svg)](https://www.codetriage.com/snipe/snipe-it)
[![All Contributors](https://img.shields.io/badge/all_contributors-212-orange.svg?style=flat-square)](#contributors) [![Open Source Helpers](https://www.codetriage.com/snipe/snipe-it/badges/users.svg)](https://www.codetriage.com/snipe/snipe-it)
![Build Status](https://app.chipperci.com/projects/0e5f8979-31eb-4ee6-9abf-050b76ab0383/status/master) [![Crowdin](https://d322cqt584bo4o.cloudfront.net/snipe-it/localized.svg)](https://crowdin.com/project/snipe-it) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/snipe/snipe-it?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Docker Pulls](https://img.shields.io/docker/pulls/snipe/snipe-it.svg)](https://hub.docker.com/r/snipe/snipe-it/) [![Twitter Follow](https://img.shields.io/twitter/follow/snipeitapp.svg?style=social)](https://twitter.com/snipeitapp) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/553ce52037fc43ea99149785afcfe641)](https://www.codacy.com/app/snipe/snipe-it?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=snipe/snipe-it&amp;utm_campaign=Badge_Grade)
[![All Contributors](https://img.shields.io/badge/all_contributors-214-orange.svg?style=flat-square)](#contributors)
## Snipe-IT - Open Source Asset Management System
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 5.5](http://laravel.com).
It is built on [Laravel 6](http://laravel.com).
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/).)
@@ -64,7 +62,8 @@ Since the release of the JSON REST API, several third-party developers have been
- [Snipe-IT plugin for Jira Service Desk (beta)](https://marketplace.atlassian.com/apps/1220379/snipe-it-for-jira-service-desk-beta?hosting=cloud&tab=overview) - for the upcoming Snipe-IT v5 only
- [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.
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. :)
-----
@@ -115,14 +114,12 @@ Thanks goes to all of these wonderful people ([emoji key](https://github.com/ken
| [<img src="https://avatars2.githubusercontent.com/u/982885?v=4" width="110px;"/><br /><sub>Martin Stub</sub>](http://martinstub.dk)<br />[🌍](#translation-stubben "Translation") | [<img src="https://avatars2.githubusercontent.com/u/28959963?v=4" width="110px;"/><br /><sub>Meyer Flavio</sub>](https://github.com/meyerf99)<br />[🌍](#translation-meyerf99 "Translation") | [<img src="https://avatars3.githubusercontent.com/u/796443?v=4" width="110px;"/><br /><sub>Micael Rodrigues</sub>](https://github.com/MicaelRodrigues)<br />[🌍](#translation-MicaelRodrigues "Translation") | [<img src="https://avatars0.githubusercontent.com/u/10481331?v=4" width="110px;"/><br /><sub>Mikael Rasmussen</sub>](http://rubixy.com/)<br />[🌍](#translation-mikaelssen "Translation") | [<img src="https://avatars1.githubusercontent.com/u/1544552?v=4" width="110px;"/><br /><sub>IxFail</sub>](https://github.com/IxFail)<br />[🌍](#translation-IxFail "Translation") | [<img src="https://avatars3.githubusercontent.com/u/18483118?v=4" width="110px;"/><br /><sub>Mohammed Fota</sub>](http://www.mohammedfota.com)<br />[🌍](#translation-MohammedFota "Translation") | [<img src="https://avatars0.githubusercontent.com/u/227080?v=4" width="110px;"/><br /><sub>Moayad Alserihi</sub>](https://github.com/omego)<br />[🌍](#translation-omego "Translation") |
| [<img src="https://avatars0.githubusercontent.com/u/1680266?v=4" width="110px;"/><br /><sub>saymd</sub>](https://github.com/saymd)<br />[🌍](#translation-saymd "Translation") | [<img src="https://avatars0.githubusercontent.com/u/1826808?v=4" width="110px;"/><br /><sub>Patrik Larsson</sub>](https://nordsken.se)<br />[🌍](#translation-pooot "Translation") | [<img src="https://avatars1.githubusercontent.com/u/20584746?v=4" width="110px;"/><br /><sub>drcryo</sub>](https://github.com/drcryo)<br />[🌍](#translation-drcryo "Translation") | [<img src="https://avatars1.githubusercontent.com/u/19408004?v=4" width="110px;"/><br /><sub>pawel1615</sub>](https://github.com/pawel1615)<br />[🌍](#translation-pawel1615 "Translation") | [<img src="https://avatars2.githubusercontent.com/u/23340468?v=4" width="110px;"/><br /><sub>bodrovics</sub>](https://github.com/bodrovics)<br />[🌍](#translation-bodrovics "Translation") | [<img src="https://avatars0.githubusercontent.com/u/3257654?v=4" width="110px;"/><br /><sub>priatna</sub>](https://github.com/priatna)<br />[🌍](#translation-priatna "Translation") | [<img src="https://avatars1.githubusercontent.com/u/5358374?v=4" width="110px;"/><br /><sub>Fan Jiang</sub>](https://amayume.net)<br />[🌍](#translation-ProfFan "Translation") |
| [<img src="https://avatars1.githubusercontent.com/u/22555451?v=4" width="110px;"/><br /><sub>ragnarcx</sub>](https://github.com/ragnarcx)<br />[🌍](#translation-ragnarcx "Translation") | [<img src="https://avatars2.githubusercontent.com/u/18654582?v=4" width="110px;"/><br /><sub>Rein van Haaren</sub>](http://www.reinvanhaaren.nl/)<br />[🌍](#translation-reinvanhaaren "Translation") | [<img src="https://avatars1.githubusercontent.com/u/386672?v=4" width="110px;"/><br /><sub>Teguh Dwicaksana</sub>](http://dheche.songolimo.net)<br />[🌍](#translation-dheche "Translation") | [<img src="https://avatars2.githubusercontent.com/u/2572552?v=4" width="110px;"/><br /><sub>fraccie</sub>](https://github.com/FRaccie)<br />[🌍](#translation-FRaccie "Translation") | [<img src="https://avatars0.githubusercontent.com/u/35182720?v=4" width="110px;"/><br /><sub>vinzruzell</sub>](https://github.com/vinzruzell)<br />[🌍](#translation-vinzruzell "Translation") | [<img src="https://avatars1.githubusercontent.com/u/7883603?v=4" width="110px;"/><br /><sub>Kevin Austin</sub>](http://kevinaustin.com)<br />[🌍](#translation-vipsystem "Translation") | [<img src="https://avatars3.githubusercontent.com/u/3861828?v=4" width="110px;"/><br /><sub>Wira Sandy</sub>](http://azuraweb.xyz)<br />[🌍](#translation-wira-sandy "Translation") |
| [<img src="https://avatars2.githubusercontent.com/u/8663789?v=4" width="110px;"/><br /><sub>Илья</sub>](https://github.com/GrayHoax)<br />[🌍](#translation-GrayHoax "Translation") | [<img src="https://avatars3.githubusercontent.com/u/30119111?v=4" width="110px;"/><br /><sub>GodUseVPN</sub>](https://github.com/godusevpn)<br />[🌍](#translation-godusevpn "Translation") | [<img src="https://avatars1.githubusercontent.com/u/745576?v=4" width="110px;"/><br /><sub>周周</sub>](https://github.com/EngrZhou)<br />[🌍](#translation-EngrZhou "Translation") | [<img src="https://avatars3.githubusercontent.com/u/1631095?v=4" width="110px;"/><br /><sub>Sam</sub>](https://github.com/takuy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=takuy "Code") | [<img src="https://avatars1.githubusercontent.com/u/264022?v=4" width="110px;"/><br /><sub>Azerothian</sub>](https://www.illisian.com.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azerothian "Code") | [<img src="https://avatars1.githubusercontent.com/u/7632599?v=4" width="110px;"/><br /><sub>Tim Farmer</sub>](https://github.com/timothyfarmer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=timothyfarmer "Code") | [<img src="https://avatars0.githubusercontent.com/u/17459600?v=4" width="110px;"/><br /><sub>Marián Skrip</sub>](https://github.com/mskrip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mskrip "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/47435081?v=4" width="110px;"/><br /><sub>Godfrey Martinez</sub>](https://github.com/Godmartinz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Godmartinz "Code") | [<img src="https://avatars1.githubusercontent.com/u/2075128?v=4" width="110px;"/><br /><sub>bigtreeEdo</sub>](https://github.com/bigtreeEdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bigtreeEdo "Code") | [<img src="https://avatars0.githubusercontent.com/u/5000430?v=4" width="110px;"/><br /><sub>Colin McNeil</sub>](https://colinmcneil.me/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ColinMcNeil "Code") | [<img src="https://avatars0.githubusercontent.com/u/421625?v=4" width="110px;"/><br /><sub>JoKneeMo</sub>](https://github.com/JoKneeMo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JoKneeMo "Code") | [<img src="https://avatars0.githubusercontent.com/u/54849013?v=4" width="110px;"/><br /><sub>Joshi</sub>](http://www.redbridge.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joshi-redbridge "Code") | [<img src="https://avatars2.githubusercontent.com/u/15731458?v=4" width="110px;"/><br /><sub>Anthony Burns</sub>](https://github.com/anthonypburns)<br />[💻](https://github.com/snipe/snipe-it/commits?author=anthonypburns "Code") | [<img src="https://avatars2.githubusercontent.com/u/1972329?v=4" width="110px;"/><br /><sub>Alexander Chibrikin</sub>](http://phpprofi.ru/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=alek13 "Code") |
| [<img src="https://avatars2.githubusercontent.com/u/8663789?v=4" width="110px;"/><br /><sub>Илья</sub>](https://github.com/GrayHoax)<br />[🌍](#translation-GrayHoax "Translation") | [<img src="https://avatars3.githubusercontent.com/u/30119111?v=4" width="110px;"/><br /><sub>GodUseVPN</sub>](https://github.com/godusevpn)<br />[🌍](#translation-godusevpn "Translation") | [<img src="https://avatars1.githubusercontent.com/u/745576?v=4" width="110px;"/><br /><sub>周周</sub>](https://github.com/EngrZhou)<br />[🌍](#translation-EngrZhou "Translation") | [<img src="https://avatars3.githubusercontent.com/u/1631095?v=4" width="110px;"/><br /><sub>Sam</sub>](https://github.com/takuy)<br />[💻](https://github.com/snipe/snipe-it/commits?author=takuy "Code") | [<img src="https://avatars1.githubusercontent.com/u/264022?v=4" width="110px;"/><br /><sub>Azerothian</sub>](https://www.illisian.com.au)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Azerothian "Code") | [<img src="https://avatars1.githubusercontent.com/u/4930051?v=4" width="110px;"/><br /><sub>Wes Hulette</sub>](http://macfoo.wordpress.com/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jwhulette "Code") | [<img src="https://avatars0.githubusercontent.com/u/8134591?v=4" width="110px;"/><br /><sub>patrict</sub>](https://github.com/patrict)<br />[💻](https://github.com/snipe/snipe-it/commits?author=patrict "Code") |
| [<img src="https://avatars3.githubusercontent.com/u/2611616?v=4" width="110px;"/><br /><sub>Dmitriy Minaev</sub>](https://github.com/VELIKII-DIVAN)<br />[💻](https://github.com/snipe/snipe-it/commits?author=VELIKII-DIVAN "Code") | [<img src="https://avatars0.githubusercontent.com/u/5132245?v=4" width="110px;"/><br /><sub>liquidhorse</sub>](https://github.com/liquidhorse)<br />[💻](https://github.com/snipe/snipe-it/commits?author=liquidhorse "Code") | [<img src="https://avatars1.githubusercontent.com/u/183678?v=4" width="110px;"/><br /><sub>Jordi Boggiano</sub>](https://seld.be/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Seldaek "Code") | [<img src="https://avatars0.githubusercontent.com/u/653557?v=4" width="110px;"/><br /><sub>Ivan Nieto</sub>](https://github.com/inietov)<br />[💻](https://github.com/snipe/snipe-it/commits?author=inietov "Code") | [<img src="https://avatars2.githubusercontent.com/u/6764151?v=4" width="110px;"/><br /><sub>Ben RUBSON</sub>](https://github.com/benrubson)<br />[💻](https://github.com/snipe/snipe-it/commits?author=benrubson "Code") | [<img src="https://avatars2.githubusercontent.com/u/8554558?v=4" width="110px;"/><br /><sub>NMathar</sub>](https://github.com/NMathar)<br />[💻](https://github.com/snipe/snipe-it/commits?author=NMathar "Code") | [<img src="https://avatars1.githubusercontent.com/u/139566?v=4" width="110px;"/><br /><sub>Steffen</sub>](https://github.com/smb)<br />[💻](https://github.com/snipe/snipe-it/commits?author=smb "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/6609453?v=4" width="110px;"/><br /><sub>Sxderp</sub>](https://github.com/Sxderp)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Sxderp "Code") | [<img src="https://avatars1.githubusercontent.com/u/4807843?v=4" width="110px;"/><br /><sub>fanta8897</sub>](https://github.com/fanta8897)<br />[💻](https://github.com/snipe/snipe-it/commits?author=fanta8897 "Code") | [<img src="https://avatars2.githubusercontent.com/u/2576509?v=4" width="110px;"/><br /><sub>Andrey Bolonin</sub>](https://andreybolonin.com/phpconsulting/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=andreybolonin "Code") | [<img src="https://avatars3.githubusercontent.com/u/2173307?v=4" width="110px;"/><br /><sub>shinayoshi</sub>](http://www.shinayoshi.net/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=shinayoshi "Code") | [<img src="https://avatars3.githubusercontent.com/u/2130159?v=4" width="110px;"/><br /><sub>Hubert</sub>](https://github.com/reuser)<br />[💻](https://github.com/snipe/snipe-it/commits?author=reuser "Code") | [<img src="https://avatars0.githubusercontent.com/u/6865789?v=4" width="110px;"/><br /><sub>KeenRivals</sub>](https://brashear.me)<br />[💻](https://github.com/snipe/snipe-it/commits?author=KeenRivals "Code") | [<img src="https://avatars3.githubusercontent.com/u/2902513?v=4" width="110px;"/><br /><sub>omyno</sub>](https://github.com/omyno)<br />[💻](https://github.com/snipe/snipe-it/commits?author=omyno "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/6271335?v=4" width="110px;"/><br /><sub>Evgeny</sub>](https://github.com/jackka)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jackka "Code") | [<img src="https://avatars2.githubusercontent.com/u/1169963?v=4" width="110px;"/><br /><sub>Colin Campbell</sub>](https://digitalist.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=colin-campbell "Code") | [<img src="https://avatars3.githubusercontent.com/u/2872098?v=4" width="110px;"/><br /><sub>Ľubomír Kučera</sub>](https://github.com/lubo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=lubo "Code") | [<img src="https://avatars3.githubusercontent.com/u/570639?v=4" width="110px;"/><br /><sub>Martin Meredith</sub>](https://www.sourceguru.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Mezzle "Code") | [<img src="https://avatars1.githubusercontent.com/u/7632599?v=4" width="110px;"/><br /><sub>Tim Farmer</sub>](https://github.com/timothyfarmer)<br />[💻](https://github.com/snipe/snipe-it/commits?author=timothyfarmer "Code") | [<img src="https://avatars0.githubusercontent.com/u/17459600?v=4" width="110px;"/><br /><sub>Marián Skrip</sub>](https://github.com/mskrip)<br />[💻](https://github.com/snipe/snipe-it/commits?author=mskrip "Code") | [<img src="https://avatars2.githubusercontent.com/u/47435081?v=4" width="110px;"/><br /><sub>Godfrey Martinez</sub>](https://github.com/Godmartinz)<br />[💻](https://github.com/snipe/snipe-it/commits?author=Godmartinz "Code") |
| [<img src="https://avatars1.githubusercontent.com/u/2075128?v=4" width="110px;"/><br /><sub>bigtreeEdo</sub>](https://github.com/bigtreeEdo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=bigtreeEdo "Code") | [<img src="https://avatars0.githubusercontent.com/u/5000430?v=4" width="110px;"/><br /><sub>Colin McNeil</sub>](https://colinmcneil.me/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=ColinMcNeil "Code") | [<img src="https://avatars0.githubusercontent.com/u/421625?v=4" width="110px;"/><br /><sub>JoKneeMo</sub>](https://github.com/JoKneeMo)<br />[💻](https://github.com/snipe/snipe-it/commits?author=JoKneeMo "Code") | [<img src="https://avatars0.githubusercontent.com/u/54849013?v=4" width="110px;"/><br /><sub>Joshi</sub>](http://www.redbridge.se)<br />[💻](https://github.com/snipe/snipe-it/commits?author=joshi-redbridge "Code") | [<img src="https://avatars2.githubusercontent.com/u/15731458?v=4" width="110px;"/><br /><sub>Anthony Burns</sub>](https://github.com/anthonypburns)<br />[💻](https://github.com/snipe/snipe-it/commits?author=anthonypburns "Code") | [<img src="https://avatars1.githubusercontent.com/u/63399474?v=4" width="110px;"/><br /><sub>johnson-yi</sub>](https://github.com/johnson-yi)<br />[💻](https://github.com/snipe/snipe-it/commits?author=johnson-yi "Code") | [<img src="https://avatars1.githubusercontent.com/u/1862720?v=4" width="110px;"/><br /><sub>Sanjay Govind</sub>](https://tangentmc.net)<br />[💻](https://github.com/snipe/snipe-it/commits?author=sanjay900 "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/1255375?v=4" width="110px;"/><br /><sub>Peter Upfold</sub>](https://peter.upfold.org.uk/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterUpfold "Code") | [<img src="https://avatars2.githubusercontent.com/u/961717?v=4" width="110px;"/><br /><sub>Jared Biel</sub>](https://github.com/jbiel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbiel "Code") |
| [<img src="https://avatars0.githubusercontent.com/u/1255375?v=4" width="110px;"/><br /><sub>Peter Upfold</sub>](https://peter.upfold.org.uk/)<br />[💻](https://github.com/snipe/snipe-it/commits?author=PeterUpfold "Code") | [<img src="https://avatars2.githubusercontent.com/u/961717?v=4" width="110px;"/><br /><sub>Jared Biel</sub>](https://github.com/jbiel)<br />[💻](https://github.com/snipe/snipe-it/commits?author=jbiel "Code") | [<img src="https://avatars1.githubusercontent.com/u/1733625?v=4" width="110px;"/><br /><sub>Dampfklon</sub>](https://github.com/dampfklon)<br />[💻](https://github.com/snipe/snipe-it/commits?author=dampfklon "Code") | [<img src="https://avatars2.githubusercontent.com/u/52973156?v=4" width="110px;"/><br /><sub>Charles Hamilton</sub>](https://communityclosing.com)<br />[💻](https://github.com/snipe/snipe-it/commits?author=chamilton-ccn "Code") |
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind welcome!
@@ -0,0 +1,105 @@
<?php
namespace App\Console\Commands;
use App\Models\Actionlog;
use App\Models\Asset;
use Illuminate\Console\Command;
class FixMismatchedAssetsAndLogs extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:fix-assets-and-logs {--dryrun : Run the sync process but don\'t update the database}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'This script attempts to check the log table and check that the assets.assigned_to matches the last checkout.';
/**
* Is dry-run?
*
* @var bool
*/
private $dryrun = false;
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
if ($this->option('dryrun')) {
$this->dryrun = true;
}
if ($this->dryrun) {
$this->info('This is a DRY RUN - no changes will be saved.' );
}
$mismatch_count = 0;
$assets = Asset::whereNotNull('assigned_to')
->where('assigned_type', '=', 'App\\Models\\User')
->orderBy('id', 'ASC')->get();
foreach ($assets as $asset) {
// get the last checkout of the asset
if ($checkout_log = Actionlog::where('target_type', '=', 'App\\Models\\User')
->where('action_type', '=', 'checkout')
->where('item_id', '=', $asset->id)
->orderBy('created_at', 'DESC')
->first()) {
// Now check for a subsequent checkin log - we want to ignore those
if (!$checkin_log = Actionlog::where('target_type', '=', 'App\\Models\\User')
->where('action_type', '=', 'checkin from')
->where('item_id', '=', $asset->id)
->whereDate('created_at', '>', $checkout_log->created_at)
->orderBy('created_at', 'DESC')
->first()) {
//print_r($asset);
if ($checkout_log->target_id != $asset->assigned_to) {
$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 );
if (!$this->dryrun) {
$asset->assigned_to = $checkout_log->target_id;
if ($asset->save()) {
$this->info('Asset record updated.');
} else {
$this->error('Error updating asset: '.$asset->getErrors());
}
}
$mismatch_count++;
}
} else {
//$this->info('Asset ID '.$asset->id.': There is a checkin '.$checkin_log->created_at.' after this checkout '.$checkout_log->created_at);
}
}
}
$this->info($mismatch_count.' mismatched assets.');
}
}
@@ -54,7 +54,10 @@ class MergeUsersByUsername extends Command
foreach ($bad_user->assets as $asset) {
$this->info( 'Updating asset '.$asset->asset_tag.' '.$asset->id.' to user '.$user->id);
$asset->assigned_to = $user->id;
$asset->save();
if (!$asset->save()) {
$this->error( 'Could not update assigned_to field on asset '.$asset->asset_tag.' '.$asset->id.' to user '.$user->id);
$this->error( 'Error saving: '.$asset->getErrors());
}
}
// Walk the list of licenses
+24 -24
View File
@@ -47,33 +47,33 @@ class MoveUploadsToNewDisk extends Command
}
$delete_local = $this->argument('delete_local');
$public_uploads['accessories'] = glob('storage/app/public/accessories'."/*.*");
$public_uploads['assets'] = glob('storage/app/public/assets'."/*.*");
$public_uploads['avatars'] = glob('storage/app/public/avatars'."/*.*");
$public_uploads['categories'] = glob('storage/app/public/categories'."/*.*");
$public_uploads['companies'] = glob('storage/app/public/companies'."/*.*");
$public_uploads['components'] = glob('storage/app/public/components'."/*.*");
$public_uploads['consumables'] = glob('storage/app/public/consumables'."/*.*");
$public_uploads['departments'] = glob('storage/app/public/departments'."/*.*");
$public_uploads['locations'] = glob('storage/app/public/locations'."/*.*");
$public_uploads['manufacturers'] = glob('storage/app/public/manufacturers'."/*.*");
$public_uploads['suppliers'] = glob('storage/app/public/suppliers'."/*.*");
$public_uploads['assetmodels'] = glob('storage/app/public/models'."/*.*");
$public_uploads['accessories'] = glob('public/accessories'."/*.*");
$public_uploads['assets'] = glob('public/assets'."/*.*");
$public_uploads['avatars'] = glob('public/avatars'."/*.*");
$public_uploads['categories'] = glob('public/categories'."/*.*");
$public_uploads['companies'] = glob('public/companies'."/*.*");
$public_uploads['components'] = glob('public/components'."/*.*");
$public_uploads['consumables'] = glob('public/consumables'."/*.*");
$public_uploads['departments'] = glob('public/departments'."/*.*");
$public_uploads['locations'] = glob('public/locations'."/*.*");
$public_uploads['manufacturers'] = glob('public/manufacturers'."/*.*");
$public_uploads['suppliers'] = glob('public/suppliers'."/*.*");
$public_uploads['assetmodels'] = glob('public/models'."/*.*");
// iterate files
foreach($public_uploads as $public_type => $public_upload)
{
$type_count = 0;
$this->info("\nThere are ".count($public_upload).' PUBLIC '.$public_type.' files.');
$this->info("- There are ".count($public_upload).' PUBLIC '.$public_type.' files.');
for ($i = 0; $i < count($public_upload); $i++) {
$type_count++;
$filename = basename($public_upload[$i]);
try {
Storage::disk('public')->put($public_type.'/'.$filename, file_get_contents($public_upload[$i]));
$new_url = Storage::disk('public')->url($public_type.'/'.$filename, $filename);
Storage::disk('public')->put('uploads/'.public_type.'/'.$filename, file_get_contents($public_upload[$i]));
$new_url = Storage::disk('public')->url('uploads/'.$public_type.'/'.$filename, $filename);
$this->info($type_count.'. PUBLIC: '.$filename.' was copied to '.$new_url);
} catch (\Exception $e) {
\Log::debug($e);
@@ -84,15 +84,16 @@ class MoveUploadsToNewDisk extends Command
}
$logos = glob('public/uploads'."/setting*.*");
$this->info("\nThere are ".count($logos).' files that might be logos.');
$logos = glob("public/uploads/setting*.*");
$this->info("- There are ".count($logos).' files that might be logos.');
$type_count = 0;
for ($l = 0; $l < count($logos); $l++) {
foreach ($logos as $logo) {
$this->info($logo);
$type_count++;
$filename = basename($logos[$l]);
$new_url = Storage::disk('public')->url($logos[$l], file_get_contents($public_upload[$i]));
$this->info($type_count.'. LOGO: '.$filename.' was copied to '.$new_url);
$filename = basename($logo);
Storage::disk('public')->put('uploads/'.$filename, file_get_contents($logo));
$this->info($type_count.'. LOGO: '.$filename.' was copied to '.env('PUBLIC_AWS_URL').'/uploads/'.$filename);
}
$private_uploads['assets'] = glob('storage/private_uploads/assets'."/*.*");
@@ -107,8 +108,7 @@ class MoveUploadsToNewDisk extends Command
foreach($private_uploads as $private_type => $private_upload)
{
$this->info("\nThere are ".count($private_upload).' PRIVATE '.$private_type.' files.');
// $this->info(print_r($private_upload, true));
$this->info("- There are ".count($private_upload).' PRIVATE '.$private_type.' files.');
$type_count = 0;
for ($x = 0; $x < count($private_upload); $x++) {
@@ -116,7 +116,7 @@ class MoveUploadsToNewDisk extends Command
$filename = basename($private_upload[$x]);
try {
Storage::disk('private_uploads')->put($private_type.'/'.$filename, file_get_contents($public_upload[$i]));
Storage::put($private_type.'/'.$filename, file_get_contents($private_upload[$i]));
$new_url = Storage::url($private_type.'/'.$filename, $filename);
$this->info($type_count.'. PRIVATE: '.$filename.' was copied to '.$new_url);
+4 -2
View File
@@ -55,8 +55,10 @@ class ObjectImportCommand extends Command
->setShouldNotify($this->option('send-welcome'))
->setUsernameFormat($this->option('username_format'));
$logFile = $this->option('logfile');
\Log::useFiles($logFile);
// This $logFile/useFiles() bit is currently broken, so commenting it out for now
// $logFile = $this->option('logfile');
// \Log::useFiles($logFile);
$this->comment('======= Importing Items from '.$filename.' =========');
$importer->import();
@@ -0,0 +1,44 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class PurgeLoginAttempts extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'snipeit:purge-logins';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Clears the login_attempts table';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
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]")) {
\DB::statement('delete from login_attempts');
}
}
}
@@ -15,6 +15,7 @@ use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Notification;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
class SettingsController extends Controller
{
@@ -93,6 +94,51 @@ class SettingsController extends Controller
return response()->json($message, 200);
}
public function ldaptestlogin(Request $request, LdapAd $ldap)
{
if (Setting::getSettings()->ldap_enabled!='1') {
\Log::debug('LDAP is not enabled. Cannot test.');
return response()->json(['message' => 'LDAP is not enabled, cannot test.'], 400);
}
$rules = array(
'ldaptest_user' => 'required',
'ldaptest_password' => 'required'
);
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
\Log::debug('LDAP Validation test failed.');
$validation_errors = implode(' ',$validator->errors()->all());
return response()->json(['message' => $validator->errors()->all()], 400);
}
\Log::debug('Preparing to test LDAP login');
try {
DB::beginTransaction(); //this was the easiest way to invoke a full test of an LDAP login without adding new users to the DB (which may not be desired)
// $results = $ldap->ldap->auth()->attempt($request->input('ldaptest_username'), $request->input('ldaptest_password'), true);
// can't do this because that's a protected property.
$results = $ldap->ldapLogin($request->input('ldaptest_user'), $request->input('ldaptest_password')); // this would normally create a user on success (if they didn't already exist), but for the transaction
if($results) {
return response()->json(['message' => 'It worked! '. $request->input('ldaptest_user').' successfully binded to LDAP.'], 200);
} else {
return response()->json(['message' => 'Login Failed. '. $request->input('ldaptest_user').' did not successfully bind to LDAP.'], 400);
}
} catch (\Exception $e) {
\Log::debug('Connection failed');
return response()->json(['message' => $e->getMessage()], 400);
} finally {
DB::rollBack(); // ALWAYS rollback, whether success or failure
}
}
public function slacktest(Request $request)
{
@@ -137,7 +183,7 @@ class SettingsController extends Controller
try {
Notification::send(Setting::first(), new MailTest());
return response()->json(['message' => 'Mail sent to '.config('mail.reply_to.address')], 200);
} catch (Exception $e) {
} catch (\Exception $e) {
return response()->json(['message' => $e->getMessage()], 500);
}
}
@@ -171,20 +171,26 @@ class StatuslabelsController extends Controller
$labels=[];
$points=[];
$colors=[];
$default_color = Helper::chartColors();
$default_color_count = 0;
foreach ($statuslabels as $statuslabel) {
if ($statuslabel->assets_count > 0) {
$labels[]=$statuslabel->name. ' ('.number_format($statuslabel->assets_count).')';
$points[]=$statuslabel->assets_count;
if ($statuslabel->color!='') {
$colors[]=$statuslabel->color;
$colors_array[] = $statuslabel->color;
} else {
$colors_array[] = $default_color[$default_color_count];
$default_color_count++;
}
}
}
$colors_array = array_merge($colors, Helper::chartColors());
$colors_array = array_merge($colors_array, Helper::chartColors());
$result= [
"labels" => $labels,
@@ -100,9 +100,9 @@ class AssetMaintenancesController extends Controller
$assetMaintenance = new AssetMaintenance();
$assetMaintenance->supplier_id = $request->input('supplier_id');
$assetMaintenance->is_warranty = $request->input('is_warranty');
$assetMaintenance->cost = e($request->input('cost'));
$assetMaintenance->notes = e($request->input('notes'));
$asset = Asset::find(e($request->input('asset_id')));
$assetMaintenance->cost = $request->input('cost');
$assetMaintenance->notes = $request->input('notes');
$asset = Asset::find($request->input('asset_id'));
if ((!Company::isCurrentUserHasAccess($asset)) && ($asset!=null)) {
return static::getInsufficientPermissionsRedirect();
@@ -234,6 +234,7 @@ class LoginController extends Controller
if ($user = Auth::user()) {
$user->last_login = \Carbon::now();
$user->activated = 1;
$user->save();
}
// Redirect to the users page
@@ -124,7 +124,7 @@ class ComponentsController extends Controller
}
$min = $component->numCHeckedOut();
$validator = Validator::make($request->all(), [
"qty" => "required|numeric|gt:$min"
"qty" => "required|numeric|min:$min"
]);
if ($validator->fails()) {
@@ -39,7 +39,8 @@ class LicenseFilesController extends Controller
$upload_success = false;
foreach ($request->file('file') as $file) {
$file_name = 'license-'.date('Y-m-d-His').'-'.$file->getBasename().'.'.$file->getClientOriginalExtension();
$file_name = 'license-'.$license->id.'-'.str_random(8).'-'.str_slug(basename($file->getClientOriginalName(), '.'.$file->getClientOriginalExtension())).'.'.$file->getClientOriginalExtension();
$upload_success = $file->storeAs('private_uploads/licenses', $file_name);
@@ -217,6 +217,99 @@ class ReportsController extends Controller
}
/**
* Exports the activity report to CSV
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v5.0.7]
* @return \Illuminate\Http\Response
*/
public function postActivityReport(Request $request)
{
ini_set('max_execution_time', 12000);
$this->authorize('reports.view');
\Debugbar::disable();
$response = new StreamedResponse(function () {
\Log::debug('Starting streamed response');
// Open output stream
$handle = fopen('php://output', 'w');
stream_set_timeout($handle, 2000);
$header = [
trans('general.date'),
trans('general.admin'),
trans('general.action'),
trans('general.type'),
trans('general.item'),
'To',
trans('general.notes'),
'Changed',
];
$executionTime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
\Log::debug('Starting headers: '.$executionTime);
fputcsv($handle, $header);
$executionTime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
\Log::debug('Added headers: '.$executionTime);
$actionlogs = Actionlog::with('item', 'user', 'target','location')
->orderBy('created_at', 'DESC')
->chunk(20, function($actionlogs) use($handle) {
$executionTime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
\Log::debug('Walking results: '.$executionTime);
$count = 0;
foreach ($actionlogs as $actionlog) {
$count++;
$target_name = '';
if ($actionlog->target) {
if ($actionlog->targetType()=='user') {
$target_name = $actionlog->target->getFullNameAttribute();
} else {
$target_name = $actionlog->target->getDisplayNameAttribute();
}
}
$row = [
$actionlog->created_at,
($actionlog->user) ? e($actionlog->user->getFullNameAttribute()) : '',
$actionlog->present()->actionType(),
e($actionlog->itemType()),
($actionlog->itemType()=='user') ? $actionlog->filename : e($actionlog->item->getDisplayNameAttribute()),
$target_name,
($actionlog->note) ? e($actionlog->note): '',
$actionlog->log_meta,
];
fputcsv($handle, $row);
}
});
// Close the output stream
fclose($handle);
$executionTime = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
\Log::debug('-- SCRIPT COMPLETED IN '. $executionTime);
}, 200, [
'Content-Type' => 'text/csv',
'Content-Disposition'
=> 'attachment; filename="activity-report-'.date('Y-m-d-his').'.csv"',
]);
return $response;
}
/**
* Displays license report
*
+1 -1
View File
@@ -106,7 +106,7 @@ class SecurityHeaders
$csp_policy[] = "connect-src 'self'";
$csp_policy[] = "object-src 'none'";
$csp_policy[] = "font-src 'self' data:";
$csp_policy[] = "img-src 'self' data: ".config('app.url')." https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com";
$csp_policy[] = "img-src 'self' data: ".config('app.url')." ".env('PUBLIC_AWS_URL')." https://secure.gravatar.com http://gravatar.com maps.google.com maps.gstatic.com *.googleapis.com";
$csp_policy = join(';', $csp_policy);
$response->headers->set('Content-Security-Policy', $csp_policy);
}
+1 -1
View File
@@ -24,7 +24,7 @@ class AssetFileRequest extends Request
{
$max_file_size = \App\Helpers\Helper::file_upload_max_size();
return [
'file.*' => 'required|mimes:png,gif,jpg,svg,jpeg,doc,docx,pdf,txt,zip,rar,xls,lic,xml,rtf|max:'.$max_file_size,
'file.*' => 'required|mimes:png,gif,jpg,svg,jpeg,doc,docx,pdf,txt,zip,rar,xls,xlsx,lic,xml,rtf|max:'.$max_file_size,
];
}
}
+10 -4
View File
@@ -130,6 +130,8 @@ class Asset extends Depreciable
'supplier_id',
'warranty_months',
'requestable',
'last_checkout',
'expected_checkin',
];
use Searchable;
@@ -232,7 +234,10 @@ class Asset extends Depreciable
}
/**
* Determines if an asset is available for checkout
* Determines if an asset is available for checkout.
* This checks to see if the it's checked out to an invalid (deleted) user
* OR if the assigned_to and deleted_at fields on the asset are empty AND
* that the status is deployable
*
* @author [A. Gianotto] [<snipe@snipe.net>]
* @since [v3.0]
@@ -241,9 +246,10 @@ class Asset extends Depreciable
public function availableForCheckout()
{
if (
(empty($this->assigned_to)) &&
((!$this->assignedTo) && ($this->assetstatus->archived == 0)) ||
((empty($this->assigned_to)) &&
(empty($this->deleted_at)) &&
(($this->assetstatus) && ($this->assetstatus->deployable == 1)))
(($this->assetstatus) && ($this->assetstatus->deployable == 1))))
{
return true;
}
@@ -424,7 +430,7 @@ class Asset extends Depreciable
*/
public function assignedTo()
{
return $this->morphTo('assigned', 'assigned_type', 'assigned_to');
return $this->morphTo('assigned', 'assigned_type', 'assigned_to')->withTrashed();
}
/**
@@ -111,7 +111,7 @@ class CheckinAccessoryNotification extends Notification
];
return (new SlackMessage)
->content(':arrow_down: :keyboard: Accessory Checked In')
->content(':arrow_down: :keyboard: '.trans('mail.Accessory_Checkin_Notification'))
->from($botname)
->attachment(function ($attachment) use ($item, $note, $admin, $fields) {
$attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl())
@@ -135,7 +135,7 @@ class CheckinAccessoryNotification extends Notification
'note' => $this->note,
'target' => $this->target,
])
->subject('Accessory checked in');
->subject(trans('mail.Accessory_Checkin_Notification'));
}
}
@@ -79,7 +79,7 @@ class CheckinAssetNotification extends Notification
];
return (new SlackMessage)
->content(':arrow_down: :computer: Asset Checked In')
->content(':arrow_down: :computer: '.trans('mail.Asset_Checkin_Notification'))
->from($botname)
->attachment(function ($attachment) use ($item, $note, $admin, $fields) {
$attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl())
@@ -113,7 +113,7 @@ class CheckinAssetNotification extends Notification
'fields' => $fields,
'expected_checkin' => $this->expected_checkin,
])
->subject('Asset checked in');
->subject(trans('mail.Asset_Checkin_Notification'));
return $message;
@@ -83,7 +83,7 @@ class CheckinLicenseSeatNotification extends Notification
return (new SlackMessage)
->content(':arrow_down: :floppy_disk: License Checked In')
->content(':arrow_down: :floppy_disk: '.trans('mail.License_Checkin_Notification'))
->from($botname)
->attachment(function ($attachment) use ($item, $note, $admin, $fields) {
$attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl())
@@ -106,7 +106,7 @@ class CheckinLicenseSeatNotification extends Notification
'note' => $this->note,
'target' => $this->target,
])
->subject('License checked in');
->subject(trans('mail.License_Checkin_Notification'));
}
@@ -48,7 +48,7 @@ class ExpectedCheckinAdminNotification extends Notification
[
'assets' => $this->assets,
])
->subject('Expected asset checkin report');
->subject(trans('mail.Expected_Checkin_Report'));
return $message;
@@ -2,7 +2,7 @@
namespace App\Notifications;
use Carbon\Carbon;
use App\Helpers\Helper;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
@@ -46,16 +46,18 @@ class ExpectedCheckinNotification extends Notification
*/
public function toMail()
{
$formatted_due = Carbon::parse($this->params->expected_checkin)->format('D, M j, Y');
return (new MailMessage)
->error()
->subject('Reminder: '.$this->params->present()->name().' checkin deadline approaching')
->line('Hi, '.$this->params->assignedto->first_name.' '.$this->params->assignedto->last_name)
->greeting('An asset checked out to you is due to be checked back in on '.$formatted_due.'.')
->line('Asset: '.$this->params->present()->name())
->line('Serial: '.$this->params->serial)
->line('Asset Tag: '.$this->params->asset_tag)
->action('View Your Assets', route('view-assets'));
$message = (new MailMessage)->markdown('notifications.markdown.expected-checkin',
[
'date' => Helper::getFormattedDateObject($this->params->expected_checkin, 'date', false),
'asset' => $this->params->present()->name(),
'serial' => $this->params->serial,
'asset_tag' => $this->params->asset_tag
])
->subject(trans('mail.Expected_Checkin_Notification', ['name' => $this->params->present()->name()]));
return $message;
}
}
+50 -14
View File
@@ -165,7 +165,7 @@ class LdapAd extends LdapAdConfiguration
*/
public function processUser(AdldapUser $user, ?Collection $defaultLocation=null, ?Collection $mappedLocations=null): ?User
{
// Only sync active users
// Only sync active users <- I think this actually means 'existing', not 'activated/deactivated'
if(!$user) {
return null;
}
@@ -177,8 +177,26 @@ class LdapAd extends LdapAdConfiguration
$snipeUser['email'] = $user->{$this->ldapSettings['ldap_email']}[0] ?? '';
$snipeUser['title'] = $user->getTitle() ?? '';
$snipeUser['telephonenumber'] = $user->getTelephoneNumber() ?? '';
$snipeUser['location_id'] = $this->getLocationId($user, $defaultLocation, $mappedLocations);
$snipeUser['activated'] = $this->getActiveStatus($user);
/*
* $locationId being 'null' means we have no per-OU location information,
* but instead of explicitly setting it to null - which would override any admin-generated
* location assignments - we just don't set it at all. For a brand new User, the 'default null'
* on the column will cover us. For an already existing user, this will not override any
* locations that were explicitly chosen by the administrators.
*
* When syncing with a particular 'default location' in mind, those should still be respected
* and it *will* override the administrators previous choices. I think this is a fair compromise.
*/
$locationId = $this->getLocationId($user, $defaultLocation, $mappedLocations);
if ($locationId !== null ) {
$snipeUser['location_id'] = $locationId;
}
$activeStatus = $this->getActiveStatus($user);
if ($activeStatus !== null) {
$snipeUser['activated'] = $activeStatus;
}
return $this->setUserModel($snipeUser);
}
@@ -208,8 +226,12 @@ class LdapAd extends LdapAdConfiguration
$user->employee_num = trim($userInfo['employee_number']);
$user->jobtitle = trim($userInfo['title']);
$user->phone = trim($userInfo['telephonenumber']);
$user->activated = $userInfo['activated'];
$user->location_id = $userInfo['location_id'];
if(array_key_exists('activated',$userInfo)) {
$user->activated = $userInfo['activated'];
}
if(array_key_exists('location_id',$userInfo)) {
$user->location_id = $userInfo['location_id'];
}
$user->notes = 'Imported from LDAP';
$user->ldap_import = 1;
@@ -275,6 +297,8 @@ class LdapAd extends LdapAdConfiguration
/**
* Set the active status of the user.
* Returns 0 or 1 if the user is deactivated or activated
* or returns null if we just don't know
*
* @author Wes Hulette <jwhulette@gmail.com>
*
@@ -282,22 +306,34 @@ class LdapAd extends LdapAdConfiguration
*
* @param \Adldap\Models\User $user
*
* @return int
* @return int (or null)
*/
private function getActiveStatus(AdldapUser $user): int
private function getActiveStatus(AdldapUser $user): ?int
{
$activeStatus = 0;
/*
* Check to see if we are connected to an AD server
* if so, check the Active Directory User Account Control Flags
* If the admin has set their own 'active flag' - respect that instead
* (this may work to allow AD users to ignore the built-in UAC stuff that AD does)
*/
if ($user->hasAttribute($user->getSchema()->userAccountControl())) {
if ($user->hasAttribute($user->getSchema()->userAccountControl()) && !$this->ldapSettings['ldap_active_flag']) {
\Log::debug('This is AD - userAccountControl is'. $user->getSchema()->userAccountControl());
$activeStatus = (in_array($user->getUserAccountControl(), self::AD_USER_ACCOUNT_CONTROL_FLAGS)) ? 1 : 0;
} else {
// If there is no activated flag, assume this is handled via the OU and activate the users
\Log::debug('This looks like LDAP (or an AD where the UAC is disabled)');
// If there is no activated flag, then we can't make any determination about activated/deactivated
if (false == $this->ldapSettings['ldap_active_flag']) {
$activeStatus = 1;
\Log::debug('ldap_active_flag is false - no ldap_active_flag is set');
return null;
}
// If there *is* an activated flag, then respect it *only* if it is actually present. If it's not there, ignore it. <-- NOT SURE IF RIGHT?
if (!$user->hasAttribute($this->ldapSettings['ldap_active_flag'])) {
return null; // 'active' flag is defined, but does not exist on returned user record. So we don't know if they're active or not.
}
$activeStatus = $user->{$this->ldapSettings['ldap_active_flag']} ? 1 : 0 ;
}
return $activeStatus;
@@ -398,7 +434,7 @@ class LdapAd extends LdapAdConfiguration
{
/** @var Schema $schema */
$schema = new $this->ldapConfig['schema'];
return [
return array_values(array_filter([
$this->ldapSettings['ldap_username_field'],
$this->ldapSettings['ldap_fname_field'],
$this->ldapSettings['ldap_lname_field'],
@@ -409,7 +445,7 @@ class LdapAd extends LdapAdConfiguration
$schema->userAccountControl(),
$schema->title(),
$schema->telephone(),
];
]));
}
/**
@@ -439,7 +475,7 @@ class LdapAd extends LdapAdConfiguration
public function testLdapAdUserConnection(): void
{
try {
$this->ldap->connect(); //uh, this doesn't seem to exist :/
$this->ldap->connect();
} catch (\Adldap\Auth\BindException $e) {
Log::error($e);
throw new Exception('Unable to connect to LDAP directory!');
+1
View File
@@ -65,6 +65,7 @@
"codeception/module-rest": "^1.2",
"codeception/module-webdriver": "^1.0",
"fzaninotto/faker": "^1.9",
"overtrue/phplint": "^2.2",
"phpunit/php-token-stream": "^3.1",
"phpunit/phpunit": "^8.5",
"squizlabs/php_codesniffer": "^3.5",
Generated
+112 -2
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "3fe8a441e49d1299687346810b350e00",
"content-hash": "68cf0fb2c06b12c9f8b58efbca2cd72b",
"packages": [
{
"name": "adldap2/adldap2",
@@ -8476,6 +8476,116 @@
],
"time": "2020-01-17T21:11:47+00:00"
},
{
"name": "n98/junit-xml",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/cmuench/junit-xml.git",
"reference": "7df0dbaf413fcaa1a63ffbcef18654e7a4cceb46"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/cmuench/junit-xml/zipball/7df0dbaf413fcaa1a63ffbcef18654e7a4cceb46",
"reference": "7df0dbaf413fcaa1a63ffbcef18654e7a4cceb46",
"shasum": ""
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
"type": "library",
"autoload": {
"psr-0": {
"N98\\JUnitXml": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Christian Münch",
"email": "c.muench@netz98.de"
}
],
"description": "JUnit XML Document generation library",
"support": {
"issues": "https://github.com/cmuench/junit-xml/issues",
"source": "https://github.com/cmuench/junit-xml/tree/master"
},
"time": "2013-11-23T13:11:26+00:00"
},
{
"name": "overtrue/phplint",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/overtrue/phplint.git",
"reference": "dcbb1b9c728de2f05ce6208db7dacb8b3df1c446"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/overtrue/phplint/zipball/dcbb1b9c728de2f05ce6208db7dacb8b3df1c446",
"reference": "dcbb1b9c728de2f05ce6208db7dacb8b3df1c446",
"shasum": ""
},
"require": {
"ext-json": "*",
"n98/junit-xml": "1.0.0",
"php": ">=5.5.9",
"symfony/console": "^3.2|^4.0|^5.0",
"symfony/finder": "^3.0|^4.0|^5.0",
"symfony/process": "^3.3|^4.0|^5.0",
"symfony/yaml": "^3.0|^4.0|^5.0"
},
"require-dev": {
"brainmaestro/composer-git-hooks": "^2.7",
"friendsofphp/php-cs-fixer": "^2.16",
"jakub-onderka/php-console-highlighter": "^0.3.2 || ^0.4"
},
"bin": [
"bin/phplint"
],
"type": "library",
"extra": {
"hooks": {
"pre-commit": [
"composer fix-style"
],
"pre-push": [
"composer check-style"
]
}
},
"autoload": {
"psr-4": {
"Overtrue\\PHPLint\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "overtrue",
"email": "anzhengchao@gmail.com"
}
],
"description": "`phplint` is a tool that can speed up linting of php files by running several lint processes at once.",
"keywords": [
"check",
"lint",
"phplint",
"syntax"
],
"support": {
"issues": "https://github.com/overtrue/phplint/issues",
"source": "https://github.com/overtrue/phplint/tree/2.2.0"
},
"time": "2020-11-04T23:50:40+00:00"
},
{
"name": "phar-io/manifest",
"version": "1.0.3",
@@ -9618,5 +9728,5 @@
"platform-overrides": {
"php": "7.2"
},
"plugin-api-version": "1.1.0"
"plugin-api-version": "2.0.0"
}
+6 -6
View File
@@ -1,10 +1,10 @@
<?php
return array (
'app_version' => 'v5.0.6',
'full_app_version' => 'v5.0.6-5526-g8a7cd8764',
'build_version' => '5526',
'app_version' => 'v5.0.7',
'full_app_version' => 'v5.0.7 - build 5615-g6eb860ca2',
'build_version' => '5615',
'prerelease_version' => '',
'hash_version' => 'g8a7cd8764',
'full_hash' => 'v5.0.6-5526-g8a7cd8764',
'branch' => 'master',
'hash_version' => 'g6eb860ca2',
'full_hash' => 'v5.0.7-87-g6eb860ca2',
'branch' => 'develop',
);
+5 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+34 -26
View File
File diff suppressed because one or more lines are too long
+16 -16
View File
@@ -1,5 +1,5 @@
{
"/js/build/app.js": "/js/build/app.js?id=df0e9d334d5c0b0eb048",
"/js/build/app.js": "/js/build/app.js?id=648e026d19aa24504e0f",
"/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=59413334823616b81341",
"/css/build/app.css": "/css/build/app.css?id=032fd8c3fce99c7fd862",
"/css/build/overrides.css": "/css/build/overrides.css?id=0b4aefd7ef0c117ef23a",
@@ -7,32 +7,32 @@
"/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=747948e5f269f64047f7",
"/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=d7996d850e8bcdc4e167",
"/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=eb25d2ec49f730d09431",
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=8dfcf59850a3f5775b8c",
"/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=eb4404a7b646ea42e025",
"/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=35602987835e5d50d162",
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=6bd9c2420a41eaf96f0b",
"/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=60de5bc2660c35544c4d",
"/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=5789dd8af07b08034581",
"/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=2e9f90ff200d4e9f45a8",
"/css/dist/skins/skin-purple.css": "/css/dist/skins/skin-purple.css?id=b6dcb6d5c666fc5c8cc0",
"/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=9dd1dc817a71431e5904",
"/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=8150adf2e5f70ec3eb00",
"/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=cb85a4e40e784319e878",
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=4a19f5ae861f98f40bab",
"/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=5fc4a3cf9407c6a9d398",
"/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=2f665cf40d7348b3f94c",
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=71c178700d68294e3413",
"/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=5267e92a8df9ba833e01",
"/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=b4fc4a74e1f6367dc3e2",
"/css/dist/all.css": "/css/dist/all.css?id=6e3b75006f2b19d69f37",
"/css/dist/all.css": "/css/dist/all.css?id=199fdf677ce0dce6cef8",
"/css/blue.png": "/css/blue.png?id=4c85d6a97173123bd14a",
"/css/blue@2x.png": "/css/blue@2x.png?id=62c67c6a822439e8a4ac",
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=8dfcf59850a3f5775b8c",
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=6bd9c2420a41eaf96f0b",
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=eb4404a7b646ea42e025",
"/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=5789dd8af07b08034581",
"/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=2f665cf40d7348b3f94c",
"/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=4a19f5ae861f98f40bab",
"/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=60de5bc2660c35544c4d",
"/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=9dd1dc817a71431e5904",
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=71c178700d68294e3413",
"/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=5fc4a3cf9407c6a9d398",
"/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=2e9f90ff200d4e9f45a8",
"/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=8150adf2e5f70ec3eb00",
"/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=5267e92a8df9ba833e01",
"/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=d7996d850e8bcdc4e167",
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced",
"/css/build/signature-pad.min.css": "/css/build/signature-pad.min.css?id=d41d8cd98f00b204e980",
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=1e77fde04b3f42432581",
"/js/build/vendor.js": "/js/build/vendor.js?id=aff75d5aad5e7b429723",
"/js/build/vendor.js": "/js/build/vendor.js?id=b93877b4a88a76e1b18b",
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=58d95c93430f2ae33392",
"/js/dist/all.js": "/js/dist/all.js?id=5dc677546cc6d86e605d"
"/js/dist/all.js": "/js/dist/all.js?id=b4627a6533d841cd8fdf"
}
@@ -1,6 +1,6 @@
<template>
<div v-show="processDetail" class="col-md-6 col-md-offset-3">
<div v-show="processDetail" class="col-md-12">
<div class="row">
<div class="dynamic-form-row">
@@ -50,8 +50,7 @@
</div> <!-- /div row -->
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8" style="padding-top: 30px;">
<div class="col-md-12" style="padding-top: 30px;">
<div class="col-md-4 text-right"><h4>Header Field</h4></div>
<div class="col-md-4"><h4>Import Field</h4></div>
<div class="col-md-4"><h4>Sample Value</h4></div>
@@ -60,8 +59,7 @@
<template v-for="(header, index) in file.header_row">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<div class="col-md-12">
<div class="col-md-4 text-right">
<label :for="header" class="control-label">{{ header }}</label>
</div>
@@ -131,6 +131,12 @@ a {
background-color: var(--back-main);
color: var(--text-main);
}
.popover {
background-color:var(--back-main);
}
.popover-title {
background-color: #111;
}
a, a:link, a:visited, .btn-primary.hover {
color: var(--header);
@@ -131,6 +131,12 @@ a {
background-color: var(--back-main);
color: var(--text-main);
}
.popover {
background-color:var(--back-main);
}
.popover-title {
background-color: #00a65a;
}
a, a:link, a:visited, .btn-primary.hover {
color: var(--header);
@@ -131,6 +131,12 @@ a {
background-color: var(--back-main);
color: var(--text-main);
}
.popover {
background-color:var(--back-main);
}
.popover-title {
background-color: #ff8c00;
}
a, a:link, a:visited, .btn-primary.hover {
color: var(--header);
@@ -131,6 +131,12 @@ a {
background-color: var(--back-main);
color: var(--text-main);
}
.popover {
background-color:var(--back-main);
}
.popover-title {
background-color: #605ca8;
}
a, a:link, a:visited, .btn-primary.hover {
color: var(--header);
@@ -258,6 +258,12 @@ input[type=text], input[type=search] {
background-color: var(--back-main);
color: var(--header);
}
.popover {
background-color:var(--back-main);
}
.popover-title {
background-color: #dd4b39;
}
.select2-container--default .select2-results__option[aria-selected=true], .select2-container--default .select2-results__option[aria-selected=true]:hover {
background-color: var(--back-sub);
color: var(--header);
@@ -258,6 +258,12 @@ input[type=text], input[type=search] {
background-color: var(--back-main);
color: var(--header);
}
.popover {
background-color:var(--back-main);
}
.popover-title {
background-color: #f39c12;
}
.select2-container--default .select2-results__option[aria-selected=true], .select2-container--default .select2-results__option[aria-selected=true]:hover {
background-color: var(--back-sub);
color: var(--header);
+1 -1
View File
@@ -20,6 +20,6 @@ return array(
'title' => 'Asset ',
'image' => 'Geräte-Bild',
'days_without_acceptance' => 'Tage ohne Akzeptierung',
'monthly_depreciation' => 'Monthly Depreciation'
'monthly_depreciation' => 'Monatliche Abschreibung'
);
+12 -12
View File
@@ -1,17 +1,17 @@
<?php
return array(
'about_kits_title' => 'About Predefined Kits',
'about_kits_text' => 'Predefined Kits let you quickly check out a collection of items (assets, licenses, etc) to a user. This can be helpful when your onboarding process is consistent across many users and all users receive the same items.',
'checkout' => 'Checkout Kit ',
'create_success' => 'Kit was successfully created.',
'create' => 'Create Predefined Kit',
'update' => 'Update Predefined Kit',
'delete_success' => 'Kit was successfully deleted.',
'update_success' => 'Kit was successfully updated.',
'none_models' => 'There are not enough available assets for :model to checkout. :qty are required. ',
'none_licenses' => 'There are not enough available seats for :license to checkout. :qty are required. ',
'none_consumables' => 'There are not enough available units of :consumable to checkout. :qty are required. ',
'none_accessory' => 'There are not enough available units of :accessory to checkout. :qty are required. ',
'about_kits_title' => 'Über vordefinierte Kits',
'about_kits_text' => 'Mit vordefinierten Kits können Sie schnell eine Sammlung von Elementen (Assets, Lizenzen, etc.) an einen Benutzer ausgeben. Dies kann hilfreich sein, wenn Ihr Onboarding-Prozess über viele Nutzer hinweg einheitlich ist und alle Nutzer die gleichen Artikel erhalten.',
'checkout' => 'Kit herausgeben ',
'create_success' => 'Kit wurde erfolgreich erstellt.',
'create' => 'Vordefiniertes Kit erstellen',
'update' => 'Vordefiniertes Kit aktualisieren',
'delete_success' => 'Kit wurde erfolgreich gelöscht.',
'update_success' => 'Kit wurde erfolgreich aktualisiert.',
'none_models' => 'Es gibt nicht genügend verfügbare Assets für :model zum Herausgeben. :qty sind erforderlich. ',
'none_licenses' => 'Es gibt nicht genügend Lizenzen für :license zum Herausgeben. :qty sind erforderlich. ',
'none_consumables' => 'Es gibt nicht genügend verfügbare Einheiten von :consumable zum Herausgeben. :qty sind erforderlich. ',
'none_accessory' => 'Es gibt nicht genügend verfügbare Einheiten von :accessory zum Herausgeben. :qty werden benötigt. ',
);
+1 -1
View File
@@ -8,7 +8,7 @@ return array(
'owner_doesnt_match_asset' => 'Der Gegenstand, den Sie mit dieser Lizenz verknüpfen möchten, gehört jemand anderem als der im Dropdown-Feld ausgewählten Person.',
'assoc_users' => 'Diese Lizenz ist derzeit mindestens einem Benutzer zugeordnet und kann nicht gelöscht werden. Bitte nehmen Sie die Lizenz zurück und versuchen Sie anschließend erneut diese zu löschen. ',
'select_asset_or_person' => 'Sie müssen ein Asset oder einen Benutzer auswählen, aber nicht beides.',
'not_found' => 'License not found',
'not_found' => 'Lizenz nicht gefunden',
'create' => array(
+21 -21
View File
@@ -4,9 +4,9 @@ return array(
'ad' => 'Active Directory',
'ad_domain' => 'Active Directory Domäne',
'ad_domain_help' => 'Meistens dieselbe wie die E-Mail Domäne.',
'ad_append_domain_label' => 'Append domain name',
'ad_append_domain' => 'Append domain name to username field',
'ad_append_domain_help' => 'User isn\'t required to write "username@domain.local", they can just type "username".' ,
'ad_append_domain_label' => 'Domänenname anhängen',
'ad_append_domain' => 'Domänenname an das Feld Benutzername anhängen',
'ad_append_domain_help' => 'Benutzer muss nicht "username@domain.local" eingeben, "username" ist ausreichend.' ,
'admin_cc_email' => 'CC Email',
'admin_cc_email_help' => 'Wenn Sie eine Kopie der Rücknahme- / Herausgabe-E-Mails, die an Benutzer gehen auch an zusätzliche E-Mail-Empfänger versenden möchten, geben Sie sie hier ein. Ansonsten lassen Sie dieses Feld leer.',
'is_ad' => 'Dies ist ein Active Directory Server',
@@ -25,7 +25,7 @@ return array(
'backups' => 'Sicherungen',
'barcode_settings' => 'Barcode Einstellungen',
'confirm_purge' => 'Bereinigung bestätigen',
'confirm_purge_help' => 'Enter the text "DELETE" in the box below to purge your deleted records. This action cannot be undone and will PERMANENTLY delete all soft-deleted items and users. (You should make a backup first, just to be safe.)',
'confirm_purge_help' => 'Geben Sie den Text "LÖSCHEN" in das Feld unten ein, um die gelöschten Datensätze zu löschen. Diese Aktion kann nicht rückgängig gemacht werden. Alle Einträge und Benutzer werden DAUERHAFT gelöscht. (Um sicher zu gehen, sollten Sie zuerst ein Backup erstellen)',
'custom_css' => 'Eigenes CSS',
'custom_css_help' => 'Füge eigenes CSS hinzu. Benutze keine &lt;style&gt;&lt;/style&gt; tags.',
'custom_forgot_pass_url' => 'Benutzerdefinierte Passwort Reset URL',
@@ -41,23 +41,23 @@ return array(
'display_eol' => 'Zeige EOL in der Tabellenansicht',
'display_qr' => 'Zeige quadratische Codes',
'display_alt_barcode' => 'Zeige 1D Barcode an',
'email_logo' => 'Email Logo',
'email_logo' => 'E-Mail-Logo',
'barcode_type' => '2D Barcode Typ',
'alt_barcode_type' => '1D Barcode Typ',
'email_logo_size' => 'Square logos in email look best. ',
'email_logo_size' => 'Quadratische Logos in E-Mails sehen am besten aus. ',
'eula_settings' => 'EULA Einstellungen',
'eula_markdown' => 'Diese EULA <a href="https://help.github.com/articles/github-flavored-markdown/"> erlaubt Github Flavored Markdown</a>.',
'favicon' => 'Favicon',
'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.',
'favicon_size' => 'Favicons should be square images, 16x16 pixels.',
'favicon_format' => 'Zulässige Dateitypen sind ico, png und gif. Andere Bildformate funktionieren möglicherweise nicht in allen Browsern.',
'favicon_size' => 'Favicons sollten quadratische Bilder mit 16x16 Pixel sein.',
'footer_text' => 'Zusätzlicher Fußzeilentext ',
'footer_text_help' => 'Dieser Text wird in der rechten Fußzeile angezeigt. Links sind erlaubt mit <a href="https://help.github.com/articles/github-flavored-markdown/">Github Flavored Markdown</a>. Zeilenumbrüche, Kopfzeilen, Bilder usw. können zu unvorhersehbaren Verhalten führen.',
'general_settings' => 'Allgemeine Einstellungen',
'generate_backup' => 'Backup erstellen',
'header_color' => 'Farbe der Kopfzeile',
'info' => 'Mit diesen Einstellungen können Sie verschiedene Bereiche Ihrer Installation anpassen.',
'label_logo' => 'Label Logo',
'label_logo_size' => 'Square logos look best - will be displayed in the top right of each asset label. ',
'label_logo' => 'Label-Logo',
'label_logo_size' => 'Quadratische Logos sehen am besten aus und werden rechts oben auf jedem Asset-Label angezeigt. ',
'laravel' => 'Laravel Version',
'ldap_enabled' => 'LDAP aktiviert',
'ldap_integration' => 'LDAP Integration',
@@ -113,35 +113,35 @@ return array(
'pwd_secure_complexity' => 'Passwortkomplexität',
'pwd_secure_complexity_help' => 'Wählen Sie aus, welche Komplexitätsregeln Sie für Passwörter erzwingen möchten.',
'pwd_secure_min' => 'Minimale Passwortlänge',
'pwd_secure_min_help' => 'Minimum permitted value is 8',
'pwd_secure_min_help' => 'Minimal zulässiger Wert ist 8',
'pwd_secure_uncommon' => 'Gebräuchliche Passwörter verhindern',
'pwd_secure_uncommon_help' => 'Verhindert die Verwendung der 10.000 häufigsten Passwörter aus im Internet geleakten Quellen.',
'qr_help' => 'Schalte zuerst QR Codes an um dies zu setzen',
'qr_text' => 'QR Code Text',
'saml_enabled' => 'SAML enabled',
'saml_integration' => 'SAML Integration',
'saml_enabled' => 'SAML aktiviert',
'saml_integration' => 'SAML-Integration',
'saml_sp_entityid' => 'Entity ID',
'saml_sp_acs_url' => 'Assertion Consumer Service (ACS) URL',
'saml_sp_sls_url' => 'Single Logout Service (SLS) URL',
'saml_sp_x509cert' => 'Public Certificate',
'saml_sp_x509cert' => 'Öffentliches Zertifikat',
'saml_idp_metadata' => 'SAML IdP Metadata',
'saml_idp_metadata_help' => 'You can specify the IdP metadata using a URL or XML file.',
'saml_attr_mapping_username' => 'Attribute Mapping - Username',
'saml_attr_mapping_username_help' => 'NameID will be used if attribute mapping is unspecified or invalid.',
'saml_forcelogin_label' => 'SAML Force Login',
'saml_forcelogin' => 'Make SAML the primary login',
'saml_attr_mapping_username' => 'Zuordnung - Benutzername',
'saml_attr_mapping_username_help' => 'NamensID wird verwendet, wenn Attribute nicht angegeben oder ungültig sind.',
'saml_forcelogin_label' => 'SAML Login erzwingen',
'saml_forcelogin' => 'SAML zum primären Login machen',
'saml_forcelogin_help' => 'You can use \'/login?nosaml\' to get to the normal login page.',
'saml_slo_label' => 'SAML Single Log Out',
'saml_slo_label' => 'SAML Abmeldung',
'saml_slo' => 'Send a LogoutRequest to IdP on Logout',
'saml_slo_help' => 'This will cause the user to be first redirected to the IdP on logout. Leave unchecked if the IdP doesn\'t correctly support SP-initiated SAML SLO.',
'saml_custom_settings' => 'SAML Custom Settings',
'saml_custom_settings' => 'SAML Einstellungen',
'saml_custom_settings_help' => 'You can specify additional settings to the onelogin/php-saml library. Use at your own risk.',
'setting' => 'Einstellung',
'settings' => 'Einstellungen',
'show_alerts_in_menu' => 'Warnungen im oberen Menü anzeigen',
'show_archived_in_list' => 'Archivierte Assets',
'show_archived_in_list_text' => 'Zeige archivierte Assets in der "Alle auflisten" Liste',
'show_assigned_assets' => 'Show assets assigned to assets',
'show_assigned_assets' => 'Assets anzeigen, die anderen Assets zugeordnet sind',
'show_assigned_assets_help' => 'Display assets which were assigned to the other assets in View User -> Assets, View User -> Info -> Print All Assigned and in Account -> View Assigned Assets.',
'show_images_in_email' => 'Verwende Bilder in E-Mals',
'show_images_in_email_help' => 'Deaktivieren Sie dieses Kontrollkästchen, wenn sich Ihre Snipe-IT-Installation hinter einem VPN oder einem geschlossenen Netzwerk befindet und Benutzer außerhalb des Netzwerks keine Bilder von dieser Installation in ihre E-Mails laden können.',
+1 -1
View File
@@ -19,7 +19,7 @@ return array(
'ldap_config_text' => 'Die LDAP Konfigurations Einstellungen finden Sie hier Admin -> Einstellungen. Der (optional) wählbare Standort wird für alle importierten Benutzer gesetzt.',
'print_assigned' => 'Alles zugewiesene drucken',
'software_user' => 'Software herausgegeben an :name',
'send_email_help' => 'You must provide an email address for this user to send them credentials. Emailing credentials can only be done on user creation. Passwords are stored in a one-way hash and cannot be retrieved once saved.',
'send_email_help' => 'Sie müssen eine E-Mail-Adresse angeben, um dem Benutzer Zugangsdaten zu zusenden. Das Versenden von Zugangsdaten ist nur bei der Erstellung eines Benutzers möglich. Passwörter werden in einem Einweg-Hash gespeichert und können danach nicht mehr ausgelesen werden.',
'view_user' => 'Benutzer :name ansehen',
'usercsv' => 'CSV Datei',
'two_factor_admin_optin_help' => 'Ihre aktuellen Administrator-Einstellungen erlauben die selektive Durchführung der zwei-Faktor-Authentifizierung. ',
+1 -1
View File
@@ -12,7 +12,7 @@ return array(
'insufficient_permissions' => 'Unzureichende Berechtigungen.',
'user_deleted_warning' => 'Dieser Benutzer wurde gelöscht. Sie müssen ihn wiederherstellen, um ihn zu bearbeiten oder neue Assets zuzuweisen.',
'ldap_not_configured' => 'LDAP Integration wurde für diese Installation nicht konfiguriert.',
'password_resets_sent' => 'The selected users who are activated and have a valid email addresses have been sent a password reset link.',
'password_resets_sent' => 'Den ausgewählten Benutzern, die aktiviert sind und eine gültige E-Mail-Adresse haben, wurde ein Link zum Zurücksetzen des Passworts gesendet.',
'success' => array(
+1 -1
View File
@@ -4,7 +4,7 @@ return [
'send_password_link' => 'E-Mail zum Zurücksetzen des Passworts senden',
'email_reset_password' => 'Passwort zurücksetzen',
'reset_password' => 'Passwort zurücksetzen',
'saml_login' => 'Login via SAML',
'saml_login' => 'Anmelden über SAML',
'login' => 'Login',
'login_prompt' => 'Melden Sie sich bitte an',
'forgot_password' => 'Ich habe mein Passwort vergessen',
+8 -8
View File
@@ -7,13 +7,13 @@ return array(
'account_not_activated' => 'Das Benutzerkonto ist nicht aktiviert.',
'account_suspended' => 'Dieses Benutzerkonto ist gesperrt.',
'account_banned' => 'Dieses Benutzerkonto wurde ausgeschlossen.',
'throttle' => 'Too many failed login attempts. Please try again in :minutes minutes.',
'throttle' => 'Zu viele fehlgeschlagene Anmeldeversuche. Bitte versuchen Sie es in :minutes Minuten erneut.',
'two_factor' => array(
'already_enrolled' => 'Your device is already enrolled.',
'success' => 'You have successfully logged in.',
'code_required' => 'Two-factor code is required.',
'invalid_code' => 'Two-factor code is invalid.',
'already_enrolled' => 'Ihr Gerät ist bereits eingeschrieben.',
'success' => 'Sie haben sich erfolgreich eingeloggt.',
'code_required' => 'Zwei-Faktor-Code ist erforderlich.',
'invalid_code' => 'Zwei-Faktor-Code ist ungültig.',
),
'signin' => array(
@@ -22,8 +22,8 @@ return array(
),
'logout' => array(
'error' => 'There was a problem while trying to log you out, please try again.',
'success' => 'You have successfully logged out.',
'error' => 'Beim Ausloggen ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.',
'success' => 'Sie haben sich erfolgreich abgemeldet.',
),
'signup' => array(
@@ -33,7 +33,7 @@ return array(
'forgot-password' => array(
'error' => 'Beim abrufen des Codes zur Passwortzurücksetzung ist ein Fehler aufgetreten, bitte versuchen sie es erneut.',
'success' => 'If that email address exists in our system, a password recovery email has been sent.',
'success' => 'Wenn diese E-Mail-Adresse in unserem System existiert, wurde eine E-Mail zum Wiederherstellen des Passworts gesendet.',
),
'forgot-password-confirm' => array(
+12 -12
View File
@@ -30,7 +30,7 @@
'bulkaudit' => 'Massenprüfung',
'bulkaudit_status' => 'Audit-Status',
'bulk_checkout' => 'Massen-Herausgeben',
'bystatus' => 'by Status',
'bystatus' => 'nach Status',
'cancel' => 'Abbrechen',
'categories' => 'Kategorien',
'category' => 'Kategorie',
@@ -58,7 +58,7 @@
'created' => 'Eintrag erstellt',
'created_asset' => 'Asset angelegt',
'created_at' => 'Erstellt am',
'record_created' => 'Record Created',
'record_created' => 'Eintrag erstellt',
'updated_at' => 'Aktualisiert am',
'currency' => '€', // this is deprecated
'current' => 'Aktuell',
@@ -92,11 +92,11 @@
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'first' => 'Erste',
'firstnamelastname' => 'First Name Last Name (janesmith@example.com)',
'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)',
'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)',
'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)',
'lastname_firstinitial' => 'Nachname und Initial des Vornamens (mustermann_e@beispiel.de)',
'firstinitial.lastname' => 'Initial des Vornamens und Nachname (e.mustermann@beispiel.de)',
'firstnamelastinitial' => 'Vorname und Initial des Nachnamen (erika_m@beispiel.de)',
'first' => 'First',
'firstnamelastname' => 'First Name Last Name (janesmith@example.com)',
'firstnamelastname' => 'Vorname Nachname (Erika.Mustermann@beispiel.de)',
'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)',
'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)',
'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)',
@@ -125,7 +125,7 @@
'asset_maintenances' => 'Asset Wartungen',
'item' => 'Gegenstand',
'insufficient_permissions' => 'Unzureichende Berechtigungen!',
'kits' => 'Predefined Kits',
'kits' => 'Vordefinierte Kits',
'language' => 'Sprache',
'last' => 'Letzte',
'last_login' => 'Letzte Anmeldung',
@@ -202,7 +202,7 @@
'sign_in' => 'Anmelden',
'signature' => 'Unterschrift',
'skin' => 'Skin',
'slack_test_msg' => 'Oh hai! Looks like your Slack integration with Snipe-IT is working!',
'slack_test_msg' => 'Oh hai! Sieht so aus, als ob deine Slack Integration mit Snipe-IT funktioniert!',
'some_features_disabled' => 'Einige Funktionen sind für den DEMO-Modus deaktiviert.',
'site_name' => 'Seitenname',
'state' => 'Bundesland',
@@ -230,7 +230,7 @@
'declined' => 'abgelehnt',
'unaccepted_asset_report' => 'Nicht akzeptierte Assets',
'users' => 'Benutzer',
'viewall' => 'View All',
'viewall' => 'Alle anzeigen',
'viewassets' => 'Zugeordnete Assets anzeigen',
'website' => 'Webseite',
'welcome' => 'Willkommen, :name',
@@ -239,7 +239,7 @@
'zip' => 'Postleitzahl',
'noimage' => 'Kein Bild hochgeladen oder kein Bild gefunden.',
'token_expired' => 'Ihre Sitzung ist abgelaufen. Bitte versuchen Sie es erneut.',
'login_enabled' => 'Login Enabled',
'audit_due' => 'Due for Audit',
'audit_overdue' => 'Overdue for Audit',
'login_enabled' => 'Login aktiviert',
'audit_due' => 'Audit fällig',
'audit_overdue' => 'Audit überfällig',
];
+1 -1
View File
@@ -18,7 +18,7 @@ return array(
'click_to_confirm' => 'Bitte klicken Sie zum Bestätigen Ihres :web Kontos auf den folgenden Link:',
'click_on_the_link_accessory' => 'Bitte klicken Sie auf den Link weiter unten, um den Erhalt des Zubehörs zu bestätigen.',
'click_on_the_link_asset' => 'Bitte klicken Sie auf den Link weiter unten, um den Erhalt des Gegenstands zu bestätigen.',
'Confirm_Asset_Checkin' => 'Asset checkin confirmation',
'Confirm_Asset_Checkin' => 'Asset-Check-in-Bestätigung',
'Confirm_Accessory_Checkin' => 'Accessory checkin confirmation',
'Confirm_accessory_delivery' => 'Accessory delivery confirmation',
'Confirm_license_delivery' => 'License delivery confirmation',
@@ -83,6 +83,7 @@ return array(
'ldap_auth_filter_query' => 'LDAP Authentication query',
'ldap_version' => 'LDAP Version',
'ldap_active_flag' => 'LDAP Active Flag',
'ldap_activated_flag_help' => 'This flag is used to determine whether a user can login to Snipe-IT and does not affect the ability to check items in or out to them.',
'ldap_emp_num' => 'LDAP Employee Number',
'ldap_email' => 'LDAP Email',
'license' => 'Software License',
+8 -6
View File
@@ -79,6 +79,7 @@
'depreciation_report' => 'Depreciation Report',
'details' => 'Details',
'download' => 'Download',
'download_all' => 'Download All',
'depreciation' => 'Depreciation',
'editprofile' => 'Edit Your Profile',
'eol' => 'EOL',
@@ -95,12 +96,6 @@
'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)',
'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)',
'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)',
'first' => 'First',
'firstnamelastname' => 'First Name Last Name (janesmith@example.com)',
'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)',
'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)',
'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)',
'first' => 'First',
'first_name' => 'First Name',
'first_name_format' => 'First Name (jane@example.com)',
'files' => 'Files',
@@ -119,6 +114,8 @@
'image_upload' => 'Upload Image',
'image_filetypes_help' => 'Accepted filetypes are jpg, png, gif, and svg. Max upload size allowed is :size.',
'import' => 'Import',
'importing' => 'Importing',
'importing_help' => 'You can import assets, accessories, licenses, components, consumables, and users via CSV file. <br><br>The CSV should be comma-delimited and formatted with headers that match the ones in the <a href="https://snipe-it.readme.io/docs/importing" target="_new">sample CSVs in the documentation</a>.',
'import-history' => 'Import History',
'asset_maintenance' => 'Asset Maintenance',
'asset_maintenance_report' => 'Asset Maintenance Report',
@@ -242,4 +239,9 @@
'login_enabled' => 'Login Enabled',
'audit_due' => 'Due for Audit',
'audit_overdue' => 'Overdue for Audit',
'accept' => 'Accept :asset',
'i_accept' => 'I accept',
'i_decline' => 'I decline',
'sign_tos' => 'Sign below to indicate that you agree to the terms of service:',
'clear_signature' => 'Clear Signature'
];
+7 -1
View File
@@ -70,5 +70,11 @@ return array(
'welcome' => 'Welcome :name',
'welcome_to' => 'Welcome to :web!',
'your_credentials' => 'Your Snipe-IT credentials',
'Accessory_Checkin_Notification' => 'Accessory checked in',
'Asset_Checkin_Notification' => 'Asset checked in',
'License_Checkin_Notification' => 'License checked in',
'Expected_Checkin_Report' => 'Expected asset checkin report',
'Expected_Checkin_Notification' => 'Reminder: :name checkin deadline approaching',
'Expected_Checkin_Date' => 'An asset checked out to you is due to be checked back in on :date',
'your_assets' => 'View Your Assets'
);
+1 -1
View File
@@ -30,7 +30,7 @@ return array(
'title' => 'Puesto',
'to_restore_them' => 'para restaurarlos.',
'updateuser' => 'Actualizar Usuario',
'username' => 'UsuarioUsuario',
'username' => 'Usuario',
'user_deleted_text' => 'Este usuario ha sido marcado como eliminado.',
'username_note' => '(Esto se usa solo para la conexión con Active Directory, no para el inicio de sesión.)',
'cloneuser' => 'Clonar Usuario',
+5 -5
View File
@@ -2,16 +2,16 @@
return array(
'about_kits_title' => 'Acerca de kits predefinidos',
'about_kits_text' => 'Predefined Kits let you quickly check out a collection of items (assets, licenses, etc) to a user. This can be helpful when your onboarding process is consistent across many users and all users receive the same items.',
'about_kits_text' => 'Kits predefinidos le permiten revisar rápidamente un conjunto de elementos (activos, licencias, etc.) a un usuario. Esto puede ser útil cuando su proceso de incorporación es consistente entre muchos usuarios y todos los usuarios reciben los mismos artículos.',
'checkout' => 'Asignar kit ',
'create_success' => 'El kit se ha creado correctamente.',
'create' => 'Crear kit predefinido',
'update' => 'Actualizar kit predefinido',
'delete_success' => 'Kit eliminado correctamente.',
'update_success' => 'El kit se ha actualizado correctamente.',
'none_models' => 'No hay suficientes recursos disponibles para :model para asignar. :qty son requeridos. ',
'none_licenses' => 'There are not enough available seats for :license to checkout. :qty are required. ',
'none_consumables' => 'There are not enough available units of :consumable to checkout. :qty are required. ',
'none_accessory' => 'There are not enough available units of :accessory to checkout. :qty are required. ',
'none_models' => 'No hay suficientes activos disponibles para :model para asignar. :qty son requeridos. ',
'none_licenses' => 'No hay suficientes licencias disponibles para :license para asignar. :qty son requeridos. ',
'none_consumables' => 'No hay suficientes unidades disponibles de :consumable para asignar. :qty son requeridas. ',
'none_accessory' => 'No hay suficientes unidades disponibles de :accesory para asignar. :qty son requeridas. ',
);
+1 -1
View File
@@ -30,7 +30,7 @@ return array(
'title' => 'Puesto',
'to_restore_them' => 'para restaurarlos.',
'updateuser' => 'Actualizar Usuario',
'username' => 'UsuarioUsuario',
'username' => 'Usuario',
'user_deleted_text' => 'Este usuario ha sido marcado como eliminado.',
'username_note' => '(Esto se usa solo para la conexión con Active Directory, no para el inicio de sesión.)',
'cloneuser' => 'Clonar Usuario',
+1 -1
View File
@@ -20,6 +20,6 @@ return array(
'title' => 'Actif ',
'image' => 'Image',
'days_without_acceptance' => 'Jours sans acceptation',
'monthly_depreciation' => 'Monthly Depreciation'
'monthly_depreciation' => 'préciation mensuelle'
);
+12 -12
View File
@@ -1,17 +1,17 @@
<?php
return array(
'about_kits_title' => 'About Predefined Kits',
'about_kits_text' => 'Predefined Kits let you quickly check out a collection of items (assets, licenses, etc) to a user. This can be helpful when your onboarding process is consistent across many users and all users receive the same items.',
'checkout' => 'Checkout Kit ',
'create_success' => 'Kit was successfully created.',
'create' => 'Create Predefined Kit',
'update' => 'Update Predefined Kit',
'delete_success' => 'Kit was successfully deleted.',
'update_success' => 'Kit was successfully updated.',
'none_models' => 'There are not enough available assets for :model to checkout. :qty are required. ',
'none_licenses' => 'There are not enough available seats for :license to checkout. :qty are required. ',
'none_consumables' => 'There are not enough available units of :consumable to checkout. :qty are required. ',
'none_accessory' => 'There are not enough available units of :accessory to checkout. :qty are required. ',
'about_kits_title' => 'À propos des kits prédéfinis',
'about_kits_text' => 'Les kits prédéfinis vous permettent d\'associer rapidement une collection d\'éléments (matériels, licences, etc.) à un utilisateur. Cela peut être utile lorsque votre processus d\'intégration est cohérent entre plusieurs utilisateurs et que tous les utilisateurs reçoivent les mêmes éléments.',
'checkout' => 'Associer le kit ',
'create_success' => 'Le kit a été créé avec succès.',
'create' => 'Créer un kit prédéfini',
'update' => 'Mettre à jour le kit prédéfini',
'delete_success' => 'Le kit a été supprimé avec succès.',
'update_success' => 'Le kit a été mis à jour avec succès.',
'none_models' => 'Il n\'y a pas assez de matériels disponibles pour :model à associer. :qty sont nécessaires. ',
'none_licenses' => 'Il n\'y a pas assez de licences disponibles pour :license pour associer. :qty sont nécessaires. ',
'none_consumables' => 'Il n\'y a pas assez d\'unités disponibles de :consumable pour associer. :qty sont nécessaires. ',
'none_accessory' => 'Il n\'y a pas assez d\'unités disponibles de :accessory pour associer. :qty sont nécessaires. ',
);
+1 -1
View File
@@ -8,7 +8,7 @@ return array(
'owner_doesnt_match_asset' => 'L\'actif que vous essayez d\'associer avec cette licence est détenu par une autre personne que celle sélectionnée dans la liste déroulante.',
'assoc_users' => 'Cette catégorie est associée au moins à un modèle et ne peut être supprimée. Veuillez actualiser vos modèles pour ne plus référencer cette catégorie et réessayer.',
'select_asset_or_person' => 'Vous devez sélectionner un actif ou un utilisateur, mais pas les deux.',
'not_found' => 'License not found',
'not_found' => 'Licence introuvable',
'create' => array(
+36 -36
View File
@@ -4,9 +4,9 @@ return array(
'ad' => 'Service d\'annuaire',
'ad_domain' => 'Domaine du service d\'annuaire',
'ad_domain_help' => 'C\'est parfois le même que votre domaine d\'e-mail, mais pas toujours.',
'ad_append_domain_label' => 'Append domain name',
'ad_append_domain' => 'Append domain name to username field',
'ad_append_domain_help' => 'User isn\'t required to write "username@domain.local", they can just type "username".' ,
'ad_append_domain_label' => 'Ajouter un nom de domaine',
'ad_append_domain' => 'Ajouter le nom de domaine au champ nom d\'utilisateur',
'ad_append_domain_help' => 'L\'utilisateur n\'est pas obligé d\'écrire "username@domain.local", il peut juste taper "username".' ,
'admin_cc_email' => 'CC Email',
'admin_cc_email_help' => 'Si vous souhaitez envoyer une copie des courriels d\'association/dissociation qui sont envoyés aux utilisateurs à un compte de messagerie supplémentaire, entrez-le ici. Sinon, laissez ce champ vide.',
'is_ad' => 'C\'est un serveur Active Directory',
@@ -25,7 +25,7 @@ return array(
'backups' => 'Sauvegardes',
'barcode_settings' => 'Configuration des codes à barres',
'confirm_purge' => 'Confirmer la purge',
'confirm_purge_help' => 'Enter the text "DELETE" in the box below to purge your deleted records. This action cannot be undone and will PERMANENTLY delete all soft-deleted items and users. (You should make a backup first, just to be safe.)',
'confirm_purge_help' => 'Entrez le texte « SUPPRIMER » dans la case ci-dessous pour purger vos enregistrements supprimés. Cette action ne peut pas être annulée et supprimera DEFINITIVEMENT tous les éléments et utilisateurs supprimés par le logiciel. (Avant de débuter, faites une sauvegarde juste au cas où.)',
'custom_css' => 'CSS personnalisé',
'custom_css_help' => 'Entrez les codes CSS personnalisé que vous souhaitez utiliser . Ne pas inclure les balises &lt;style&gt;&lt;/style&gt;.',
'custom_forgot_pass_url' => 'URL personnalisé de réinitialisation du mot de passe',
@@ -41,23 +41,23 @@ return array(
'display_eol' => 'Afficher la fin de vie dans les tables',
'display_qr' => 'Affiche les QR codes',
'display_alt_barcode' => 'Affiche le code-barres 1D',
'email_logo' => 'Email Logo',
'email_logo' => 'Logo de l\'e-mail',
'barcode_type' => 'Type du code-barres 2D',
'alt_barcode_type' => 'Type du code-barres 1D',
'email_logo_size' => 'Square logos in email look best. ',
'email_logo_size' => 'Les logos carrés dans l\'e-mail rendent mieux. ',
'eula_settings' => 'Configuration pour les licences d\'utilisation',
'eula_markdown' => 'Cette licence d\'utilisation permet l\'utilisation des <a href="https://help.github.com/articles/github-flavored-markdown/">"Github flavored markdown"</a>.',
'favicon' => 'Favicon',
'favicon_format' => 'Accepted filetypes are ico, png, and gif. Other image formats may not work in all browsers.',
'favicon_size' => 'Favicons should be square images, 16x16 pixels.',
'favicon_format' => 'Les types de fichiers acceptés sont ico, png et gif. Les autres formats d\'image peuvent ne pas fonctionner dans tous les navigateurs.',
'favicon_size' => 'Les Favicons doivent être des images carrées de 16x16 pixels.',
'footer_text' => 'Texte supplémentaire en pied de page ',
'footer_text_help' => 'Ce texte apparaîtra dans le pied de page de droitre. Les liens sont autorisés en utilisant <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>. Les sauts de ligne, les en-têtes, les images, etc. peuvent entraîner des résultats imprévisibles.',
'general_settings' => 'Configuration générale',
'generate_backup' => 'Générer une sauvegarde',
'header_color' => 'Couleur de l\'en-tête',
'info' => 'Ces paramètres vous permettent de personnaliser certains aspects de votre installation.',
'label_logo' => 'Label Logo',
'label_logo_size' => 'Square logos look best - will be displayed in the top right of each asset label. ',
'label_logo' => 'Logo du label',
'label_logo_size' => 'Les logos, de préférence carrés, sont affichés en haut à droite de chaque étiquette. ',
'laravel' => 'Version de Laravel',
'ldap_enabled' => 'LDAP activé',
'ldap_integration' => 'Intégration LDAP',
@@ -97,8 +97,8 @@ return array(
'login_common_disabled_help' => 'Cette option désactive les autres mécanismes d\'authentification. N\'activez cette option que si vous êtes sûr que votre login REMOTE_USER fonctionne déjà',
'login_remote_user_custom_logout_url_text' => 'URL personnalisé de déconnexion',
'login_remote_user_custom_logout_url_help' => 'Si une URL est spécifiée ici, les utilisateurs seront redirigés vers cette URL après la déconnexion de Snipe-IT. Ceci est utile pour fermer correctement les sessions utilisateur de votre fournisseur d\'authentification.',
'login_remote_user_header_name_text' => 'Custom user name header',
'login_remote_user_header_name_help' => 'Use the specified header instead of REMOTE_USER',
'login_remote_user_header_name_text' => 'En-tête du nom d\'utilisateur personnalisé',
'login_remote_user_header_name_help' => 'Utiliser l\'en-tête spécifié au lieu de REMOTE_USER',
'logo' => 'Logo',
'logo_print_assets' => 'Utiliser dans les impressions',
'logo_print_assets_help' => 'Utiliser la marque dans les listes imprimables des actifs ',
@@ -113,36 +113,36 @@ return array(
'pwd_secure_complexity' => 'Complexité du mot de passe',
'pwd_secure_complexity_help' => 'Sélectionnez les règles de complexité de mot de passe que vous souhaitez appliquer.',
'pwd_secure_min' => 'Mot de passe minimum',
'pwd_secure_min_help' => 'Minimum permitted value is 8',
'pwd_secure_min_help' => 'La valeur minimale autorisée est de 8',
'pwd_secure_uncommon' => 'Empêcher les mots de passe communs',
'pwd_secure_uncommon_help' => 'Cela empêchera les utilisateurs d\'utiliser des mots de passe communs parmi les 10 000 premiers mots de passe signalés dans les violations.',
'qr_help' => 'Activer les QR Codes avant de définir ceci',
'qr_text' => 'Texte du QR Code',
'saml_enabled' => 'SAML enabled',
'saml_integration' => 'SAML Integration',
'saml_sp_entityid' => 'Entity ID',
'saml_sp_acs_url' => 'Assertion Consumer Service (ACS) URL',
'saml_sp_sls_url' => 'Single Logout Service (SLS) URL',
'saml_sp_x509cert' => 'Public Certificate',
'saml_idp_metadata' => 'SAML IdP Metadata',
'saml_idp_metadata_help' => 'You can specify the IdP metadata using a URL or XML file.',
'saml_attr_mapping_username' => 'Attribute Mapping - Username',
'saml_attr_mapping_username_help' => 'NameID will be used if attribute mapping is unspecified or invalid.',
'saml_forcelogin_label' => 'SAML Force Login',
'saml_forcelogin' => 'Make SAML the primary login',
'saml_forcelogin_help' => 'You can use \'/login?nosaml\' to get to the normal login page.',
'saml_slo_label' => 'SAML Single Log Out',
'saml_slo' => 'Send a LogoutRequest to IdP on Logout',
'saml_slo_help' => 'This will cause the user to be first redirected to the IdP on logout. Leave unchecked if the IdP doesn\'t correctly support SP-initiated SAML SLO.',
'saml_custom_settings' => 'SAML Custom Settings',
'saml_custom_settings_help' => 'You can specify additional settings to the onelogin/php-saml library. Use at your own risk.',
'saml_enabled' => 'SAML activé',
'saml_integration' => 'Intégration SAML',
'saml_sp_entityid' => 'ID de l\'entité',
'saml_sp_acs_url' => 'URL du service ACS (Assertion Consumer Service)',
'saml_sp_sls_url' => 'URL du service de déconnexion unique (SLS)',
'saml_sp_x509cert' => 'Certificat public',
'saml_idp_metadata' => 'Métadonnées SAML IdP',
'saml_idp_metadata_help' => 'Vous pouvez spécifier les métadonnées IdP en utilisant une URL ou un fichier XML.',
'saml_attr_mapping_username' => 'Mapping d\'attributs - Nom d\'utilisateur',
'saml_attr_mapping_username_help' => 'NameID sera utilisé si le mapping des attributs n\'est pas spécifié ou est invalide.',
'saml_forcelogin_label' => 'Connexion SAML forcée',
'saml_forcelogin' => 'Faire de SAML la connexion principale',
'saml_forcelogin_help' => 'Vous pouvez utiliser \'/login?nosaml\' pour accéder à la page de connexion normale.',
'saml_slo_label' => 'Déconnexion unique SAML',
'saml_slo' => 'Envoyer une requête LogoutRequest à IdP lors de la déconnexion',
'saml_slo_help' => 'Cela fera que l\'utilisateur sera d\'abord redirigé vers l\'IdP lors de la déconnexion. Laissez décoché si l\'IdP ne supporte pas correctement SAML SLO.',
'saml_custom_settings' => 'Paramètres personnalisés SAML',
'saml_custom_settings_help' => 'Vous pouvez spécifier des paramètres supplémentaires à la bibliothèque onelogin/php-saml. Utilisez à vos risques et périls.',
'setting' => 'Paramètre',
'settings' => 'Paramètres',
'show_alerts_in_menu' => 'Afficher les alertes dans le menu du haut',
'show_archived_in_list' => 'Actifs archivés',
'show_archived_in_list_text' => 'Afficher les actifs archivés dans la liste "Tous les actifs"',
'show_assigned_assets' => 'Show assets assigned to assets',
'show_assigned_assets_help' => 'Display assets which were assigned to the other assets in View User -> Assets, View User -> Info -> Print All Assigned and in Account -> View Assigned Assets.',
'show_assigned_assets' => 'Afficher les matériels assignés aux matériels',
'show_assigned_assets_help' => 'Afficher les actifs qui ont été assignés aux autres actifs dans Voir utilisateurs -> Matériels, Voir Utilisateur -> Info -> Imprimer Tous les matériels assignés et présent dans le compte -> Voir les matériels assignés.',
'show_images_in_email' => 'Afficher les images dans les courriels',
'show_images_in_email_help' => 'Décocher cette case si votre installation de Snipe-IT est derrière un VPN ou un réseau fermé et que les utilisateurs en dehors du réseau ne peuvent pas charger les images servies depuis cette installation dans leurs courriels.',
'site_name' => 'Nom du site',
@@ -150,7 +150,7 @@ return array(
'slack_channel' => 'Slack Channel',
'slack_endpoint' => 'Slack Endpoint',
'slack_integration' => 'Configuration "Slack"',
'slack_integration_help' => 'Slack integration is optional, however the endpoint and channel are required if you wish to use it. To configure Slack integration, you must first <a href=":slack_link" target="_new" rel="noopener">create an incoming webhook</a> on your Slack account. Click on the <strong>Test Slack Integration</strong> button to confirm your settings are correct before saving. ',
'slack_integration_help' => 'L\'intégration de Slack est optionnelle, cependant le point de terminaison et le canal sont requis si vous souhaitez l\'utiliser. Pour configurer l\'intégration de Slack, vous devez d\'abord <a href=":slack_link" target="_new" rel="noopener">créer un webhook entrant</a> sur votre compte Slack. Cliquez sur le bouton <strong>Tester l\'intégration Slack</strong> pour confirmer que vos paramètres sont corrects avant d\'enregistrer. ',
'slack_integration_help_button' => 'Une fois que vous avez enregistré vos informations Slack, un bouton de test apparaîtra.',
'slack_test_help' => 'Testez si votre intégration Slack est correctement configurée. VOUS DEVEZ D\'ABORD ENREGISTRER LES PARAMÈTRES DE SLACK MIS À JOUR.',
'snipe_version' => 'Version de Snipe-IT',
@@ -162,7 +162,7 @@ return array(
'update' => 'Mettre à jour les paramètres',
'value' => 'Valeur',
'brand' => 'Marque',
'web_brand' => 'Web Branding Type',
'web_brand' => 'Type de Web Branding',
'about_settings_title' => 'A propos des réglages',
'about_settings_text' => 'Ces réglages vous permettent de personnaliser certains aspects de votre installation.',
'labels_per_page' => 'Etiquettes par page',
@@ -217,5 +217,5 @@ return array(
'unique_serial' => 'Numéros de série uniques',
'unique_serial_help_text' => 'Cocher cette case forcera une contrainte d\'unicité sur les identifiants d\'actif',
'zerofill_count' => 'Longueur des étiquettes de bien, incluant le remplissage de zéros',
'username_format_help' => 'This setting will only be used by the import process if a username is not provided and we have to generate a username for you.',
'username_format_help' => 'Ce paramètre ne sera utilisé par le processus d\'importation que si un nom d\'utilisateur n\'est pas fourni et que nous devons générer un nom d\'utilisateur pour vous.',
);
+1 -1
View File
@@ -19,7 +19,7 @@ return array(
'ldap_config_text' => 'Les paramètres de configuration LDAP se trouvent sous Admin > Réglages. La localisation sélectionnée (optionnelle) sera définie pour tous les utilisateurs importés.',
'print_assigned' => 'Imprimer tout ceux assignés',
'software_user' => 'Logiciels associés avec :name',
'send_email_help' => 'You must provide an email address for this user to send them credentials. Emailing credentials can only be done on user creation. Passwords are stored in a one-way hash and cannot be retrieved once saved.',
'send_email_help' => 'Vous devez fournir une adresse e-mail pour que cet utilisateur puisse recevoir ses identifiants. Les envois d\'identifiants par email ne peuvent être faits que lors de la création de l\'utilisateur. Les mots de passe sont stockés dans un hachage à sens unique et ne peuvent pas être récupérés une fois enregistrés.',
'view_user' => 'Voir l\'utilisateur :name',
'usercsv' => 'Fichier CSV',
'two_factor_admin_optin_help' => 'Vos paramètres administratifs actuels permettent une application sélective de l\'authentification à deux facteurs. ',
+1 -1
View File
@@ -12,7 +12,7 @@ return array(
'insufficient_permissions' => 'Droits insuffisants.',
'user_deleted_warning' => 'Cet utilisateur a été supprimé. Vous devez le restaurer pour pouvoir l\'éditer ou lui assigner de nouveaux actifs.',
'ldap_not_configured' => 'L\'intégration LDAP n\'a pas été configuré pour cette installation .',
'password_resets_sent' => 'The selected users who are activated and have a valid email addresses have been sent a password reset link.',
'password_resets_sent' => 'Les utilisateurs sélectionnés qui sont activés et ont une adresse e-mail valide ont reçu un lien de réinitialisation du mot de passe.',
'success' => array(
+1 -1
View File
@@ -4,7 +4,7 @@ return [
'send_password_link' => 'Envoyer un lien pour réinitialiser un mot de passe',
'email_reset_password' => 'E-mail pour réinitialiser le mot de passe',
'reset_password' => 'Réinitialiser le mot de passe',
'saml_login' => 'Login via SAML',
'saml_login' => 'Se connecter via SAML',
'login' => 'Connexion',
'login_prompt' => 'Veuillez vous connecter',
'forgot_password' => 'J\'ai oublié mon mot de passe',
+8 -8
View File
@@ -7,13 +7,13 @@ return array(
'account_not_activated' => 'Ce compte n\'est pas activé.',
'account_suspended' => 'Ce compte est suspendu.',
'account_banned' => 'Ce compte est banni.',
'throttle' => 'Too many failed login attempts. Please try again in :minutes minutes.',
'throttle' => 'Trop de tentatives de connexion échouées. Veuillez réessayer dans :minutes minutes.',
'two_factor' => array(
'already_enrolled' => 'Your device is already enrolled.',
'success' => 'You have successfully logged in.',
'code_required' => 'Two-factor code is required.',
'invalid_code' => 'Two-factor code is invalid.',
'already_enrolled' => 'Votre appareil est déjà inscrit.',
'success' => 'Vous êtes bien connecté.',
'code_required' => 'Le code à deux facteurs est requis.',
'invalid_code' => 'Le code à deux facteurs est invalide.',
),
'signin' => array(
@@ -22,8 +22,8 @@ return array(
),
'logout' => array(
'error' => 'There was a problem while trying to log you out, please try again.',
'success' => 'You have successfully logged out.',
'error' => 'Il y a eu un problème en essayant de vous déconnecter, veuillez réessayer.',
'success' => 'Vous êtes déconnecté avec succès.',
),
'signup' => array(
@@ -33,7 +33,7 @@ return array(
'forgot-password' => array(
'error' => 'Un problème a eu lieu pendant la récupération du code de réinitialisation de mot de passe, veuillez essayer à nouveau.',
'success' => 'If that email address exists in our system, a password recovery email has been sent.',
'success' => 'Si cette adresse email existe dans notre système, un e-mail de récupération de mot de passe a été envoyé.',
),
'forgot-password-confirm' => array(
+1 -1
View File
@@ -13,5 +13,5 @@ return array(
'upload' => 'Uploader',
'select_file' => 'Sélectionner un fichier...',
'select_files' => 'Sélectionnez les fichiers ...',
'generate_labels' => '{1} Generate Label|[2,*] Generate Labels',
'generate_labels' => '{1} Générer une étiquette|[2,*] Générer des étiquettes',
);
+23 -23
View File
@@ -30,7 +30,7 @@
'bulkaudit' => 'Vérification en bloc',
'bulkaudit_status' => 'État de la vérification',
'bulk_checkout' => 'Attribution par lot',
'bystatus' => 'by Status',
'bystatus' => 'par statut',
'cancel' => 'Annuler',
'categories' => 'Catégories',
'category' => 'Сatégorie',
@@ -58,7 +58,7 @@
'created' => 'Élément créé',
'created_asset' => 'Actif créé',
'created_at' => 'Créé le',
'record_created' => 'Record Created',
'record_created' => 'Enregistrement créé',
'updated_at' => 'Mise à jour à',
'currency' => '€', // this is deprecated
'current' => 'Actuels',
@@ -89,23 +89,23 @@
'firstname_lastname_format' => 'Prénom Nom de famille (jane.smith@example.com)',
'firstname_lastname_underscore_format' => 'Prénom Nom (jane_smith@example.com)',
'lastnamefirstinitial_format' => 'Nom de famille Première lettre du prénom (smithj@example.com)',
'firstintial_dot_lastname_format' => 'First Initial Last Name (j.smith@example.com)',
'firstintial_dot_lastname_format' => 'Première lettre du prénom et nom de famille (j.smith@example.com)',
'first' => 'Premier',
'firstnamelastname' => 'Prénom et nom de famille (jane.smith@example.com)',
'lastname_firstinitial' => 'Nom de famille et première lettre du prénom (smith_j@example.com)',
'firstinitial.lastname' => 'Première lettre du prénom et nom de famille (j.smith@example.com)',
'firstnamelastinitial' => 'Prénom (janes@example.com)',
'first' => 'Premier',
'firstnamelastname' => 'Prénom et nom de famille (janesmith@example.com)',
'lastname_firstinitial' => 'Nom de famille et première lettre du prénom (smith_j@example.com)',
'firstinitial.lastname' => 'Première lettre du prénom et nom de famille (j.smith@example.com)',
'firstnamelastinitial' => 'Prénom (janes@example.com)',
'first' => 'Premier',
'firstnamelastname' => 'First Name Last Name (janesmith@example.com)',
'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)',
'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)',
'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)',
'first' => 'First',
'firstnamelastname' => 'First Name Last Name (janesmith@example.com)',
'lastname_firstinitial' => 'Last Name First Initial (smith_j@example.com)',
'firstinitial.lastname' => 'First Initial Last Name (j.smith@example.com)',
'firstnamelastinitial' => 'First Name Last Initial (janes@example.com)',
'first' => 'First',
'first_name' => 'Prénom',
'first_name_format' => 'Prénom (jane@example.com)',
'files' => 'Fichiers',
'file_name' => 'Fichier',
'file_type' => 'File Type',
'file_type' => 'Type de fichier',
'file_uploads' => 'Uploads de fichiers',
'generate' => 'Générer',
'github_markdown' => 'Ce champ accepte <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
@@ -125,7 +125,7 @@
'asset_maintenances' => 'Entretien d\'actifs',
'item' => 'Item',
'insufficient_permissions' => 'Autorisations insuffisantes !',
'kits' => 'Predefined Kits',
'kits' => 'Kits prédéfinis',
'language' => 'Langue',
'last' => 'Dernier',
'last_login' => 'Dernière connexion',
@@ -136,11 +136,11 @@
'licenses' => 'Licences',
'list_all' => 'Lister tout',
'loading' => 'Chargement',
'lock_passwords' => 'This field value will not be saved in a demo installation.',
'lock_passwords' => 'Ce champ ne sera pas sauvegardé dans une installation de démonstration.',
'feature_disabled' => 'Cette fonctionnalité a été désactivée pour l\'installation de démonstration.',
'location' => 'Lieu',
'locations' => 'Lieux',
'logo_size' => 'Square logos look best with Logo + Text. Logo maximum display size is 50px high x 500px wide. ',
'logo_size' => 'Les logos carrés sont mieux affichés avec l\'option Logo + Texte. La taille maximale d\'affichage du logo est de 50px de haut x 500px de large. ',
'logout' => 'Se déconnecter',
'lookup_by_tag' => 'Recherche par étiquette de bien',
'maintenances' => 'Maintenances',
@@ -202,7 +202,7 @@
'sign_in' => 'Connexion',
'signature' => 'Signature',
'skin' => 'Habillage',
'slack_test_msg' => 'Oh hai! Looks like your Slack integration with Snipe-IT is working!',
'slack_test_msg' => 'Woohoo ! On dirait que votre intégration Slack -> Snipe-IT fonctionne !',
'some_features_disabled' => 'MODE DEMO: Certaines fonctionnalités sont désactivées pour cette installation.',
'site_name' => 'Nom du Site',
'state' => 'État',
@@ -223,14 +223,14 @@
'unknown_admin' => 'Admin inconnu',
'username_format' => 'Format du nom d\'utilisateur',
'update' => 'Actualiser',
'upload_filetypes_help' => 'Allowed filetypes are png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf and rar. Max upload size allowed is :size.',
'upload_filetypes_help' => 'Les types de fichiers autorisés sont png, gif, jpg, jpeg, doc, docx, pdf, xls, xlsx, txt, lic, xml, zip, rtf et rar. La taille maximale autorisée est :size.',
'uploaded' => 'Téléversement réussi',
'user' => 'Utilisateur',
'accepted' => 'validé',
'declined' => 'refusé',
'unaccepted_asset_report' => 'Actifs refusés',
'users' => 'Utilisateurs',
'viewall' => 'View All',
'viewall' => 'Afficher tout',
'viewassets' => 'Voir les actifs associés',
'website' => 'Site web',
'welcome' => 'Bienvenue, :name',
@@ -239,7 +239,7 @@
'zip' => 'Code postal',
'noimage' => 'Aucune image envoyée ou aucune image trouvée.',
'token_expired' => 'La session de votre formulaire a expiré. Merci d\'essayer à nouveau.',
'login_enabled' => 'Login Enabled',
'audit_due' => 'Due for Audit',
'audit_overdue' => 'Overdue for Audit',
'login_enabled' => 'Connexion activée',
'audit_due' => 'Dû pour l\'audit',
'audit_overdue' => 'En retard pour l\'audit',
];
+5 -5
View File
@@ -13,15 +13,15 @@ return array(
|
*/
"more_info_title" => "More Info",
"more_info_title" => "Plus d'info",
"audit_help" => "Checking this box will edit the asset record to reflect this new location. Leaving it unchecked will simply note the location in the audit log.<br><br>Note that is this asset is checked out, it will not change the location of the person, asset or location it is checked out to.",
"audit_help" => "Cocher cette case va modifier l'enregistrement de la ressource pour refléter ce nouvel emplacement. Laisser décoché notera simplement l'emplacement dans le journal d'audit.<br><br>Notez que cette ressource est vérifiée, elle ne changera pas l'emplacement de la personne, de la ressource ou de l'emplacement où elle est vérifiée.",
'assets' => 'Assets are items tracked by serial number or asset tag. They tend to be higher value items where identifying a specific item matters.',
'assets' => 'Les actifs sont des éléments suivis par le numéro de série ou la balise d\'actif. Ils ont tendance à être des éléments de valeur plus élevée lorsque l\'identification d\'un élément spécifique importe.',
'categories' => 'Categories help you organize your items. Some example categories might be &quot;Desktops&quot;, &quot;Laptops&quot;, &quot;Mobile Phones&quot;, &quot;Tablets&quot;, and so on, but you can use categories any way that makes sense for you.',
'categories' => 'Les catégories vous aident à organiser vos articles. Des catégories d\'exemples peuvent être &quot;des ordinateurs de bureau&quot;, &quot;des ordinateurs portables&quot;, &quot;des téléphones mobiles&quot;, &quot;des tablettes&quot;, et ainsi de suite, mais vous pouvez librement utiliser des catégories qui ont du sens pour vous.',
'accessories' => 'Accessories are anything you issue to users but that do not have a serial number (or you do not care about tracking them uniquely). For example, computer mice or keyboards.',
'accessories' => 'Les accessoires sont tout ce que vous envoyez aux utilisateurs, mais qui n\'ont pas de numéro de série (ou vous n\'avez pas à les suivre de façon unique). Par exemple, souris ou claviers.',
'companies' => 'Companies can be used as a simple identifier field, or can be used to limit visibility of assets, users, etc if full company support is enabled in your Admin settings.',
+7 -7
View File
@@ -18,12 +18,12 @@ return array(
'click_to_confirm' => 'Veuillez cliquer sur le lien suivant pour confirmer votre :web account:',
'click_on_the_link_accessory' => 'Merci de cliquer sur le lien ci-dessous pour confirmer la bonne réception de l\'accessoire.',
'click_on_the_link_asset' => 'Cliquez sur le lien ci-dessous pour confirmer que vous avez reçu l\'actif.',
'Confirm_Asset_Checkin' => 'Asset checkin confirmation',
'Confirm_Accessory_Checkin' => 'Accessory checkin confirmation',
'Confirm_accessory_delivery' => 'Accessory delivery confirmation',
'Confirm_license_delivery' => 'License delivery confirmation',
'Confirm_asset_delivery' => 'Asset delivery confirmation',
'Confirm_consumable_delivery' => 'Consumable delivery confirmation',
'Confirm_Asset_Checkin' => 'Confirmation de l\'association du matériel',
'Confirm_Accessory_Checkin' => 'Confirmation de l\'association de l\'accessoire',
'Confirm_accessory_delivery' => 'Confirmation de la livraison de l\'accessoire',
'Confirm_license_delivery' => 'Confirmation de la livraison de licence',
'Confirm_asset_delivery' => 'Confirmation de la livraison du matériel',
'Confirm_consumable_delivery' => 'Confirmation de la livraison du consommable',
'current_QTY' => 'Quantité actuelle',
'Days' => 'Jours',
'days' => 'jours',
@@ -63,7 +63,7 @@ return array(
'license_expiring_alert' => 'Il y a :count licence expirant dans les prochains :threshold jours.|Il y a :count licences expirant dans les prochains :threshold jours.',
'to_reset' => 'Pour réinitialiser votre mot de passe :web, complétez ce formulaire:',
'type' => 'Type ',
'upcoming-audits' => 'There is :count asset that is coming up for audit within :threshold days.|There are :count assets that are coming up for audit within :threshold days.',
'upcoming-audits' => 'Il y a :count matériel à venir pour un audit dans les :threshold jours.|Il y a :count matériels à venir pour un audit dans les :threshold jours.',
'user' => 'Utilisateur',
'username' => 'Nom d\'utilisateur',
'welcome' => 'Bienvenue, :name',
+1 -1
View File
@@ -28,7 +28,7 @@ return array(
'confirm_purge_help' => 'Enter the text "DELETE" in the box below to purge your deleted records. This action cannot be undone and will PERMANENTLY delete all soft-deleted items and users. (You should make a backup first, just to be safe.)',
'custom_css' => 'CSS מותאם אישית',
'custom_css_help' => 'הזן כל דריסת CSS מותאמת אישית שבה תרצה להשתמש. אל תכלול את התגים &lt;style&gt;&lt;/style&gt;.',
'custom_forgot_pass_url' => 'Custom Password Reset URL',
'custom_forgot_pass_url' => 'כתובת איפוס ססמה בהתאמה אישית',
'custom_forgot_pass_url_help' => 'This replaces the built-in forgotten password URL on the login screen, useful to direct people to internal or hosted LDAP password reset functionality. It will effectively disable local user forgotten password functionality.',
'dashboard_message' => 'Dashboard Message',
'dashboard_message_help' => 'This text will appear on the dashboard for anyone with permission to view the dashboard.',
@@ -5,7 +5,7 @@ return array(
'archived' => 'בארכיון',
'create' => 'צור תווית סטטוס',
'color' => 'צבע תרשים',
'default_label' => 'Default Label',
'default_label' => 'תווית ברירת מחדל',
'default_label_help' => 'This is used to ensure your most commonly used status labels appear at the top of the select box when creating/editing assets.',
'deployable' => 'ניתן לפריסה',
'info' => 'תוויות סטטוס משמשות לתיאור המצבים השונים שהנכסים שלך יכולים להיות בהם. הם עשויים להיות מחוץ לתיקונים, לאיבוד / לגניבה וכו \'. ניתן ליצור תוויות סטטוס חדשות עבור נכסים הניתנים לפריסה, ממתינים ועומדים בארכיון.',
+1 -1
View File
@@ -2,7 +2,7 @@
return array(
'activated_help_text' => 'This user can login',
'activated_help_text' => 'משתמש זה יכול להיכנס',
'activated_disabled_help_text' => 'You cannot edit activation status for your own account.',
'assets_user' => 'נכסים שהוקצו ל: שם',
'bulk_update_warn' => 'אתה עומד לערוך את המאפיינים של: user_count משתמשים. שים לב שאינך יכול לשנות את תכונות המשתמש שלך באמצעות טופס זה, ועליך לבצע עריכה למשתמש שלך בנפרד.',
+5 -5
View File
@@ -105,7 +105,7 @@
'first_name_format' => 'שם פרטי (jane@example.com)',
'files' => 'קבצים',
'file_name' => 'קוֹבֶץ',
'file_type' => 'File Type',
'file_type' => 'סוג קובץ',
'file_uploads' => 'העלאות קבצים',
'generate' => 'לִיצוֹר',
'github_markdown' => 'This field accepts <a href="https://help.github.com/articles/github-flavored-markdown/">Github flavored markdown</a>.',
@@ -125,7 +125,7 @@
'asset_maintenances' => 'אחזקת נכסים',
'item' => 'פריט',
'insufficient_permissions' => 'הרשאות לא מספיקות!',
'kits' => 'Predefined Kits',
'kits' => 'ערכות מוגדרות מראש',
'language' => 'שפה',
'last' => 'אחרון',
'last_login' => 'כניסה אחרונה',
@@ -143,7 +143,7 @@
'logo_size' => 'Square logos look best with Logo + Text. Logo maximum display size is 50px high x 500px wide. ',
'logout' => 'להתנתק',
'lookup_by_tag' => 'בדיקה על ידי תג הנכס',
'maintenances' => 'Maintenances',
'maintenances' => 'אירועי תחזוקה',
'manufacturer' => 'יַצרָן',
'manufacturers' => 'היצרנים',
'markdown' => 'שדה זה מאפשר <a href="https://help.github.com/articles/github-flavored-markdown/">Github בטעם מרקדון </a>.',
@@ -201,8 +201,8 @@
'show_current' => 'Show Current',
'sign_in' => 'היכנס',
'signature' => 'חֲתִימָה',
'skin' => 'Skin',
'slack_test_msg' => 'Oh hai! Looks like your Slack integration with Snipe-IT is working!',
'skin' => 'ערכת עיצוב',
'slack_test_msg' => 'יאי! נראה שהשילוב של Slack עם Snipe-IT עובד!',
'some_features_disabled' => 'DEMO MODE: תכונות מסוימות מושבתות עבור התקנה זו.',
'site_name' => 'שם אתר',
'state' => 'מדינה',
+1 -1
View File
@@ -20,6 +20,6 @@ return array(
'title' => '資産 ',
'image' => '写真',
'days_without_acceptance' => '未受理期間',
'monthly_depreciation' => 'Monthly Depreciation'
'monthly_depreciation' => '毎月の減価償却費(減価償却費)'
);
+7 -7
View File
@@ -4,9 +4,9 @@ return array(
'ad' => 'Active Directory',
'ad_domain' => 'Active Directory ドメイン',
'ad_domain_help' => '通常はemailのドメイン名と同じです。ただし例外あり',
'ad_append_domain_label' => 'Append domain name',
'ad_append_domain' => 'Append domain name to username field',
'ad_append_domain_help' => 'User isn\'t required to write "username@domain.local", they can just type "username".' ,
'ad_append_domain_label' => 'ドメイン名を追加',
'ad_append_domain' => 'ユーザー名フィールドにドメイン名を追加',
'ad_append_domain_help' => 'ユーザーは "username@domain.local" を記述する必要はなく、"username" と入力するだけです。' ,
'admin_cc_email' => 'CC(カーボンコピー)メール 送信先',
'admin_cc_email_help' => 'ユーザーに送信されたチェックイン/チェックアウト メールのコピーを追加の電子メールアカウントに送信する場合は、ここにメールアドレスを入力します。必要が無ければ、このフィールドを空白にします',
'is_ad' => 'Active Directory サーバー',
@@ -25,7 +25,7 @@ return array(
'backups' => 'バックアップ',
'barcode_settings' => 'バーコード設定',
'confirm_purge' => 'パージを確定',
'confirm_purge_help' => 'Enter the text "DELETE" in the box below to purge your deleted records. This action cannot be undone and will PERMANENTLY delete all soft-deleted items and users. (You should make a backup first, just to be safe.)',
'confirm_purge_help' => '削除したレコードを削除するには、下のボックスに「DELETE」というテキストを入力します。 この操作は元に戻すことができず、ソフトで削除されたすべてのアイテムとユーザーは完全に削除されます。(安全のために最初にバックアップを行う必要があります。)',
'custom_css' => 'カスタム CSS:',
'custom_css_help' => '使用したいカスタムCSSを入力してください。&lt;style&gt;&lt;/style&gt; タグは含めないでください',
'custom_forgot_pass_url' => 'パスワードリセットURLを変更する',
@@ -41,7 +41,7 @@ return array(
'display_eol' => '表形式でEOLを表示',
'display_qr' => 'QRコードを表示',
'display_alt_barcode' => 'バーコードを表示',
'email_logo' => 'Email Logo',
'email_logo' => 'メールのロゴ',
'barcode_type' => '2次元バーコードタイプ',
'alt_barcode_type' => 'バーコードタイプ',
'email_logo_size' => 'Square logos in email look best. ',
@@ -119,8 +119,8 @@ return array(
'pwd_secure_uncommon_help' => '不正アクセス等でに報告された上位10,000個の共通パスワードを、ユーザーが使用できなくなります。',
'qr_help' => 'QRコードを有効化',
'qr_text' => 'QRコードテキスト',
'saml_enabled' => 'SAML enabled',
'saml_integration' => 'SAML Integration',
'saml_enabled' => 'SAMLを有効にする',
'saml_integration' => 'SAML 統合',
'saml_sp_entityid' => 'Entity ID',
'saml_sp_acs_url' => 'Assertion Consumer Service (ACS) URL',
'saml_sp_sls_url' => 'Single Logout Service (SLS) URL',
+1 -1
View File
@@ -19,7 +19,7 @@ return array(
'ldap_config_text' => 'LDAP 構成設定 管理者 > 設定。 選択した場所は、インポートされたすべてのユーザーに対して設定されます。',
'print_assigned' => '割り当て先をすべて印刷',
'software_user' => 'ソフトウェアは :name にチェックアウトしました。',
'send_email_help' => 'You must provide an email address for this user to send them credentials. Emailing credentials can only be done on user creation. Passwords are stored in a one-way hash and cannot be retrieved once saved.',
'send_email_help' => '資格情報を送信するには、このユーザーのメールアドレスを入力する必要があります。メール送信資格情報は、ユーザー作成時にのみ行うことができます。 パスワードは一方向のハッシュに保存され、保存されると取得できません。',
'view_user' => '利用者 :name を表示',
'usercsv' => 'CSVファイル',
'two_factor_admin_optin_help' => '現在の管理者設定では、2段階認証は任意です。 ',
+1 -1
View File
@@ -12,7 +12,7 @@ return array(
'insufficient_permissions' => '権限が不足しています。',
'user_deleted_warning' => '利用者が削除されました。これらを編集するにはユーザーを復旧するか、新しい資産を割り当てなければなりません。',
'ldap_not_configured' => 'LDAPの統合は、インストール時に設定されません。',
'password_resets_sent' => 'The selected users who are activated and have a valid email addresses have been sent a password reset link.',
'password_resets_sent' => '有効なメールアドレスを持っている選択されたユーザーにパスワードリセットのリンクが送信されました。',
'success' => array(
@@ -8,8 +8,8 @@ return array(
'create' => 'Accessoire aanmaken',
'edit' => 'Accessoire aanpassen',
'eula_text' => 'Categorie EULA',
'eula_text_help' => 'Dit veld staat aanpassingen toe voor de gebruikersovereenkomsten van verschillende goederen. Heeft u één overeenkomst voor alle goederen, vink dan het vakje hieronder aan om de standaard gebruikersovereenkomst te gebruiken.',
'require_acceptance' => 'Verplicht de gebruikers de overeenkomst te accepteren voor de goederen in deze catagorie.',
'eula_text_help' => 'Dit veld laat je toe om je gebruikersovereenkomsten aan te passen voor specifieke assets. Als je maar één gebruikersovereenkomst hebt voor al je assets, vink dan het vakje hieronder aan om de primaire standaard te gebruiken.',
'require_acceptance' => 'Verplicht gebruikers om de acceptatie van assets in deze categorie te bevestigen.',
'no_default_eula' => 'Geen standaard gebruikersovereenkomst gevonden. Voeg er één toe in Instellingen.',
'total' => 'Totaal',
'remaining' => 'Beschikbaar',
@@ -3,7 +3,7 @@
return array(
'does_not_exist' => 'Accessoire [:id] bestaat niet.',
'assoc_users' => 'Deze accessoire heeft op dit moment :count artikelen uitgecheckt aan gebruikers. Check alsjeblieft de accessoire in en probeer opnieuw. ',
'assoc_users' => 'Deze accessoire heeft op dit moment :count items uitgecheckt aan gebruikers. Check alsjeblieft de accessoire in en probeer opnieuw. ',
'create' => array(
'error' => 'Accessoire is niet gecreëerd, Probeer alsjeblieft opnieuw.',
@@ -24,13 +24,13 @@ return array(
'checkout' => array(
'error' => 'Accessoire is niet uitgecheckt, probeer alsjeblieft opnieuw',
'success' => 'Accessoire is succesvol uitgecheckt.',
'user_does_not_exist' => 'Die gebruiker is ongeldig. Probeer alsjeblieft opnieuw.'
'user_does_not_exist' => 'Deze gebruiker is ongeldig. Probeer het opnieuw.'
),
'checkin' => array(
'error' => 'Accessoire is niet ingecheckt. Probeer alsjeblieft opnieuw',
'success' => 'Accessoire succesvol ingecheckt.',
'user_does_not_exist' => 'Die gebruiker is ongeldig. Probeer alsjeblieft opnieuw.'
'user_does_not_exist' => 'Deze gebruiker is ongeldig. Probeer het opnieuw.'
)
@@ -1,10 +1,10 @@
<?php
return [
'asset_maintenances' => 'Materiaal onderhoud',
'edit' => 'Wijzig materiaal onderhoud',
'delete' => 'Verwijder materiaal onderhoud',
'view' => 'Toon materiaal onderhoud details',
'asset_maintenances' => 'Asset onderhoud',
'edit' => 'Asset onderhoud bewerken',
'delete' => 'Verwijder asset onderhoud',
'view' => 'Details asset onderhoud weergeven',
'repair' => 'Reparatie',
'maintenance' => 'Onderhoud',
'upgrade' => 'Upgrade',
@@ -1,19 +1,19 @@
<?php
return [
'not_found' => 'Materiaal onderhoud waar je naar zocht is niet gevonden!',
'not_found' => 'Asset onderhoud waar je naar op zoek bent is niet gevonden!',
'delete' => [
'confirm' => 'Weet je zeker dat je deze materiaal onderhoud wilt verwijderen?',
'error' => 'Er was een probleem met het verwijderen van deze materiaal onderhoud. Probeer het opnieuw.',
'success' => 'De materiaal onderhoud is met succes verwijderd.'
'confirm' => 'Weet je zeker dat je dit asset onderhoud wilt verwijderen?',
'error' => 'Er was een probleem tijdens het verwijderen van de asset onderhoud. Probeer het opnieuw.',
'success' => 'De asset onderhoud is succesvol verwijderd.'
],
'create' => [
'error' => 'Materiaal onderhoud is niet aangemaakt, probeer het opnieuw.',
'success' => 'Materiaal onderhoud is met succes aangemaakt.'
'error' => 'Asset onderhoud is niet aangemaakt, probeer het opnieuw.',
'success' => 'Asset onderhoud is met succes aangemaakt.'
],
'edit' => [
'error' => 'Materiaal onderhoud is niet aangepast, probeer het nogmaals.',
'success' => 'Materiaal onderhoud is met succes aangepast.'
'error' => 'Asset onderhoud is niet aangepast, probeer het opnieuw.',
'success' => 'Asset onderhoud is met succes aangepast.'
],
'asset_maintenance_incomplete' => 'Nog niet voltooid',
'warranty' => 'Garantie',
@@ -1,8 +1,8 @@
<?php
return [
'title' => 'Materiaal onderhoud',
'asset_name' => 'Objectnaam',
'title' => 'Asset onderhoud',
'asset_name' => 'Asset naam',
'is_warranty' => 'Garantie',
'dl_csv' => 'CSV downloaden'
];
@@ -1,7 +1,7 @@
<?php
return array(
'asset_categories' => 'Bezit Categorieën',
'asset_categories' => 'Asset Categorieën',
'category_name' => 'Categorie Naam',
'checkin_email' => 'Stuur een E-mail naar de gebruiker bij in- of uitchecken.',
'checkin_email_notification' => 'Deze gebruiker ontvangt een e-mail bij het in- of uitchecken.',
@@ -9,10 +9,10 @@ return array(
'create' => 'Categorie Aanmaken',
'edit' => 'Categorie bewerken',
'eula_text' => 'Categorie Gebruikersovereenkomst',
'eula_text_help' => 'Dit veld staat aanpassingen toe voor de gebruikersovereenkomsten van verschillende goederen. Heeft u één overeenkomst voor alle goederen, vink dan het vakje hieronder aan om de standaard gebruikersovereenkomst te gebruiken.',
'eula_text_help' => 'Dit veld staat aanpassingen toe voor de gebruikersovereenkomsten van verschillende assets. Heeft u één overeenkomst voor alle assets, vink dan het vakje hieronder aan om de standaard gebruikersovereenkomst te gebruiken.',
'name' => 'Categorie Naam',
'require_acceptance' => 'Verplicht de gebruikers de overeenkomst te accepteren voor de goederen in deze catagorie.',
'required_acceptance' => 'Deze gebruiker wordt gemaild met een link om de acceptatie van het artikel te verifiëren.',
'required_acceptance' => 'Deze gebruiker wordt gemaild met een link om de acceptatie van dit item te bevestigen.',
'required_eula' => 'De gebruiker krijgt een kopie van de gebruikersovereenkomst gemaild',
'no_default_eula' => 'Geen standaard gebruikersovereenkomst gevonden. Voeg er één toe in Instellingen.',
'update' => 'Categorie Bijwerken',
+1 -1
View File
@@ -5,6 +5,6 @@ return array(
'id' => 'ID',
'parent' => 'Bovenliggend',
'require_acceptance' => 'Acceptatie',
'title' => 'Materiaal Categorie Naam',
'title' => 'Asset categorie naam',
);
@@ -2,8 +2,8 @@
return array(
'component_name' => 'Component Naam',
'checkin' => 'Component binnenmelden',
'checkout' => 'Component uitleveren',
'checkin' => 'Checkin Component',
'checkout' => 'Component uitchecken',
'cost' => 'Aankoop prijs',
'create' => 'Component aanmaken',
'edit' => 'Component bewerken',
@@ -21,15 +21,15 @@ return array(
),
'checkout' => array(
'error' => 'Component is niet uitgeleverd, probeer het nogmaals.',
'success' => 'Component succesvol uitgeleverd.',
'user_does_not_exist' => 'De gebruiker is onbekend, probeer het nogmaals.'
'error' => 'Component is niet uitgecheckt, probeer het nogmaals',
'success' => 'Component succesvol uitgecheckt.',
'user_does_not_exist' => 'Deze gebruiker is ongeldig. Probeer het opnieuw.'
),
'checkin' => array(
'error' => 'Component is niet binnengemeld, probeer het nogmaals.',
'success' => 'Component succesvol binnengemeld.',
'user_does_not_exist' => 'De gebruiker is onbekend, probeer het nogmaals.'
'error' => 'Component is niet ingecheckt, probeer het nogmaals',
'success' => 'Component succesvol ingecheckt.',
'user_does_not_exist' => 'Deze gebruiker is ongeldig. Probeer het opnieuw.'
)
@@ -1,7 +1,7 @@
<?php
return array(
'checkout' => 'Verbruiksartikel uitleveren aan gebruiker',
'checkout' => 'Verbruiksartikel uitchecken aan gebruiker',
'consumable_name' => 'Verbruiksartikel naam',
'create' => 'Maak verbruiksartikel aan',
'item_no' => 'Item nr.',
@@ -23,13 +23,13 @@ return array(
'checkout' => array(
'error' => 'Verbruiksartikel is niet uitgecheckt, probeer het opnieuw',
'success' => 'Verbruiksartikel is met succes uitgecheckt.',
'user_does_not_exist' => 'Die gebruiker is ongeldig. Probeer het opnieuw.'
'user_does_not_exist' => 'Deze gebruiker is ongeldig. Probeer het opnieuw.'
),
'checkin' => array(
'error' => 'Verbruiksartikel is niet ingecheckt, probeer het opnieuw',
'success' => 'Verbruiksartikel is met succes ingecheckt.',
'user_does_not_exist' => 'Die gebruiker is ongeldig. Probeer het opnieuw.'
'user_does_not_exist' => 'Deze gebruiker is ongeldig. Probeer het opnieuw.'
)
@@ -4,7 +4,7 @@ return array(
'custom_fields' => 'Speciale velden',
'field' => 'Veld',
'about_fieldsets_title' => 'Over veldverzamelingen',
'about_fieldsets_text' => 'Veldverzamelingen laat jou groepen van aangepaste velden maken die vaak worden hergebruikt voor specifieke soorten eigendoms modellen.',
'about_fieldsets_text' => 'Veldverzamelingen stellen je in staat groepen van aangepaste velden te maken die vaak worden hergebruikt voor specifieke soorten asset modellen.',
'custom_format' => 'Aangepaste indeling...',
'encrypt_field' => 'Encrypt de waarde van dit veld in de database',
'encrypt_field_help' => 'Waarschuwing: Versleutelen van dit veld maakt het onmogelijk om hierop te zoeken.',
@@ -1,9 +1,9 @@
<?php
return array(
'about_asset_depreciations' => 'Over afschrijving van materiaal',
'about_depreciations' => 'U kan de materiaalafschrijving instellen om materiaal af te schrijven op basis van lineaire afschrijving.',
'asset_depreciations' => 'Materiaalafschrijvingen',
'about_asset_depreciations' => 'Over afschrijvingen van Asset',
'about_depreciations' => 'U kan de asset-afschrijving instellen om assets af te schrijven op basis van lineaire afschrijving.',
'asset_depreciations' => 'Asset afschrijvingen',
'create' => 'Afschrijving aanmaken',
'depreciation_name' => 'Afschrijvingsnaam',
'number_of_months' => 'Aantal maanden',

Some files were not shown because too many files have changed in this diff Show More