createdBy fields added

This commit is contained in:
Benjamin Takats
2022-12-15 11:08:03 +01:00
parent 52b2f93c17
commit 362ad81a2b
43 changed files with 381 additions and 22 deletions

View File

@@ -39,6 +39,7 @@ class ReadAndSyncEinundzwanzigPodcastFeed extends Command
'link' => $podcast->feed->link,
'language_code' => $podcast->feed->language,
'data' => $podcast->feed,
'created_by' => 1,
]);
$episodes = $client->episodes->byFeedUrl('https://einundzwanzig.space/feed.xml')
->json();
@@ -47,6 +48,7 @@ class ReadAndSyncEinundzwanzigPodcastFeed extends Command
->updateOrCreate(['guid' => $item->guid], [
'podcast_id' => $einundzwanzigPodcast->id,
'data' => $item,
'created_by' => 1,
]);
}

View File

@@ -49,6 +49,7 @@ class SyncOpenBooks extends Command
'deactreason' => $case['deactreason'],
'entrytype' => $case['entrytype'],
'homepage' => $case['homepage'],
'created_by' => 1,
]
);
}

View File

@@ -51,6 +51,11 @@ class BitcoinEvent extends Model implements HasMedia
->useFallbackUrl(asset('img/einundzwanzig-cover-lesestunde.png'));
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function venue(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Venue::class);

View File

@@ -54,6 +54,11 @@ class BookCase extends Model implements HasMedia
$this->addMediaCollection('images');
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function orangePills(): HasMany
{
return $this->hasMany(OrangePill::class);

View File

@@ -40,6 +40,11 @@ class City extends Model
->usingLanguage('de');
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function country(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Country::class);

View File

@@ -54,6 +54,11 @@ class Course extends Model implements HasMedia
->useFallbackUrl(asset('img/einundzwanzig-cover-lesestunde.png'));
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function categories(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
{
return $this->belongsToMany(Category::class);

View File

@@ -29,6 +29,11 @@ class CourseEvent extends Model
'to' => 'datetime',
];
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function course(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Course::class);

View File

@@ -28,6 +28,11 @@ class Episode extends Model
'data' => 'array',
];
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function podcast(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Podcast::class);

View File

@@ -64,6 +64,11 @@ class Lecturer extends Model implements HasMedia
->usingLanguage('de');
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function team(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Team::class);

View File

@@ -26,6 +26,11 @@ class Library extends Model
'language_codes' => 'array',
];
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function libraryItems(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
{
return $this->belongsToMany(LibraryItem::class);

View File

@@ -59,6 +59,11 @@ class LibraryItem extends Model implements HasMedia, Sortable
->useFallbackUrl(asset('img/einundzwanzig-cover-lesestunde.png'));
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function lecturer(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Lecturer::class);

View File

@@ -48,6 +48,11 @@ class Meetup extends Model implements HasMedia
->useFallbackUrl(asset('img/einundzwanzig-cover-lesestunde.png'));
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function city(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(City::class);

View File

@@ -27,6 +27,11 @@ class MeetupEvent extends Model
'start' => 'datetime',
];
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function meetup(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Meetup::class);

View File

@@ -25,6 +25,11 @@ class Podcast extends Model
'data' => 'array',
];
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function episodes(): HasMany
{
return $this->hasMany(Episode::class);

View File

@@ -63,6 +63,11 @@ class Venue extends Model implements HasMedia
->usingLanguage('de');
}
public function createdBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(User::class, 'created_by');
}
public function city(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(City::class);

View File

@@ -66,6 +66,8 @@ class BitcoinEvent extends Resource
BelongsTo::make(__('Venue'), 'venue', Venue::class)->searchable(),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -3,6 +3,7 @@
namespace App\Nova;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\HasMany;
use Laravel\Nova\Fields\ID;
@@ -112,6 +113,8 @@ class BookCase extends Resource
MorphMany::make(__('Comments'), 'comments', Comment::class),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -75,6 +75,8 @@ class City extends Resource
HasMany::make(__('Meetups'), 'meetups', Meetup::class),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -98,6 +98,8 @@ class Course extends Resource
BelongsToMany::make(__('Categories'), 'categories', Category::class)
->onlyOnDetail(),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -79,6 +79,8 @@ class CourseEvent extends Resource
BelongsTo::make(__('Venue'), 'venue', Venue::class)
->searchable(),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -52,7 +52,6 @@ class Episode extends Resource
'language_code' => $model->podcast->language_code,
'value' => null,
]);
ray($request->tags);
$libraryItem->syncTagsWithType(is_array($request->tags) ? $request->tags : str($request->tags)->explode('-----'),
'library_item');
$libraryItem->addMediaFromUrl($model->data['image'])
@@ -103,6 +102,8 @@ class Episode extends Resource
BelongsTo::make(__('Podcast'), 'podcast', Podcast::class)
->readonly(),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -86,6 +86,8 @@ class Lecturer extends Resource
BelongsTo::make('Team'),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -3,6 +3,7 @@
namespace App\Nova;
use Illuminate\Http\Request;
use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\BelongsToMany;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\ID;
@@ -62,6 +63,9 @@ class Library extends Resource
),
BelongsToMany::make('Library Items'),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -95,6 +95,8 @@ class LibraryItem extends Resource
BelongsToMany::make(__('Library'), 'libraries', Library::class),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -56,6 +56,8 @@ class Meetup extends Resource
BelongsTo::make(__('City'), 'city', City::class)->searchable(),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -62,6 +62,8 @@ class MeetupEvent extends Resource
BelongsTo::make('Meetup')
->searchable(),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -5,6 +5,7 @@ namespace App\Nova;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Laravel\Nova\Fields\Avatar;
use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\Boolean;
use Laravel\Nova\Fields\Code;
use Laravel\Nova\Fields\HasMany;
@@ -80,6 +81,9 @@ class Podcast extends Resource
->json(),
HasMany::make(__('Episodes'), 'episodes', Episode::class),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -63,6 +63,8 @@ class Venue extends Resource
BelongsTo::make(__('City'), 'city', City::class),
BelongsTo::make(__('Created By'), 'createdBy', User::class),
];
}

View File

@@ -16,7 +16,7 @@ class BasePolicy
*/
public function before(User $user, $ability)
{
if ($user->hasRole('super-admin') || app()->environment('local')) {
if ($user->hasRole('super-admin') || config('app.super-admin')) {
return true;
}
}

View File

@@ -0,0 +1,101 @@
<?php
namespace App\Policies;
use App\Models\BitcoinEvent;
use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class BitcoinEventPolicy extends BasePolicy
{
use HandlesAuthorization;
/**
* Determine whether the user can view any models.
*
* @param \App\Models\User $user
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function viewAny(User $user)
{
return true;
}
/**
* Determine whether the user can view the model.
*
* @param \App\Models\User $user
* @param \App\Models\BitcoinEvent $bitcoinEvent
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function view(User $user, BitcoinEvent $bitcoinEvent)
{
return true;
}
/**
* Determine whether the user can create models.
*
* @param \App\Models\User $user
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function create(User $user)
{
return true;
}
/**
* Determine whether the user can update the model.
*
* @param \App\Models\User $user
* @param \App\Models\BitcoinEvent $bitcoinEvent
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function update(User $user, BitcoinEvent $bitcoinEvent)
{
return $bitcoinEvent->created_by === $user->id;
}
/**
* Determine whether the user can delete the model.
*
* @param \App\Models\User $user
* @param \App\Models\BitcoinEvent $bitcoinEvent
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function delete(User $user, BitcoinEvent $bitcoinEvent)
{
//
}
/**
* Determine whether the user can restore the model.
*
* @param \App\Models\User $user
* @param \App\Models\BitcoinEvent $bitcoinEvent
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function restore(User $user, BitcoinEvent $bitcoinEvent)
{
//
}
/**
* Determine whether the user can permanently delete the model.
*
* @param \App\Models\User $user
* @param \App\Models\BitcoinEvent $bitcoinEvent
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function forceDelete(User $user, BitcoinEvent $bitcoinEvent)
{
//
}
}

View File

@@ -53,7 +53,7 @@ class CityPolicy extends BasePolicy
*/
public function update(User $user, City $city)
{
return $user->is_lecturer;
return $city->created_by === $user->id;
}
/**

View File

@@ -57,7 +57,7 @@ class LecturerPolicy extends BasePolicy
*/
public function update(User $user, Lecturer $lecturer)
{
return $user->belongsToTeam($lecturer->team);
return $lecturer->created_by === $user->id;
}
/**

View File

@@ -53,7 +53,7 @@ class LibraryItemPolicy extends BasePolicy
*/
public function update(User $user, LibraryItem $libraryItem)
{
return false;
return $libraryItem->created_by === $user->id;
}
/**

View File

@@ -53,7 +53,7 @@ class LibraryPolicy extends BasePolicy
*/
public function update(User $user, Library $library)
{
return false;
return $library->created_by === $user->id;
}
/**

View File

@@ -53,7 +53,7 @@ class MeetupEventPolicy extends BasePolicy
*/
public function update(User $user, MeetupEvent $meetupEvent)
{
return false;
return $meetupEvent->created_by === $user->id;
}
/**

View File

@@ -57,7 +57,7 @@ class MeetupPolicy extends BasePolicy
*/
public function update(User $user, Meetup $meetup)
{
return false;
return $meetup->created_by === $user->id;
}
/**

View File

@@ -14,6 +14,7 @@ class OrangePillPolicy extends BasePolicy
* Determine whether the user can view any models.
*
* @param \App\Models\User $user
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function viewAny(User $user)
@@ -26,6 +27,7 @@ class OrangePillPolicy extends BasePolicy
*
* @param \App\Models\User $user
* @param \App\Models\OrangePill $orangePill
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function view(User $user, OrangePill $orangePill)
@@ -37,6 +39,7 @@ class OrangePillPolicy extends BasePolicy
* Determine whether the user can create models.
*
* @param \App\Models\User $user
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function create(User $user)
@@ -49,11 +52,12 @@ class OrangePillPolicy extends BasePolicy
*
* @param \App\Models\User $user
* @param \App\Models\OrangePill $orangePill
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function update(User $user, OrangePill $orangePill)
{
return false;
return $orangePill->user_id === $user->id;
}
/**
@@ -61,6 +65,7 @@ class OrangePillPolicy extends BasePolicy
*
* @param \App\Models\User $user
* @param \App\Models\OrangePill $orangePill
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function delete(User $user, OrangePill $orangePill)
@@ -73,6 +78,7 @@ class OrangePillPolicy extends BasePolicy
*
* @param \App\Models\User $user
* @param \App\Models\OrangePill $orangePill
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function restore(User $user, OrangePill $orangePill)
@@ -85,6 +91,7 @@ class OrangePillPolicy extends BasePolicy
*
* @param \App\Models\User $user
* @param \App\Models\OrangePill $orangePill
*
* @return \Illuminate\Auth\Access\Response|bool
*/
public function forceDelete(User $user, OrangePill $orangePill)

View File

@@ -57,8 +57,7 @@ class VenuePolicy extends BasePolicy
*/
public function update(User $user, Venue $venue)
{
return $venue->lecturers->where('team_id', $user->current_team_id)
->isNotEmpty();
return $venue->created_by === $user->id;
}
/**