Brady Wetherington
95c30cae8d
Some duplicate imports at the top of the Settings file
2022-01-03 13:53:53 -08:00
Brady Wetherington
3c7f2e89ec
Merge branch 'develop' into remove_old_ldap
...
Had to re-do the composer install because the conflicts were too complicated.
2022-01-03 12:56:58 -08:00
snipe
398180dc59
Small merge unmagling
...
Signed-off-by: snipe <snipe@snipe.net>
2021-12-16 14:38:04 -08:00
snipe
c3d55ee27e
Merge master down into develop
...
Signed-off-by: snipe <snipe@snipe.net>
# Conflicts:
# .all-contributorsrc
# README.md
# app/Exceptions/Handler.php
# app/Http/Controllers/Api/AssetsController.php
# app/Http/Controllers/Api/SettingsController.php
# app/Http/Controllers/CustomFieldsController.php
# app/Http/Controllers/SettingsController.php
# app/Http/Transformers/AssetsTransformer.php
# app/Models/Setting.php
# config/version.php
# resources/lang/af/button.php
# resources/lang/ar/button.php
# resources/lang/bg/button.php
# resources/lang/cs/button.php
# resources/lang/cy/button.php
# resources/lang/da/button.php
# resources/lang/de/button.php
# resources/lang/el/button.php
# resources/lang/en-GB/button.php
# resources/lang/en-ID/button.php
# resources/lang/es-CO/admin/groups/message.php
# resources/lang/es-MX/button.php
# resources/lang/et/admin/custom_fields/general.php
# resources/lang/et/admin/hardware/table.php
# resources/lang/et/admin/kits/general.php
# resources/lang/et/admin/manufacturers/message.php
# resources/lang/et/admin/models/general.php
# resources/lang/et/admin/settings/general.php
# resources/lang/et/button.php
# resources/lang/et/mail.php
# resources/lang/fa/button.php
# resources/lang/fa/help.php
# resources/lang/fi/button.php
# resources/lang/fil/button.php
# resources/lang/fr/button.php
# resources/lang/ga-IE/button.php
# resources/lang/he/button.php
# resources/lang/hr/button.php
# resources/lang/hu/admin/settings/general.php
# resources/lang/hu/auth/message.php
# resources/lang/hu/button.php
# resources/lang/hu/mail.php
# resources/lang/id/admin/hardware/table.php
# resources/lang/id/button.php
# resources/lang/it/button.php
# resources/lang/iu/button.php
# resources/lang/ja/button.php
# resources/lang/ko/button.php
# resources/lang/lt/button.php
# resources/lang/lv/button.php
# resources/lang/mi/button.php
# resources/lang/mk/button.php
# resources/lang/ml-IN/button.php
# resources/lang/mn/button.php
# resources/lang/ms/admin/hardware/table.php
# resources/lang/ms/admin/kits/general.php
# resources/lang/ms/admin/models/general.php
# resources/lang/ms/admin/models/message.php
# resources/lang/ms/admin/settings/general.php
# resources/lang/ms/button.php
# resources/lang/nl/button.php
# resources/lang/no/admin/hardware/table.php
# resources/lang/no/admin/kits/general.php
# resources/lang/no/admin/settings/general.php
# resources/lang/no/auth/message.php
# resources/lang/no/button.php
# resources/lang/no/help.php
# resources/lang/no/mail.php
# resources/lang/pl/button.php
# resources/lang/pt-BR/button.php
# resources/lang/pt-PT/auth/message.php
# resources/lang/pt-PT/button.php
# resources/lang/pt-PT/mail.php
# resources/lang/ro/button.php
# resources/lang/ru/admin/settings/general.php
# resources/lang/ru/button.php
# resources/lang/ru/help.php
# resources/lang/sl/admin/custom_fields/general.php
# resources/lang/sl/admin/hardware/table.php
# resources/lang/sl/admin/kits/general.php
# resources/lang/sl/admin/manufacturers/message.php
# resources/lang/sl/admin/models/general.php
# resources/lang/sl/admin/settings/general.php
# resources/lang/sl/admin/users/general.php
# resources/lang/sl/auth/message.php
# resources/lang/sl/button.php
# resources/lang/sl/help.php
# resources/lang/sr-CS/button.php
# resources/lang/ta/button.php
# resources/lang/th/button.php
# resources/lang/th/mail.php
# resources/lang/tl/button.php
# resources/lang/tr/admin/settings/general.php
# resources/lang/tr/auth/message.php
# resources/lang/tr/button.php
# resources/lang/uk/button.php
# resources/lang/ur-PK/button.php
# resources/lang/vi/button.php
# resources/lang/zh-CN/button.php
# resources/lang/zh-HK/button.php
# resources/lang/zh-TW/admin/hardware/table.php
# resources/lang/zh-TW/button.php
# resources/lang/zu/button.php
# resources/views/models/custom_fields_form.blade.php
# resources/views/reports/custom.blade.php
# resources/views/settings/slack.blade.php
2021-12-16 14:26:24 -08:00
snipe
86afe6c4b1
Cleanup slack validation
...
Signed-off-by: snipe <snipe@snipe.net>
2021-12-08 18:03:56 -08:00
snipe
ff97b359ad
Removed form request on ajax, cleaned up some other things
...
Signed-off-by: snipe <snipe@snipe.net>
2021-12-08 17:58:46 -08:00
snipe
8c1cd87831
Added slacksettingsrequest as use statement
...
Signed-off-by: snipe <snipe@snipe.net>
2021-12-08 15:56:22 -08:00
snipe
ebdbc20740
Adds stricter validation for slack endpoints
...
Signed-off-by: snipe <snipe@snipe.net>
2021-12-06 11:40:24 -08:00
Brady Wetherington
b0417e5bd7
Finish pulling out the AdLdap2-based LDAP remnants that were still in the system
2021-11-03 15:22:06 -07:00
Brady Wetherington
4dda28de9e
WIP: cleaning up LDAP
2021-10-28 18:19:50 -07:00
Laravel Shift
934afa036f
Adopt Laravel coding style
...
Shift automatically applies the Laravel coding style - which uses the PSR-2 coding style as a base with some minor additions.
You may customize the adopted coding style by adding your own [PHP CS Fixer][1] `.php_cs` config file to your project root. Feel free to use [Shift's Laravel ruleset][2] to help you get started.
[1]: https://github.com/FriendsOfPHP/PHP-CS-Fixer
[2]: https://gist.github.com/laravel-shift/cab527923ed2a109dda047b97d53c200
2021-06-10 20:15:52 +00:00
snipe
8fd8e716ac
Changed debug level on bad LDAP connection ( #9314 )
...
* Changed debug level on bad LDAP connection
TODO:
Unfuck all of this. It’s a mess and it really doesn’t work the way we think it does. AdLdap library strikes again. :(
Signed-off-by: snipe <snipe@snipe.net>
* Improved phrasing
Signed-off-by: snipe <snipe@snipe.net>
2021-03-17 19:24:28 -07:00
Brady Wetherington
93cf8d4e0a
Forward-port of the old LDAP sync system ( #8801 )
...
* Forward-port of the old LDAP sync system
* Need to rename the class to avoid classname conflicts
* Make 'classic' LDAP sync not add surrounding parens to filters that already have them
* Re-work Test LDAP button to return 10 sample users
* Remove useless debugging code
2020-11-30 17:11:44 -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
c451fde466
Fixed exception namespace
2020-11-12 14:27:59 -08:00
snipe
0cd19c87bf
Added utility to delete barcode cache from labels/barcodes setting
2020-10-05 20:34:17 -07:00
snipe
ed3afd1e2e
Removed debugging
2020-09-15 23:19:52 -07:00
snipe
7736f12eb4
Switch to Guzzle for the Slack test
2020-09-15 23:05:27 -07:00
Brady Wetherington
f3f7d714a6
Fix ldap test button for php 7.4 (suppressing errors)
2020-09-09 14:18:05 -07:00
snipe
f66ce02756
Added debugging logs
...
Signed-off-by: snipe <snipe@snipe.net>
2020-04-23 22:46:02 -07:00
snipe
87464e6ec0
Merge branch 'develop' into integrations/2020-04-15-v5-merge
...
# Conflicts:
# README.md
# app/Http/Controllers/AccessoriesController.php
# app/Http/Controllers/Api/AssetsController.php
# app/Http/Controllers/Api/LicensesController.php
# app/Http/Controllers/Api/LocationsController.php
# app/Http/Controllers/Api/SettingsController.php
# app/Http/Controllers/Api/UsersController.php
# app/Http/Controllers/AssetModelsController.php
# app/Http/Controllers/Assets/AssetsController.php
# app/Http/Controllers/Auth/ForgotPasswordController.php
# app/Http/Controllers/CategoriesController.php
# app/Http/Controllers/CompaniesController.php
# app/Http/Controllers/ComponentsController.php
# app/Http/Controllers/ConsumablesController.php
# app/Http/Controllers/CustomFieldsetsController.php
# app/Http/Controllers/DepartmentsController.php
# app/Http/Controllers/LicensesController.php
# app/Http/Controllers/LocationsController.php
# app/Http/Controllers/ManufacturersController.php
# app/Http/Controllers/SettingsController.php
# app/Http/Controllers/SuppliersController.php
# app/Http/Controllers/UsersController.php
# app/Http/Requests/AssetRequest.php
# app/Http/Requests/ImageUploadRequest.php
# app/Models/LicenseSeat.php
# app/Models/Location.php
# app/Models/Setting.php
# composer.json
# composer.lock
# config/database.php
# config/version.php
# npm-shrinkwrap.json
# package.json
# public/css/AdminLTE.css
# public/css/AdminLTE.css.map
# public/css/overrides.css
# public/css/overrides.css.map
# public/css/skins/skin-blue-light.css
# public/css/skins/skin-blue.css
# public/css/skins/skin-green-dark.min.css
# public/js/app.js
# public/js/bootstrap-table.js
# public/js/bootstrap/js/bootstrap.js
# public/js/bootstrap/js/bootstrap.min.js
# public/js/build/all.js
# public/js/build/vue.js
# public/js/build/vue.js.map
# public/js/demo.js
# public/js/ekko-lightbox.js
# public/js/ekko-lightbox.min.js
# public/js/extensions/export/bootstrap-table-export.js
# public/js/extensions/multiple-sort/bootstrap-table-multiple-sort.js
# public/js/extensions/multiple-sort/bootstrap-table-multiple-sort.min.js
# public/js/extensions/toolbar/bootstrap-table-toolbar.min.js
# public/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js
# public/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js
# public/js/plugins/timepicker/bootstrap-timepicker.js
# public/js/plugins/timepicker/bootstrap-timepicker.min.js
# public/js/vue.js
# public/mix-manifest.json
# resources/assets/js/bootstrap-js.js
# resources/assets/js/bootstrap.min.js
# resources/assets/js/ekko-lightbox.js
# resources/assets/js/ekko-lightbox.min.js
# resources/assets/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.js
# resources/assets/js/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js
# resources/assets/js/plugins/chartjs/Chart.js
# resources/assets/js/plugins/timepicker/bootstrap-timepicker.js
# resources/assets/js/plugins/timepicker/bootstrap-timepicker.min.js
# resources/assets/less/AdminLTE.less
# resources/assets/less/overrides.less
# resources/assets/less/skins/_all-skins.less
# resources/assets/less/skins/skin-black.less
# resources/assets/less/skins/skin-blue.less
# resources/assets/less/skins/skin-green.less
# resources/assets/less/skins/skin-purple.less
# resources/assets/less/skins/skin-red.less
# resources/assets/less/skins/skin-yellow.less
# resources/assets/less/variables.less
# resources/js/components/importer/importer-file.vue
# resources/lang/en/auth/message.php
# resources/lang/en/passwords.php
# resources/lang/es-CO/general.php
# resources/lang/es-ES/general.php
# resources/lang/es-VE/general.php
# resources/less/skins/skin-black-dark.less
# resources/less/skins/skin-blue-dark.less
# resources/less/skins/skin-contrast.less
# resources/less/skins/skin-green-dark.less
# resources/less/skins/skin-orange-dark.less
# resources/less/skins/skin-orange.less
# resources/less/skins/skin-purple-dark.less
# resources/less/skins/skin-red-dark.less
# resources/less/skins/skin-yellow-dark.less
# resources/views/accessories/checkin.blade.php
# resources/views/accessories/checkout.blade.php
# resources/views/accessories/edit.blade.php
# resources/views/account/profile.blade.php
# resources/views/account/view-assets.blade.php
# resources/views/asset_maintenances/edit.blade.php
# resources/views/auth/passwords/email.blade.php
# resources/views/auth/passwords/reset.blade.php
# resources/views/categories/edit.blade.php
# resources/views/companies/edit.blade.php
# resources/views/components/checkin.blade.php
# resources/views/components/checkout.blade.php
# resources/views/components/edit.blade.php
# resources/views/consumables/checkout.blade.php
# resources/views/consumables/edit.blade.php
# resources/views/custom_fields/fields/edit.blade.php
# resources/views/custom_fields/fieldsets/edit.blade.php
# resources/views/dashboard.blade.php
# resources/views/departments/edit.blade.php
# resources/views/groups/edit.blade.php
# resources/views/hardware/audit.blade.php
# resources/views/hardware/bulk-checkout.blade.php
# resources/views/hardware/bulk.blade.php
# resources/views/hardware/checkin.blade.php
# resources/views/hardware/checkout.blade.php
# resources/views/hardware/edit.blade.php
# resources/views/hardware/index.blade.php
# resources/views/hardware/quickscan.blade.php
# resources/views/hardware/view.blade.php
# resources/views/importer/import.blade.php
# resources/views/layouts/basic.blade.php
# resources/views/layouts/default.blade.php
# resources/views/layouts/edit-form.blade.php
# resources/views/licenses/checkin.blade.php
# resources/views/licenses/checkout.blade.php
# resources/views/licenses/edit.blade.php
# resources/views/locations/edit.blade.php
# resources/views/manufacturers/edit.blade.php
# resources/views/modals/upload-file.blade.php
# resources/views/models/bulk-edit.blade.php
# resources/views/models/custom_fields_form.blade.php
# resources/views/models/edit.blade.php
# resources/views/partials/bootstrap-table.blade.php
# resources/views/partials/forms/edit/address.blade.php
# resources/views/partials/forms/edit/asset-select.blade.php
# resources/views/partials/forms/edit/category-select.blade.php
# resources/views/partials/forms/edit/category.blade.php
# resources/views/partials/forms/edit/company-select.blade.php
# resources/views/partials/forms/edit/company.blade.php
# resources/views/partials/forms/edit/department-select.blade.php
# resources/views/partials/forms/edit/depreciation.blade.php
# resources/views/partials/forms/edit/email.blade.php
# resources/views/partials/forms/edit/image-upload.blade.php
# resources/views/partials/forms/edit/item_number.blade.php
# resources/views/partials/forms/edit/location-profile-select.blade.php
# resources/views/partials/forms/edit/location-select.blade.php
# resources/views/partials/forms/edit/location.blade.php
# resources/views/partials/forms/edit/maintenance_type.blade.php
# resources/views/partials/forms/edit/manufacturer-select.blade.php
# resources/views/partials/forms/edit/manufacturer.blade.php
# resources/views/partials/forms/edit/minimum_quantity.blade.php
# resources/views/partials/forms/edit/model-select.blade.php
# resources/views/partials/forms/edit/model_number.blade.php
# resources/views/partials/forms/edit/name.blade.php
# resources/views/partials/forms/edit/notes.blade.php
# resources/views/partials/forms/edit/order_number.blade.php
# resources/views/partials/forms/edit/phone.blade.php
# resources/views/partials/forms/edit/purchase_cost.blade.php
# resources/views/partials/forms/edit/purchase_date.blade.php
# resources/views/partials/forms/edit/quantity.blade.php
# resources/views/partials/forms/edit/serial.blade.php
# resources/views/partials/forms/edit/status.blade.php
# resources/views/partials/forms/edit/submit.blade.php
# resources/views/partials/forms/edit/supplier-select.blade.php
# resources/views/partials/forms/edit/supplier.blade.php
# resources/views/partials/forms/edit/user-select.blade.php
# resources/views/reports/custom.blade.php
# resources/views/settings/alerts.blade.php
# resources/views/settings/asset_tags.blade.php
# resources/views/settings/barcodes.blade.php
# resources/views/settings/branding.blade.php
# resources/views/settings/general.blade.php
# resources/views/settings/labels.blade.php
# resources/views/settings/ldap.blade.php
# resources/views/settings/localization.blade.php
# resources/views/settings/security.blade.php
# resources/views/setup/user.blade.php
# resources/views/suppliers/edit.blade.php
# resources/views/users/bulk-edit.blade.php
# resources/views/users/edit.blade.php
# resources/views/users/ldap.blade.php
# resources/views/users/print.blade.php
# resources/views/users/view.blade.php
# routes/api.php
# routes/web/hardware.php
# webpack.mix.js
2020-04-20 23:20:34 -07:00
snipe
f8a72db696
Changed LDAP 600 to 500, clearer error messages on LDAP test
2020-04-09 09:55:44 -07:00
snipe
704c696711
Fixed parse error in settings controller
2019-12-04 14:54:36 -08:00
snipe
5290c47e2a
Merge branch 'develop' into v5-master-develop-integration
...
# Conflicts:
# .env.example
# .travis.yml
# Dockerfile
# README.md
# app/Console/Commands/LdapSync.php
# app/Console/Kernel.php
# app/Http/Controllers/AccessoriesController.php
# app/Http/Controllers/Api/AccessoriesController.php
# app/Http/Controllers/Api/AssetsController.php
# app/Http/Controllers/Api/LocationsController.php
# app/Http/Controllers/Api/SettingsController.php
# app/Http/Controllers/Api/UsersController.php
# app/Http/Controllers/AssetModelsController.php
# app/Http/Controllers/Assets/AssetFilesController.php
# app/Http/Controllers/Assets/AssetsController.php
# app/Http/Controllers/CategoriesController.php
# app/Http/Controllers/CompaniesController.php
# app/Http/Controllers/ComponentsController.php
# app/Http/Controllers/ConsumablesController.php
# app/Http/Controllers/DepartmentsController.php
# app/Http/Controllers/LicensesController.php
# app/Http/Controllers/LocationsController.php
# app/Http/Controllers/ManufacturersController.php
# app/Http/Controllers/ReportsController.php
# app/Http/Controllers/SettingsController.php
# app/Http/Controllers/SuppliersController.php
# app/Http/Controllers/UsersController.php
# app/Http/Middleware/EncryptCookies.php
# app/Http/Requests/AssetRequest.php
# app/Http/Transformers/AssetMaintenancesTransformer.php
# app/Importer/AssetImporter.php
# app/Models/AssetMaintenance.php
# app/Models/Location.php
# app/Models/User.php
# composer.json
# composer.lock
# config/backup.php
# config/database.php
# config/version.php
# public/mix-manifest.json
# resources/lang/en-ID/general.php
# resources/lang/vi/admin/settings/general.php
# resources/views/accessories/edit.blade.php
# resources/views/hardware/view.blade.php
# resources/views/layouts/default.blade.php
# tests/api/ApiCategoriesCest.php
2019-11-18 19:49:39 -08:00
snipe
984c2a8fd4
Better log message for bad LDAP connection
2019-07-15 14:10:57 -07:00
Martin Meredith
e3e0d57f56
Minor code cleanup bits and bobs ( #6805 )
...
* Add IDE Helper files
* Cleanup imports
- Alphabetises imports
- Removes unused imports
* Add Platform requirements
* Move filling asset into block where asset exists
* Remove duplicate array keys
2019-03-13 20:12:03 -07:00
Steffen
1de9087427
LDAP fixes ( #6533 )
...
* Add iCheck png files to webpack config (inconsistency for css <> png) and blue.png to public folder
* php 7.3 collect() fix (undefined variable)
* Fix travis ci
* Add iCheck png files to webpack config (inconsistency for css <> png) and blue.png to public folder
* php 7.3 collect() fix (undefined variable)
* change LDAP implementation from model to (singleton) service
* Re-apply check for content in ldap_server variable before parsing
* Update LDAP implementation
* Switch iCheck to minimal as referenced in js
* Don't init on load but on first access via init (returns ldap enabled status)
* Re-Enable notifications
* Re-add missing test target php versions
* Only init() once (singleton class, so ldap variable is already set)
2019-01-10 13:20:43 -08:00
Wes Hulette
34246ee4ef
[WIP] v5 Develop: New LDAP implementation ( #6352 )
...
* Fixed missing oauth tables during setup.
* WIP New LDAP implementation
* WIP New LDAP implementation
* WIP New LDAP implementation
Merge remote-tracking branch 'origin/WIP_LDAP' into WIP_LDAP
* WIP New LDAP implementation
Added Adldap2 to handle ldap intergration.
* Updated per PR quality review
* Added specific LDAP settings method
* Corrected version number
* Added return documentation
* Added imports
* Changed class to be injected into controller
* Updated with PR suggestions
2018-12-06 14:05:43 -08:00
snipe
694166862e
Added attempted logins admin screen ( #6018 )
...
* Added attempted logins admin screen
* Smaller table spacing
2018-08-01 03:51:59 -07:00
snipe
8a6713d5c0
WIP - Improved requested assets ( #5289 )
...
* WIP - beginning of improved requested assets
- Use Ajax tables for faster loading
- Use new notifications for requesting an asset
TODO:
- Use ajax tables for requestable asset models
- Use new notifications for canceling an asset request
- Expire requests once the asset has been checked out to the requesting user
* Only show asset name in email if it has one
* Refactor requested method to only include non-canceled requests
* Refactored requestable assets to log request and cancelation
* Added softdeletes on checkout requests
* Differentiate between canceling and deleting requests
* Added asset request cancelation notification
* Added timestamps and corrected unique key on requests table
* Improved requests view
* Re-use blade for cancel/request email
* Refactored BS table formatter for requested assets
* Location name min reduced to 2
* Added PAT test as maintenance option
This needs to be refactored into database-driven options with a UI
* Better slack message
* Added getImageUrl method for assets
* Include qty in request notifications
TODO:
- Try to pull requested info from original request for cancelation, otherwise it will default to 1
* Removed old asset request/cancel emails
* Added user profile asset request routes
* Added profile controller requested assets method
* Added blade link to requested assets for profile view
* Sort user history desc
* Added requested assets blade
* Added canceled at to checkoutRequest method
* Include qty in request
* Fixed comment, removed allowed_columns
* Removed Queable methods, since we don’t use a queue
* Fixed return type in method doc
* Fixed version number
* Changed id to user_id for clarity
2018-04-04 17:33:02 -07:00
fordster78
4e0c8e218d
New Test Notification ( #5137 )
...
Created Test Notification.
Updated Vendor Mail message.blade files.
Updated api settings controller to use Notification Façade.
2018-03-02 18:01:20 -08:00
snipe
e3144c3093
Added Slack test button
2018-02-22 16:35:34 -08:00
snipe
b3b8ab493e
Switch to the reply_to address
2017-11-03 14:58:49 -07:00
snipe
f2d04be8fe
Remove unused methods in Settings API controller (for now)
2017-10-26 22:35:01 -07:00
snipe
7153013fb0
Fake sending the test email if the app is in demo mode
2017-10-19 08:33:46 -07:00
snipe
cd193ce8bb
Fixes #4036 - adds test email button to general settings
2017-10-19 08:18:56 -07:00
snipe
45c2af80a3
More LDAP testing US refinements
2017-10-16 09:00:51 -07:00
snipe
1fbf3753bc
More small LDAP test improvements
2017-10-16 07:07:21 -07:00
snipe
bcf435f625
Try for better error reporting on LDAP fail
...
Sorry for all the commits on this - my local LDAP isn’t working and I can’t figure out why, so no easy way to test locally
2017-10-16 06:46:33 -07:00
snipe
b107280b7b
Slightly nicer UI for LDAP login test
2017-10-16 06:39:36 -07:00
snipe
f1a6926ad9
LDAP test login
2017-10-16 06:34:04 -07:00
snipe
ba7b9d8168
Removed stray foo
2017-10-16 05:54:33 -07:00
snipe
59a126c47c
Small tweaks to LDAP test
2017-10-16 05:52:18 -07:00
snipe
ab2b2f3043
Updated UI for Admin Settings
2017-07-07 23:44:48 -07:00
snipe
b11a951e95
Starter API controllers
2017-01-12 19:40:20 -08:00