Merge remote-tracking branch 'origin/develop'
This commit is contained in:
@@ -68,6 +68,7 @@ class LicenseImporter extends ItemImporter
|
||||
$this->item['order_number'] = trim($this->findCsvMatch($row, 'order_number'));
|
||||
$this->item['reassignable'] = trim($this->findCsvMatch($row, 'reassignable'));
|
||||
$this->item['manufacturer'] = $this->createOrFetchManufacturer(trim($this->findCsvMatch($row, 'manufacturer')));
|
||||
$this->item['min_amt'] = trim($this->findCsvMatch($row, 'min_amt'));
|
||||
|
||||
if($this->item['reassignable'] == "")
|
||||
{
|
||||
|
||||
@@ -177,43 +177,43 @@ class Importer extends Component
|
||||
* These are the item-type specific columns
|
||||
*/
|
||||
$this->accessories_fields = [
|
||||
'category' => trans('general.category'),
|
||||
'company' => trans('general.company'),
|
||||
'location' => trans('general.location'),
|
||||
'quantity' => trans('general.qty'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.accessory')]),
|
||||
'location' => trans('general.location'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'min_amt' => trans('mail.min_QTY'),
|
||||
'model_number' => trans('general.model_no'),
|
||||
'notes' => trans('general.notes'),
|
||||
'category' => trans('general.category'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
'min_amt' => trans('mail.min_QTY'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'purchase_cost' => trans('general.purchase_cost'),
|
||||
'purchase_date' => trans('general.purchase_date'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'quantity' => trans('general.qty'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
];
|
||||
|
||||
$this->assets_fields = [
|
||||
'company' => trans('general.company'),
|
||||
'location' => trans('general.location'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.asset')]),
|
||||
'asset_tag' => trans('general.asset_tag'),
|
||||
'asset_eol_date' => trans('admin/hardware/form.eol_date'),
|
||||
'asset_model' => trans('general.model_name'),
|
||||
'asset_notes' => trans('general.item_notes', ['item' => trans('admin/hardware/general.asset')]),
|
||||
'asset_tag' => trans('general.asset_tag'),
|
||||
'byod' => trans('general.byod'),
|
||||
'model_number' => trans('general.model_no'),
|
||||
'status' => trans('general.status'),
|
||||
'warranty_months' => trans('admin/hardware/form.warranty'),
|
||||
'category' => trans('general.category'),
|
||||
'requestable' => trans('admin/hardware/general.requestable'),
|
||||
'serial' => trans('general.serial_number'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
'company' => trans('general.company'),
|
||||
'image' => trans('general.importer.image_filename'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.asset')]),
|
||||
'location' => trans('general.location'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'model_notes' => trans('general.item_notes', ['item' => trans('admin/hardware/form.model')]),
|
||||
'model_number' => trans('general.model_no'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'purchase_cost' => trans('general.purchase_cost'),
|
||||
'purchase_date' => trans('general.purchase_date'),
|
||||
'asset_notes' => trans('general.item_notes', ['item' => trans('admin/hardware/general.asset')]),
|
||||
'model_notes' => trans('general.item_notes', ['item' => trans('admin/hardware/form.model')]),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'image' => trans('general.importer.image_filename'),
|
||||
'asset_eol_date' => trans('admin/hardware/form.eol_date'),
|
||||
'requestable' => trans('admin/hardware/general.requestable'),
|
||||
'serial' => trans('general.serial_number'),
|
||||
'status' => trans('general.status'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
'warranty_months' => trans('admin/hardware/form.warranty'),
|
||||
/**
|
||||
* Checkout fields:
|
||||
* Assets can be checked out to other assets, people, or locations, but we currently
|
||||
@@ -238,122 +238,124 @@ class Importer extends Component
|
||||
];
|
||||
|
||||
$this->consumables_fields = [
|
||||
'category' => trans('general.category'),
|
||||
'checkout_class' => trans('general.importer.checkout_type'),
|
||||
'company' => trans('general.company'),
|
||||
'location' => trans('general.location'),
|
||||
'quantity' => trans('general.qty'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.consumable')]),
|
||||
'item_no' => trans('admin/consumables/general.item_no'),
|
||||
'location' => trans('general.location'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'min_amt' => trans('general.min_amt'),
|
||||
'model_number' => trans('general.model_no'),
|
||||
'notes' => trans('general.notes'),
|
||||
'min_amt' => trans('mail.min_QTY'),
|
||||
'category' => trans('general.category'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'purchase_cost' => trans('general.purchase_cost'),
|
||||
'purchase_date' => trans('general.purchase_date'),
|
||||
'checkout_class' => trans('general.importer.checkout_type'),
|
||||
'quantity' => trans('general.qty'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'item_no' => trans('admin/consumables/general.item_no'),
|
||||
];
|
||||
|
||||
$this->components_fields = [
|
||||
'category' => trans('general.category'),
|
||||
'company' => trans('general.company'),
|
||||
'location' => trans('general.location'),
|
||||
'quantity' => trans('general.qty'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.component')]),
|
||||
'location' => trans('general.location'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'min_amt' => trans('mail.min_QTY'),
|
||||
'model_number' => trans('general.model_no'),
|
||||
'notes' => trans('general.notes'),
|
||||
'category' => trans('general.category'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
'min_amt' => trans('mail.min_QTY'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'purchase_cost' => trans('general.purchase_cost'),
|
||||
'purchase_date' => trans('general.purchase_date'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'quantity' => trans('general.qty'),
|
||||
'serial' => trans('general.serial_number'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
];
|
||||
|
||||
$this->licenses_fields = [
|
||||
'company' => trans('general.company'),
|
||||
'location' => trans('general.location'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.license')]),
|
||||
'asset_tag' => trans('general.importer.checked_out_to_tag'),
|
||||
'category' => trans('general.category'),
|
||||
'checkout_class' => trans('general.importer.checkout_type'),
|
||||
'company' => trans('general.company'),
|
||||
'email' => trans('general.importer.checked_out_to_email'),
|
||||
'expiration_date' => trans('admin/licenses/form.expiration'),
|
||||
'full_name' => trans('general.importer.checked_out_to_fullname'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.license')]),
|
||||
'license_email' => trans('admin/licenses/form.to_email'),
|
||||
'license_name' => trans('admin/licenses/form.to_name'),
|
||||
'purchase_order' => trans('admin/licenses/form.purchase_order'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'reassignable' => trans('admin/licenses/form.reassignable'),
|
||||
'seats' => trans('admin/licenses/form.seats'),
|
||||
'location' => trans('general.location'),
|
||||
'maintained' => trans('admin/licenses/form.maintained'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'min_amt' => trans('general.min_amt'),
|
||||
'notes' => trans('general.notes'),
|
||||
'category' => trans('general.category'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
'order_number' => trans('general.order_number'),
|
||||
'purchase_cost' => trans('general.purchase_cost'),
|
||||
'purchase_date' => trans('general.purchase_date'),
|
||||
'maintained' => trans('admin/licenses/form.maintained'),
|
||||
'checkout_class' => trans('general.importer.checkout_type'),
|
||||
'purchase_order' => trans('admin/licenses/form.purchase_order'),
|
||||
'reassignable' => trans('admin/licenses/form.reassignable'),
|
||||
'seats' => trans('admin/licenses/form.seats'),
|
||||
'serial' => trans('general.license_serial'),
|
||||
'email' => trans('general.importer.checked_out_to_email'),
|
||||
'supplier' => trans('general.supplier'),
|
||||
'termination_date' => trans('admin/licenses/form.termination_date'),
|
||||
'username' => trans('general.importer.checked_out_to_username'),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
];
|
||||
|
||||
$this->users_fields = [
|
||||
'id' => trans('general.id'),
|
||||
'company' => trans('general.company'),
|
||||
'location' => trans('general.location'),
|
||||
'department' => trans('general.department'),
|
||||
'first_name' => trans('general.first_name'),
|
||||
'last_name' => trans('general.last_name'),
|
||||
'notes' => trans('general.notes'),
|
||||
'username' => trans('admin/users/table.username'),
|
||||
'jobtitle' => trans('admin/users/table.title'),
|
||||
'phone_number' => trans('admin/users/table.phone'),
|
||||
'manager_first_name' => trans('general.importer.manager_first_name'),
|
||||
'manager_last_name' => trans('general.importer.manager_last_name'),
|
||||
'activated' => trans('general.activated'),
|
||||
'address' => trans('general.address'),
|
||||
'city' => trans('general.city'),
|
||||
'state' => trans('general.state'),
|
||||
'country' => trans('general.country'),
|
||||
'zip' => trans('general.zip'),
|
||||
'vip' => trans('general.importer.vip'),
|
||||
'remote' => trans('admin/users/general.remote'),
|
||||
'email' => trans('admin/users/table.email'),
|
||||
'website' => trans('general.website'),
|
||||
'avatar' => trans('general.image'),
|
||||
'gravatar' => trans('general.importer.gravatar'),
|
||||
'start_date' => trans('general.start_date'),
|
||||
'end_date' => trans('general.end_date'),
|
||||
'city' => trans('general.city'),
|
||||
'company' => trans('general.company'),
|
||||
'country' => trans('general.country'),
|
||||
'department' => trans('general.department'),
|
||||
'email' => trans('admin/users/table.email'),
|
||||
'employee_num' => trans('general.employee_number'),
|
||||
'end_date' => trans('general.end_date'),
|
||||
'first_name' => trans('general.first_name'),
|
||||
'gravatar' => trans('general.importer.gravatar'),
|
||||
'jobtitle' => trans('admin/users/table.title'),
|
||||
'last_name' => trans('general.last_name'),
|
||||
'location' => trans('general.location'),
|
||||
'manager_first_name' => trans('general.importer.manager_first_name'),
|
||||
'manager_last_name' => trans('general.importer.manager_last_name'),
|
||||
'notes' => trans('general.notes'),
|
||||
'phone_number' => trans('admin/users/table.phone'),
|
||||
'remote' => trans('admin/users/general.remote'),
|
||||
'start_date' => trans('general.start_date'),
|
||||
'state' => trans('general.state'),
|
||||
'username' => trans('admin/users/table.username'),
|
||||
'vip' => trans('general.importer.vip'),
|
||||
'website' => trans('general.website'),
|
||||
'zip' => trans('general.zip'),
|
||||
];
|
||||
|
||||
$this->locations_fields = [
|
||||
'id' => trans('general.id'),
|
||||
'name' => trans('general.item_name_var', ['item' => trans('general.location')]),
|
||||
'address' => trans('general.address'),
|
||||
'address2' => trans('general.importer.address2'),
|
||||
'city' => trans('general.city'),
|
||||
'state' => trans('general.state'),
|
||||
'country' => trans('general.country'),
|
||||
'zip' => trans('general.zip'),
|
||||
'currency' => trans('general.importer.currency'),
|
||||
'ldap_ou' => trans('admin/locations/table.ldap_ou'),
|
||||
'manager_username' => trans('general.importer.manager_username'),
|
||||
'manager' => trans('general.importer.manager_full_name'),
|
||||
'parent_location' => trans('admin/locations/table.parent'),
|
||||
'manager_username' => trans('general.importer.manager_username'),
|
||||
'name' => trans('general.item_name_var', ['item' => trans('general.location')]),
|
||||
'notes' => trans('general.notes'),
|
||||
'parent_location' => trans('admin/locations/table.parent'),
|
||||
'state' => trans('general.state'),
|
||||
'zip' => trans('general.zip'),
|
||||
];
|
||||
|
||||
$this->assetmodels_fields = [
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.asset_model')]),
|
||||
'category' => trans('general.category'),
|
||||
'eol' => trans('general.eol'),
|
||||
'fieldset' => trans('admin/models/general.fieldset'),
|
||||
'item_name' => trans('general.item_name_var', ['item' => trans('general.asset_model')]),
|
||||
'manufacturer' => trans('general.manufacturer'),
|
||||
'min_amt' => trans('mail.min_QTY'),
|
||||
'model_number' => trans('general.model_no'),
|
||||
'notes' => trans('general.item_notes', ['item' => trans('admin/hardware/form.model')]),
|
||||
'min_amt' => trans('mail.min_QTY'),
|
||||
'fieldset' => trans('admin/models/general.fieldset'),
|
||||
'eol' => trans('general.eol'),
|
||||
'requestable' => trans('admin/models/general.requestable'),
|
||||
|
||||
];
|
||||
|
||||
45
snipeit.sh
45
snipeit.sh
@@ -18,8 +18,9 @@
|
||||
# Updated Snipe-IT Install Script #
|
||||
# Update created by Aaron Myers #
|
||||
# Change log #
|
||||
# * add support for linux mint 22.1 #
|
||||
# * add support for php8.2, awslinux2, alma 8/9 #
|
||||
# * fix rocky8/9 support
|
||||
# * fix rocky8/9 support #
|
||||
# * remove Fedora support because short timelines #
|
||||
# * Added support for CentOS/Rocky 9 #
|
||||
# * Fixed CentOS 7 repository for PHP 7.4 #
|
||||
@@ -347,6 +348,12 @@ case $distro in
|
||||
apache_group=www-data
|
||||
apachefile=/etc/apache2/sites-available/$APP_NAME.conf
|
||||
;;
|
||||
*linuxmint*)
|
||||
echo " The installer has detected $distro version $version codename $codename."
|
||||
distro=Ubuntu
|
||||
apache_group=www-data
|
||||
apachefile=/etc/apache2/sites-available/$APP_NAME.conf
|
||||
;;
|
||||
*raspbian*)
|
||||
echo " The installer has detected $distro version $version codename $codename."
|
||||
distro=Raspbian
|
||||
@@ -564,6 +571,42 @@ case $distro in
|
||||
echo "* Restarting Apache httpd."
|
||||
log "systemctl restart apache2"
|
||||
|
||||
echo "* Clearing cache and setting final permissions."
|
||||
chmod 777 -R $APP_PATH/storage/framework/cache/
|
||||
log "run_as_app_user php $APP_PATH/artisan cache:clear"
|
||||
chmod 775 -R $APP_PATH/storage/
|
||||
elif [ "${version//./}" -eq "221" ]; then
|
||||
# Install for Linux Mint 22.1
|
||||
set_fqdn
|
||||
set_dbpass
|
||||
tzone=$(cat /etc/timezone)
|
||||
|
||||
echo -n "* Updating installed packages."
|
||||
log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$!
|
||||
progress
|
||||
|
||||
echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
|
||||
PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php8.3 php8.3 php8.3-curl php8.3-mysql php8.3-gd php8.3-ldap php8.3-zip php8.3-mbstring php8.3-xml php8.3-bcmath php8.3-cli curl git unzip"
|
||||
install_packages
|
||||
|
||||
echo "* Configuring Apache."
|
||||
create_virtualhost
|
||||
log "phpenmod mcrypt"
|
||||
log "phpenmod mbstring"
|
||||
log "a2enmod rewrite"
|
||||
log "a2ensite $APP_NAME.conf"
|
||||
rename_default_vhost
|
||||
|
||||
set_hosts
|
||||
|
||||
echo "* Starting MariaDB."
|
||||
log "systemctl start mariadb.service"
|
||||
|
||||
install_snipeit
|
||||
|
||||
echo "* Restarting Apache httpd."
|
||||
log "systemctl restart apache2"
|
||||
|
||||
echo "* Clearing cache and setting final permissions."
|
||||
chmod 777 -R $APP_PATH/storage/framework/cache/
|
||||
log "run_as_app_user php $APP_PATH/artisan cache:clear"
|
||||
|
||||
@@ -7,14 +7,38 @@ use Tests\TestCase;
|
||||
|
||||
class CreateUserTest extends TestCase
|
||||
{
|
||||
|
||||
public function testPermissionRequiredToCreateUser()
|
||||
{
|
||||
$this->actingAs(User::factory()->create())
|
||||
->get(route('users.create'))
|
||||
->assertForbidden();
|
||||
}
|
||||
|
||||
public function testPageRenders()
|
||||
{
|
||||
$admin = User::factory()->createUsers()->create();
|
||||
$response = $this->actingAs(User::factory()->superuser()->create())
|
||||
$this->actingAs(User::factory()->createUsers()->create())
|
||||
->get(route('users.create'))
|
||||
->assertOk();
|
||||
$response->assertDontSee($admin->first_name);
|
||||
$response->assertDontSee($admin->last_name);
|
||||
$response->assertDontSee($admin->email);
|
||||
|
||||
}
|
||||
|
||||
public function testCanCreateUser()
|
||||
{
|
||||
|
||||
$response = $this->actingAs(User::factory()->createUsers()->viewUsers()->create())
|
||||
->from(route('users.index'))
|
||||
->post(route('users.store'), [
|
||||
'first_name' => 'Test First Name',
|
||||
'last_name' => 'Test Last Name',
|
||||
'username' => 'testuser',
|
||||
'password' => 'testpassword1235!!',
|
||||
//'notes' => 'Test Note',
|
||||
])
|
||||
->assertStatus(302)
|
||||
->assertRedirect(route('users.index'));
|
||||
|
||||
$this->followRedirects($response)->assertSee('Success');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ class IndexUsersTest extends TestCase
|
||||
{
|
||||
public function testPageRenders()
|
||||
{
|
||||
$this->actingAs(User::factory()->superuser()->create())
|
||||
$this->actingAs(User::factory()->viewUsers()->create())
|
||||
->get(route('users.index'))
|
||||
->assertOk();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user