Add Language Management Module: Created Language resource with CRUD pages, schemas, and models to support the universal translation system. Implemented localization for English and Turkish, ensuring consistent user experience. Added necessary policies and seeder for initial language data, enhancing the overall language management functionality.

This commit is contained in:
Ümit Tunç
2025-10-01 04:15:21 -03:00
parent 7cbbf521e1
commit a4aea280f2
21 changed files with 2398 additions and 4 deletions
+97
View File
@@ -0,0 +1,97 @@
<?php
namespace App\Policies;
use App\Models\Language;
use App\Models\User;
use Illuminate\Auth\Access\Response;
class LanguagePolicy
{
/**
* Determine whether the user can view any models.
*/
public function viewAny(User $user): bool
{
return $user->hasRole('super_admin') || $user->can('language::viewAny');
}
/**
* Determine whether the user can view the model.
*/
public function view(User $user, Language $language): bool
{
return $user->hasRole('super_admin') || $user->can('language::view');
}
/**
* Determine whether the user can create models.
*/
public function create(User $user): bool
{
return $user->hasRole('super_admin') || $user->can('language::create');
}
/**
* Determine whether the user can update the model.
*/
public function update(User $user, Language $language): bool
{
// Cannot disable default language
if ($language->is_default && !$user->hasRole('super_admin')) {
return false;
}
return $user->hasRole('super_admin') || $user->can('language::update');
}
/**
* Determine whether the user can delete the model.
*/
public function delete(User $user, Language $language): bool
{
// Cannot delete default language
if ($language->is_default) {
return false;
}
return $user->hasRole('super_admin') || $user->can('language::delete');
}
/**
* Determine whether the user can restore the model.
*/
public function restore(User $user, Language $language): bool
{
return $user->hasRole('super_admin') || $user->can('language::restore');
}
/**
* Determine whether the user can permanently delete the model.
*/
public function forceDelete(User $user, Language $language): bool
{
// Cannot force delete default language
if ($language->is_default) {
return false;
}
return $user->hasRole('super_admin') || $user->can('language::forceDelete');
}
/**
* Determine whether the user can activate the language.
*/
public function activate(User $user): bool
{
return $user->hasRole('super_admin') || $user->can('language::activate');
}
/**
* Determine whether the user can set the language as default.
*/
public function setDefault(User $user): bool
{
return $user->hasRole('super_admin') || $user->can('language::setDefault');
}
}