mirror of
https://github.com/snipe/snipe-it.git
synced 2024-11-09 23:24:06 -08:00
commit
3800cdd0da
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,6 +3,7 @@
|
|||
.env
|
||||
.env.dusk.*
|
||||
!.env.dusk.example
|
||||
phpstan.neon
|
||||
.idea
|
||||
/bin/
|
||||
/bootstrap/compiled.php
|
||||
|
|
|
@ -3,14 +3,29 @@
|
|||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use \App\Models\User;
|
||||
|
||||
|
||||
class CreateAdmin extends Command
|
||||
{
|
||||
|
||||
/** @mixin User **/
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
* App\Console\CreateAdmin
|
||||
* @property mixed $first_name
|
||||
* @property string $last_name
|
||||
* @property string $username
|
||||
* @property string $email
|
||||
* @property string $permissions
|
||||
* @property string $password
|
||||
* @property boolean $activated
|
||||
* @property boolean $show_in_list
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property mixed $created_by
|
||||
*/
|
||||
|
||||
|
||||
|
||||
protected $signature = 'snipeit:create-admin {--first_name=} {--last_name=} {--email=} {--username=} {--password=} {show_in_list?}';
|
||||
|
||||
/**
|
||||
|
@ -30,11 +45,7 @@ class CreateAdmin extends Command
|
|||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$first_name = $this->option('first_name');
|
||||
|
@ -47,7 +58,7 @@ class CreateAdmin extends Command
|
|||
if (($first_name == '') || ($last_name == '') || ($username == '') || ($email == '') || ($password == '')) {
|
||||
$this->info('ERROR: All fields are required.');
|
||||
} else {
|
||||
$user = new \App\Models\User;
|
||||
$user = new User;
|
||||
$user->first_name = $first_name;
|
||||
$user->last_name = $last_name;
|
||||
$user->username = $username;
|
||||
|
|
|
@ -74,7 +74,7 @@ class LdapSync extends Command
|
|||
$json_summary = ['error' => true, 'error_message' => $e->getMessage(), 'summary' => []];
|
||||
$this->info(json_encode($json_summary));
|
||||
}
|
||||
LOG::info($e);
|
||||
Log::info($e);
|
||||
|
||||
return [];
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ class LdapSync extends Command
|
|||
try {
|
||||
if ($this->option('base_dn') != '') {
|
||||
$search_base = $this->option('base_dn');
|
||||
LOG::debug('Importing users from specified base DN: \"'.$search_base.'\".');
|
||||
Log::debug('Importing users from specified base DN: \"'.$search_base.'\".');
|
||||
} else {
|
||||
$search_base = null;
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ class LdapSync extends Command
|
|||
$json_summary = ['error' => true, 'error_message' => $e->getMessage(), 'summary' => []];
|
||||
$this->info(json_encode($json_summary));
|
||||
}
|
||||
LOG::info($e);
|
||||
Log::info($e);
|
||||
|
||||
return [];
|
||||
}
|
||||
|
@ -108,16 +108,16 @@ class LdapSync extends Command
|
|||
|
||||
if ($this->option('location') != '') {
|
||||
$location = Location::where('name', '=', $this->option('location'))->first();
|
||||
LOG::debug('Location name '.$this->option('location').' passed');
|
||||
LOG::debug('Importing to '.$location->name.' ('.$location->id.')');
|
||||
Log::debug('Location name '.$this->option('location').' passed');
|
||||
Log::debug('Importing to '.$location->name.' ('.$location->id.')');
|
||||
} elseif ($this->option('location_id') != '') {
|
||||
$location = Location::where('id', '=', $this->option('location_id'))->first();
|
||||
LOG::debug('Location ID '.$this->option('location_id').' passed');
|
||||
LOG::debug('Importing to '.$location->name.' ('.$location->id.')');
|
||||
Log::debug('Location ID '.$this->option('location_id').' passed');
|
||||
Log::debug('Importing to '.$location->name.' ('.$location->id.')');
|
||||
}
|
||||
|
||||
if (! isset($location)) {
|
||||
LOG::debug('That location is invalid or a location was not provided, so no location will be assigned by default.');
|
||||
Log::debug('That location is invalid or a location was not provided, so no location will be assigned by default.');
|
||||
}
|
||||
|
||||
/* Process locations with explicitly defined OUs, if doing a full import. */
|
||||
|
@ -133,7 +133,7 @@ class LdapSync extends Command
|
|||
array_multisort($ldap_ou_lengths, SORT_ASC, $ldap_ou_locations);
|
||||
|
||||
if (count($ldap_ou_locations) > 0) {
|
||||
LOG::debug('Some locations have special OUs set. Locations will be automatically set for users in those OUs.');
|
||||
Log::debug('Some locations have special OUs set. Locations will be automatically set for users in those OUs.');
|
||||
}
|
||||
|
||||
// Inject location information fields
|
||||
|
@ -151,7 +151,7 @@ class LdapSync extends Command
|
|||
$json_summary = ['error' => true, 'error_message' => trans('admin/users/message.error.ldap_could_not_search').' Location: '.$ldap_loc['name'].' (ID: '.$ldap_loc['id'].') cannot connect to "'.$ldap_loc['ldap_ou'].'" - '.$e->getMessage(), 'summary' => []];
|
||||
$this->info(json_encode($json_summary));
|
||||
}
|
||||
LOG::info($e);
|
||||
Log::info($e);
|
||||
|
||||
return [];
|
||||
}
|
||||
|
@ -197,18 +197,18 @@ class LdapSync extends Command
|
|||
|
||||
for ($i = 0; $i < $results['count']; $i++) {
|
||||
$item = [];
|
||||
$item['username'] = isset($results[$i][$ldap_result_username][0]) ? $results[$i][$ldap_result_username][0] : '';
|
||||
$item['employee_number'] = isset($results[$i][$ldap_result_emp_num][0]) ? $results[$i][$ldap_result_emp_num][0] : '';
|
||||
$item['lastname'] = isset($results[$i][$ldap_result_last_name][0]) ? $results[$i][$ldap_result_last_name][0] : '';
|
||||
$item['firstname'] = isset($results[$i][$ldap_result_first_name][0]) ? $results[$i][$ldap_result_first_name][0] : '';
|
||||
$item['email'] = isset($results[$i][$ldap_result_email][0]) ? $results[$i][$ldap_result_email][0] : '';
|
||||
$item['ldap_location_override'] = isset($results[$i]['ldap_location_override']) ? $results[$i]['ldap_location_override'] : '';
|
||||
$item['location_id'] = isset($results[$i]['location_id']) ? $results[$i]['location_id'] : '';
|
||||
$item['telephone'] = isset($results[$i][$ldap_result_phone][0]) ? $results[$i][$ldap_result_phone][0] : '';
|
||||
$item['jobtitle'] = isset($results[$i][$ldap_result_jobtitle][0]) ? $results[$i][$ldap_result_jobtitle][0] : '';
|
||||
$item['country'] = isset($results[$i][$ldap_result_country][0]) ? $results[$i][$ldap_result_country][0] : '';
|
||||
$item['department'] = isset($results[$i][$ldap_result_dept][0]) ? $results[$i][$ldap_result_dept][0] : '';
|
||||
$item['manager'] = isset($results[$i][$ldap_result_manager][0]) ? $results[$i][$ldap_result_manager][0] : '';
|
||||
$item['username'] = $results[$i][$ldap_result_username][0] ?? '';
|
||||
$item['employee_number'] = $results[$i][$ldap_result_emp_num][0] ?? '';
|
||||
$item['lastname'] = $results[$i][$ldap_result_last_name][0] ?? '';
|
||||
$item['firstname'] = $results[$i][$ldap_result_first_name][0] ?? '';
|
||||
$item['email'] = $results[$i][$ldap_result_email][0] ?? '';
|
||||
$item['ldap_location_override'] = $results[$i]['ldap_location_override'] ?? '';
|
||||
$item['location_id'] = $results[$i]['location_id'] ?? '';
|
||||
$item['telephone'] = $results[$i][$ldap_result_phone][0] ?? '';
|
||||
$item['jobtitle'] = $results[$i][$ldap_result_jobtitle][0] ?? '';
|
||||
$item['country'] = $results[$i][$ldap_result_country][0] ?? '';
|
||||
$item['department'] = $results[$i][$ldap_result_dept][0] ?? '';
|
||||
$item['manager'] = $results[$i][$ldap_result_manager][0] ?? '';
|
||||
|
||||
|
||||
$department = Department::firstOrCreate([
|
||||
|
|
|
@ -17,7 +17,7 @@ class ModalController extends Controller
|
|||
* @author [A. Gianotto] [<snipe@snipe.net]
|
||||
* @return View
|
||||
*/
|
||||
function show ($type, $itemId = null) {
|
||||
public function show ($type, $itemId = null) {
|
||||
|
||||
// These values should correspond to a file in resources/views/modals/
|
||||
$allowed_types = [
|
||||
|
|
|
@ -1120,8 +1120,6 @@ class ReportsController extends Controller
|
|||
$row[] = str_replace(',', '', e($item['assetItem']->asset_tag));
|
||||
$row[] = str_replace(',', '', e(($item['acceptance']->assignedTo) ? $item['acceptance']->assignedTo->present()->name() : trans('admin/reports/general.deleted_user')));
|
||||
$rows[] = implode(',', $row);
|
||||
} else {
|
||||
// Log the error maybe?
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -807,7 +807,7 @@ class SettingsController extends Controller
|
|||
*/
|
||||
public function getPhpInfo()
|
||||
{
|
||||
if (true === config('app.debug')) {
|
||||
if (config('app.debug') === true) {
|
||||
return view('settings.phpinfo');
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ class CheckForTwoFactor
|
|||
/**
|
||||
* Routes to ignore for Two Factor Auth
|
||||
*/
|
||||
const IGNORE_ROUTES = ['two-factor', 'two-factor-enroll', 'setup', 'logout'];
|
||||
public const IGNORE_ROUTES = ['two-factor', 'two-factor-enroll', 'setup', 'logout'];
|
||||
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
|
|
|
@ -39,14 +39,12 @@ class SaveUserRequest extends FormRequest
|
|||
|
||||
// Brand new user
|
||||
case 'POST':
|
||||
{
|
||||
$rules['first_name'] = 'required|string|min:1';
|
||||
$rules['username'] = 'required_unless:ldap_import,1|string|min:1';
|
||||
if ($this->request->get('ldap_import') == false) {
|
||||
$rules['password'] = Setting::passwordComplexityRulesSaving('store').'|confirmed';
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Save all fields
|
||||
case 'PUT':
|
||||
|
@ -57,12 +55,11 @@ class SaveUserRequest extends FormRequest
|
|||
|
||||
// Save only what's passed
|
||||
case 'PATCH':
|
||||
{
|
||||
$rules['password'] = Setting::passwordComplexityRulesSaving('update');
|
||||
break;
|
||||
}
|
||||
|
||||
default:break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return $rules;
|
||||
|
|
|
@ -4,7 +4,7 @@ namespace App\Http\Transformers;
|
|||
|
||||
use App\Helpers\Helper;
|
||||
use App\Models\AssetModel;
|
||||
use Gate;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
|
||||
|
|
|
@ -34,9 +34,9 @@ class Asset extends Depreciable
|
|||
use CompanyableTrait;
|
||||
use HasFactory, Loggable, Requestable, Presentable, SoftDeletes, ValidatingTrait, UniqueUndeletedTrait, UniqueSerialTrait;
|
||||
|
||||
const LOCATION = 'location';
|
||||
const ASSET = 'asset';
|
||||
const USER = 'user';
|
||||
public const LOCATION = 'location';
|
||||
public const ASSET = 'asset';
|
||||
public const USER = 'user';
|
||||
|
||||
use Acceptable;
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class CustomField extends Model
|
|||
*
|
||||
* @var array
|
||||
*/
|
||||
const PREDEFINED_FORMATS = [
|
||||
public const PREDEFINED_FORMATS = [
|
||||
'ANY' => '',
|
||||
'CUSTOM REGEX' => '',
|
||||
'ALPHA' => 'alpha',
|
||||
|
|
|
@ -217,16 +217,16 @@ class Ldap extends Model
|
|||
$ldap_result_manager = Setting::getSettings()->ldap_manager;
|
||||
// Get LDAP user data
|
||||
$item = [];
|
||||
$item['username'] = isset($ldapattributes[$ldap_result_username][0]) ? $ldapattributes[$ldap_result_username][0] : '';
|
||||
$item['employee_number'] = isset($ldapattributes[$ldap_result_emp_num][0]) ? $ldapattributes[$ldap_result_emp_num][0] : '';
|
||||
$item['lastname'] = isset($ldapattributes[$ldap_result_last_name][0]) ? $ldapattributes[$ldap_result_last_name][0] : '';
|
||||
$item['firstname'] = isset($ldapattributes[$ldap_result_first_name][0]) ? $ldapattributes[$ldap_result_first_name][0] : '';
|
||||
$item['email'] = isset($ldapattributes[$ldap_result_email][0]) ? $ldapattributes[$ldap_result_email][0] : '';
|
||||
$item['telephone'] = isset($ldapattributes[$ldap_result_phone][0]) ? $ldapattributes[$ldap_result_phone][0] : '';
|
||||
$item['jobtitle'] = isset($ldapattributes[$ldap_result_jobtitle][0]) ? $ldapattributes[$ldap_result_jobtitle][0] : '';
|
||||
$item['country'] = isset($ldapattributes[$ldap_result_country][0]) ? $ldapattributes[$ldap_result_country][0] : '';
|
||||
$item['department'] = isset($ldapattributes[$ldap_result_dept][0]) ? $ldapattributes[$ldap_result_dept][0] : '';
|
||||
$item['manager'] = isset($ldapattributes[$ldap_result_manager][0]) ? $ldapattributes[$ldap_result_manager][0] : '';
|
||||
$item['username'] = $ldapattributes[$ldap_result_username][0] ?? '';
|
||||
$item['employee_number'] = $ldapattributes[$ldap_result_emp_num][0] ?? '';
|
||||
$item['lastname'] = $ldapattributes[$ldap_result_last_name][0] ?? '';
|
||||
$item['firstname'] = $ldapattributes[$ldap_result_first_name][0] ?? '';
|
||||
$item['email'] = $ldapattributes[$ldap_result_email][0] ?? '';
|
||||
$item['telephone'] = $ldapattributes[$ldap_result_phone][0] ?? '';
|
||||
$item['jobtitle'] = $ldapattributes[$ldap_result_jobtitle][0] ?? '';
|
||||
$item['country'] = $ldapattributes[$ldap_result_country][0] ?? '';
|
||||
$item['department'] = $ldapattributes[$ldap_result_dept][0] ?? '';
|
||||
$item['manager'] = $ldapattributes[$ldap_result_manager][0] ?? '';
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ class Setting extends Model
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
const SETUP_CHECK_KEY = 'snipeit_setup_check';
|
||||
public const SETUP_CHECK_KEY = 'snipeit_setup_check';
|
||||
|
||||
/**
|
||||
* Whether the model should inject it's identifier to the unique
|
||||
|
|
|
@ -164,7 +164,7 @@ trait Searchable
|
|||
}
|
||||
// I put this here because I only want to add the concat one time in the end of the user relation search
|
||||
if($relation == 'user') {
|
||||
$query->orWhereRaw('CONCAT (users.first_name, " ", users.last_name) LIKE ?', ["%$term%"]);
|
||||
$query->orWhereRaw('CONCAT (users.first_name, " ", users.last_name) LIKE ?', ["%{$term}%"]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -195,7 +195,7 @@ trait Searchable
|
|||
*/
|
||||
private function getSearchableAttributes()
|
||||
{
|
||||
return isset($this->searchableAttributes) ? $this->searchableAttributes : [];
|
||||
return $this->searchableAttributes ?? [];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -205,7 +205,7 @@ trait Searchable
|
|||
*/
|
||||
private function getSearchableRelations()
|
||||
{
|
||||
return isset($this->searchableRelations) ? $this->searchableRelations : [];
|
||||
return $this->searchableRelations ?? [];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -657,7 +657,7 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
|||
{
|
||||
$query = $query->where('first_name', 'LIKE', '%'.$search.'%')
|
||||
->orWhere('last_name', 'LIKE', '%'.$search.'%')
|
||||
->orWhereRaw('CONCAT('.DB::getTablePrefix().'users.first_name," ",'.DB::getTablePrefix().'users.last_name) LIKE ?', ["%$search%"]);
|
||||
->orWhereRaw('CONCAT('.DB::getTablePrefix().'users.first_name," ",'.DB::getTablePrefix().'users.last_name) LIKE ?', ["%{$search}%"]);
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
@ -673,7 +673,7 @@ class User extends SnipeModel implements AuthenticatableContract, AuthorizableCo
|
|||
public function advancedTextSearch(Builder $query, array $terms) {
|
||||
|
||||
foreach($terms as $term) {
|
||||
$query = $query->orWhereRaw('CONCAT('.DB::getTablePrefix().'users.first_name," ",'.DB::getTablePrefix().'users.last_name) LIKE ?', ["%$term%"]);
|
||||
$query = $query->orWhereRaw('CONCAT('.DB::getTablePrefix().'users.first_name," ",'.DB::getTablePrefix().'users.last_name) LIKE ?', ["%{$term}%"]);
|
||||
}
|
||||
|
||||
return $query;
|
||||
|
|
|
@ -40,7 +40,7 @@ class AcceptanceAssetAcceptedNotification extends Notification
|
|||
public function via()
|
||||
{
|
||||
|
||||
$notifyBy[] = 'mail';
|
||||
$notifyBy = ['mail'];
|
||||
|
||||
return $notifyBy;
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ class AcceptanceAssetDeclinedNotification extends Notification
|
|||
*/
|
||||
public function via($notifiable)
|
||||
{
|
||||
$notifyBy[] = 'mail';
|
||||
$notifyBy = ['mail'];
|
||||
|
||||
return $notifyBy;
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ class InventoryAlert extends Notification
|
|||
*/
|
||||
public function via()
|
||||
{
|
||||
$notifyBy[] = 'mail';
|
||||
$notifyBy = ['mail'];
|
||||
|
||||
return $notifyBy;
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@ class SendUpcomingAuditNotification extends Notification
|
|||
*/
|
||||
public function toMail()
|
||||
{
|
||||
$message = (new MailMessage)->markdown('notifications.markdown.upcoming-audits',
|
||||
$message = (new MailMessage())->markdown('notifications.markdown.upcoming-audits',
|
||||
[
|
||||
'assets' => $this->assets,
|
||||
'threshold' => $this->threshold,
|
||||
|
|
|
@ -44,7 +44,7 @@ class WelcomeNotification extends Notification
|
|||
*/
|
||||
public function toMail()
|
||||
{
|
||||
return (new MailMessage)
|
||||
return (new MailMessage())
|
||||
->subject(trans('mail.welcome', ['name' => $this->_data['first_name'].' '.$this->_data['last_name']]))
|
||||
->markdown('notifications.Welcome', $this->_data);
|
||||
}
|
||||
|
|
|
@ -346,8 +346,7 @@ class UserPresenter extends Presenter
|
|||
public function emailLink()
|
||||
{
|
||||
if ($this->email) {
|
||||
return '<a href="mailto:'.$this->email.'">'.$this->email.'</a>'
|
||||
.'<a href="mailto:'.$this->email.'" class="hidden-xs hidden-sm"><i class="far fa-envelope"></i></a>';
|
||||
return '<a href="mailto:'.$this->email.'">'.$this->email.'</a><a href="mailto:'.$this->email.'" class="hidden-xs hidden-sm"><i class="far fa-envelope"></i></a>';
|
||||
}
|
||||
|
||||
return '';
|
||||
|
|
|
@ -22,7 +22,7 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
|
|||
*/
|
||||
class Saml
|
||||
{
|
||||
const DATA_SESSION_KEY = '_samlData';
|
||||
public const DATA_SESSION_KEY = '_samlData';
|
||||
|
||||
/**
|
||||
* OneLogin_Saml2_Auth instance.
|
||||
|
@ -308,12 +308,9 @@ class Saml
|
|||
*/
|
||||
public function samlLogin($data)
|
||||
{
|
||||
$setting = Setting::getSettings();
|
||||
$this->saveDataToSession($data);
|
||||
$this->loadDataFromSession();
|
||||
|
||||
$username = $this->getUsername();
|
||||
|
||||
return User::where('username', '=', $username)->whereNull('deleted_at')->where('activated', '=', '1')->first();
|
||||
}
|
||||
|
||||
|
|
|
@ -75,11 +75,14 @@
|
|||
"fakerphp/faker": "^1.16",
|
||||
"laravel/dusk": "^6.25",
|
||||
"mockery/mockery": "^1.4",
|
||||
"nunomaduro/larastan": "^1.0",
|
||||
"nunomaduro/phpinsights": "^2.7",
|
||||
"phpunit/php-token-stream": "^3.1",
|
||||
"phpunit/phpunit": "^9.0",
|
||||
"squizlabs/php_codesniffer": "^3.5",
|
||||
"symfony/css-selector": "^4.4",
|
||||
"symfony/dom-crawler": "^4.4"
|
||||
"symfony/dom-crawler": "^4.4",
|
||||
"vimeo/psalm": "^5.6"
|
||||
},
|
||||
"extra": {
|
||||
"laravel": {
|
||||
|
|
2814
composer.lock
generated
2814
composer.lock
generated
File diff suppressed because it is too large
Load diff
128
config/insights.php
Normal file
128
config/insights.php
Normal file
|
@ -0,0 +1,128 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenDefineFunctions;
|
||||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenFinalClasses;
|
||||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenNormalClasses;
|
||||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenPrivateMethods;
|
||||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenTraits;
|
||||
use NunoMaduro\PhpInsights\Domain\Metrics\Architecture\Classes;
|
||||
use SlevomatCodingStandard\Sniffs\Commenting\UselessFunctionDocCommentSniff;
|
||||
use SlevomatCodingStandard\Sniffs\Namespaces\AlphabeticallySortedUsesSniff;
|
||||
use SlevomatCodingStandard\Sniffs\TypeHints\DeclareStrictTypesSniff;
|
||||
use SlevomatCodingStandard\Sniffs\TypeHints\DisallowMixedTypeHintSniff;
|
||||
use SlevomatCodingStandard\Sniffs\TypeHints\ParameterTypeHintSniff;
|
||||
use SlevomatCodingStandard\Sniffs\TypeHints\PropertyTypeHintSniff;
|
||||
use SlevomatCodingStandard\Sniffs\TypeHints\ReturnTypeHintSniff;
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Preset
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default preset that will be used by PHP Insights
|
||||
| to make your code reliable, simple, and clean. However, you can always
|
||||
| adjust the `Metrics` and `Insights` below in this configuration file.
|
||||
|
|
||||
| Supported: "default", "laravel", "symfony", "magento2", "drupal"
|
||||
|
|
||||
*/
|
||||
|
||||
'preset' => 'laravel',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| IDE
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This options allow to add hyperlinks in your terminal to quickly open
|
||||
| files in your favorite IDE while browsing your PhpInsights report.
|
||||
|
|
||||
| Supported: "textmate", "macvim", "emacs", "sublime", "phpstorm",
|
||||
| "atom", "vscode".
|
||||
|
|
||||
| If you have another IDE that is not in this list but which provide an
|
||||
| url-handler, you could fill this config with a pattern like this:
|
||||
|
|
||||
| myide://open?url=file://%f&line=%l
|
||||
|
|
||||
*/
|
||||
|
||||
'ide' => null,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Configuration
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may adjust all the various `Insights` that will be used by PHP
|
||||
| Insights. You can either add, remove or configure `Insights`. Keep in
|
||||
| mind that all added `Insights` must belong to a specific `Metric`.
|
||||
|
|
||||
*/
|
||||
|
||||
'exclude' => [
|
||||
// 'path/to/directory-or-file'
|
||||
],
|
||||
|
||||
'add' => [
|
||||
Classes::class => [
|
||||
ForbiddenFinalClasses::class,
|
||||
],
|
||||
],
|
||||
|
||||
'remove' => [
|
||||
AlphabeticallySortedUsesSniff::class,
|
||||
DeclareStrictTypesSniff::class,
|
||||
DisallowMixedTypeHintSniff::class,
|
||||
ForbiddenDefineFunctions::class,
|
||||
ForbiddenNormalClasses::class,
|
||||
ForbiddenTraits::class,
|
||||
ParameterTypeHintSniff::class,
|
||||
PropertyTypeHintSniff::class,
|
||||
ReturnTypeHintSniff::class,
|
||||
UselessFunctionDocCommentSniff::class,
|
||||
],
|
||||
|
||||
'config' => [
|
||||
ForbiddenPrivateMethods::class => [
|
||||
'title' => 'The usage of private methods is not idiomatic in Laravel.',
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Requirements
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may define a level you want to reach per `Insights` category.
|
||||
| When a score is lower than the minimum level defined, then an error
|
||||
| code will be returned. This is optional and individually defined.
|
||||
|
|
||||
*/
|
||||
|
||||
'requirements' => [
|
||||
// 'min-quality' => 0,
|
||||
// 'min-complexity' => 0,
|
||||
// 'min-architecture' => 0,
|
||||
// 'min-style' => 0,
|
||||
// 'disable-security-check' => false,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Threads
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may adjust how many threads (core) PHPInsights can use to perform
|
||||
| the analyse. This is optional, don't provide it and the tool will guess
|
||||
| the max core number available. It accepts null value or integer > 0.
|
||||
|
|
||||
*/
|
||||
|
||||
'threads' => null,
|
||||
|
||||
];
|
12
phpstan.neon.dist
Normal file
12
phpstan.neon.dist
Normal file
|
@ -0,0 +1,12 @@
|
|||
includes:
|
||||
- ./vendor/nunomaduro/larastan/extension.neon
|
||||
|
||||
parameters:
|
||||
paths:
|
||||
- app
|
||||
- config
|
||||
- database/migrations
|
||||
- resources/lang
|
||||
- resources/views
|
||||
|
||||
level: 4
|
8
phpstan.neon.example
Normal file
8
phpstan.neon.example
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Copy this file to "phpstan.neon" and update the parameters section as needed
|
||||
|
||||
includes:
|
||||
- phpstan.neon.dist
|
||||
|
||||
parameters:
|
||||
# https://phpstan.org/user-guide/output-format#opening-file-in-an-editor
|
||||
editorUrl: 'phpstorm://open?file=%%file%%&line=%%line%%'
|
18
psalm.xml
Normal file
18
psalm.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0"?>
|
||||
<psalm
|
||||
errorLevel="7"
|
||||
resolveFromConfigFile="true"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="https://getpsalm.org/schema/config"
|
||||
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
|
||||
findUnusedBaselineEntry="true"
|
||||
>
|
||||
<projectFiles>
|
||||
<directory name="app" />
|
||||
<directory name="database/factories" />
|
||||
<directory name="database/seeders" />
|
||||
<ignoreFiles>
|
||||
<directory name="vendor" />
|
||||
</ignoreFiles>
|
||||
</projectFiles>
|
||||
</psalm>
|
|
@ -114,8 +114,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('accessories',
|
||||
Api\AccessoriesController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.accessories.index',
|
||||
'show' => 'api.accessories.show',
|
||||
'update' => 'api.accessories.update',
|
||||
|
@ -144,8 +143,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('categories',
|
||||
Api\CategoriesController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.categories.index',
|
||||
'show' => 'api.categories.show',
|
||||
'update' => 'api.categories.update',
|
||||
|
@ -173,8 +171,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('companies',
|
||||
Api\CompaniesController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.companies.index',
|
||||
'show' => 'api.companies.show',
|
||||
'update' => 'api.companies.update',
|
||||
|
@ -203,8 +200,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('departments',
|
||||
Api\DepartmentsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.departments.index',
|
||||
'show' => 'api.departments.show',
|
||||
'update' => 'api.departments.update',
|
||||
|
@ -254,8 +250,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('components',
|
||||
Api\ComponentsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.components.index',
|
||||
'show' => 'api.components.show',
|
||||
'update' => 'api.components.update',
|
||||
|
@ -308,8 +303,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('consumables',
|
||||
Api\ConsumablesController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.consumables.index',
|
||||
'show' => 'api.consumables.show',
|
||||
'update' => 'api.consumables.update',
|
||||
|
@ -328,8 +322,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
*/
|
||||
Route::resource('depreciations',
|
||||
Api\DepreciationsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.depreciations.index',
|
||||
'show' => 'api.depreciations.show',
|
||||
'update' => 'api.depreciations.update',
|
||||
|
@ -416,8 +409,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('fieldsets',
|
||||
Api\CustomFieldsetsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.fieldsets.index',
|
||||
'show' => 'api.fieldsets.show',
|
||||
'update' => 'api.fieldsets.update',
|
||||
|
@ -436,8 +428,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
*/
|
||||
Route::resource('groups',
|
||||
Api\GroupsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.groups.index',
|
||||
'show' => 'api.groups.show',
|
||||
'update' => 'api.groups.update',
|
||||
|
@ -549,8 +540,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('hardware',
|
||||
Api\AssetsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.assets.index',
|
||||
'show' => 'api.assets.show',
|
||||
'update' => 'api.assets.update',
|
||||
|
@ -567,8 +557,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
*/
|
||||
Route::resource('maintenances',
|
||||
Api\AssetMaintenancesController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.maintenances.index',
|
||||
'show' => 'api.maintenances.show',
|
||||
'update' => 'api.maintenances.update',
|
||||
|
@ -597,8 +586,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('imports',
|
||||
Api\ImportController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.imports.index',
|
||||
'show' => 'api.imports.show',
|
||||
'update' => 'api.imports.update',
|
||||
|
@ -628,8 +616,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('licenses',
|
||||
Api\LicensesController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.licenses.index',
|
||||
'show' => 'api.licenses.show',
|
||||
'update' => 'api.licenses.update',
|
||||
|
@ -644,8 +631,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('licenses.seats',
|
||||
Api\LicenseSeatsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.licenses.seats.index',
|
||||
'show' => 'api.licenses.seats.show',
|
||||
'update' => 'api.licenses.seats.update',
|
||||
|
@ -686,8 +672,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('locations',
|
||||
Api\LocationsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.locations.index',
|
||||
'show' => 'api.locations.show',
|
||||
'update' => 'api.locations.update',
|
||||
|
@ -716,8 +701,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('manufacturers',
|
||||
Api\ManufacturersController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.manufacturers.index',
|
||||
'show' => 'api.manufacturers.show',
|
||||
'update' => 'api.manufacturers.update',
|
||||
|
@ -753,8 +737,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('models',
|
||||
Api\AssetModelsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.models.index',
|
||||
'show' => 'api.models.show',
|
||||
'update' => 'api.models.update',
|
||||
|
@ -833,8 +816,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('settings',
|
||||
Api\SettingsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.settings.index',
|
||||
'show' => 'api.settings.show',
|
||||
'update' => 'api.settings.update',
|
||||
|
@ -891,8 +873,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('statuslabels',
|
||||
Api\StatuslabelsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.statuslabels.index',
|
||||
'show' => 'api.statuslabels.show',
|
||||
'update' => 'api.statuslabels.update',
|
||||
|
@ -921,8 +902,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('suppliers',
|
||||
Api\SuppliersController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.suppliers.index',
|
||||
'show' => 'api.suppliers.show',
|
||||
'update' => 'api.suppliers.update',
|
||||
|
@ -1015,8 +995,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
|
||||
Route::resource('users',
|
||||
Api\UsersController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.users.index',
|
||||
'show' => 'api.users.show',
|
||||
'update' => 'api.users.update',
|
||||
|
@ -1034,8 +1013,7 @@ Route::group(['prefix' => 'v1', 'middleware' => ['api', 'throttle:api']], functi
|
|||
*/
|
||||
Route::resource('kits',
|
||||
Api\PredefinedKitsController::class,
|
||||
['names' =>
|
||||
[
|
||||
['names' => [
|
||||
'index' => 'api.kits.index',
|
||||
'show' => 'api.kits.show',
|
||||
'update' => 'api.kits.update',
|
||||
|
|
|
@ -20,7 +20,7 @@ Artisan::command('inspire', function () {
|
|||
|
||||
Artisan::command('snipeit:travisci-install', function () {
|
||||
if (! Setting::setupCompleted()) {
|
||||
$settings = new Setting;
|
||||
$settings = new Setting();
|
||||
$settings->site_name = 'test-ci';
|
||||
$settings->alert_email = 'test@example.com';
|
||||
$settings->alerts_enabled = 1;
|
||||
|
|
|
@ -43,7 +43,6 @@ echo "--------------------------------------------------------\n\n";
|
|||
|
||||
// Check the .env looks ok
|
||||
$env = file('.env');
|
||||
$env_error_count = 0;
|
||||
$env_good = '';
|
||||
$env_bad = '';
|
||||
|
||||
|
@ -85,7 +84,7 @@ foreach ($env as $line_num => $line) {
|
|||
|
||||
if ($env_key == 'APP_KEY') {
|
||||
if (($env_value=='') || (strlen($env_value) < 20)) {
|
||||
$env_bad .= "✘ APP_KEY ERROR in your .env on line #'.$show_line_num.': Your APP_KEY should not be blank. Run `php artisan key:generate` to generate one.\n";
|
||||
$env_bad .= "✘ APP_KEY ERROR in your .env on line #'.{$show_line_num}.': Your APP_KEY should not be blank. Run `php artisan key:generate` to generate one.\n";
|
||||
} else {
|
||||
$env_good .= "√ Your APP_KEY is not blank. \n";
|
||||
}
|
||||
|
@ -93,8 +92,6 @@ foreach ($env as $line_num => $line) {
|
|||
|
||||
if ($env_key == 'APP_URL') {
|
||||
|
||||
$app_url_length = strlen($env_value);
|
||||
|
||||
if (($env_value!="null") && ($env_value!="")) {
|
||||
$env_good .= '√ Your APP_URL is not null or blank. It is set to '.$env_value."\n";
|
||||
|
||||
|
@ -452,11 +449,11 @@ echo "--------------------------------------------------------\n\n";
|
|||
|
||||
|
||||
function str_begins($haystack, $needle) {
|
||||
return 0 === substr_compare($haystack, $needle, 0, strlen($needle));
|
||||
return (substr_compare($haystack, $needle, 0, strlen($needle)) === 0);
|
||||
}
|
||||
|
||||
function str_ends($haystack, $needle) {
|
||||
return 0 === substr_compare($haystack, $needle, -strlen($needle));
|
||||
return (substr_compare($haystack, $needle, -strlen($needle)) === 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue