This commit is contained in:
tanch0
2024-06-20 16:42:33 +05:45
parent 5554837c97
commit adfc826e9c
46 changed files with 2385 additions and 70 deletions

View File

@ -3,10 +3,13 @@
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\Advertisements;
use App\Models\Menuitems;
use App\Models\User;
use App\Models\News;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;
class AuthenticationController extends Controller
{
@ -15,6 +18,16 @@ class AuthenticationController extends Controller
public function __construct()
{
$this->path = config('app.client_path');
$ads = Advertisements::where('status', 1)->where('parent_advertisement',0)->get();
$headerMenuItems = Menuitems::where(['parent_menu' => 0, "status" => 1, "menulocations_id" => 1])->with('children')->orderBy('display_order')->get();
$footerMenuItems = Menuitems::where(['parent_menu' => 0, "status" => 1, "menulocations_id" => 2])->with('children')->orderBy('display_order')->get();
$latestNews = News::where('status', 1)->inRandomOrder()->limit(4)->get();
View::share([
'ads' => $ads,
'headerMenuItems' => $headerMenuItems,
'footerMenuItems' => $footerMenuItems,
'latestNews' => $latestNews
]);
}
public function login()
@ -29,6 +42,7 @@ class AuthenticationController extends Controller
public static function store(Request $request)
{
dd($request->all());
$request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],

View File

@ -0,0 +1,150 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use App\Service\CommonModelService;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Log;
use Exception;
class PermissionsController extends Controller
{
protected $modelService;
public function __construct(Permission $model)
{
$this->modelService = new CommonModelService($model);
}
public function index(Request $request)
{
createActivityLog(PermissionsController::class, 'index', ' Permissions index');
$data = Permission::get();
return view("crud.generated.permissions.index", compact('data'));
}
public function create(Request $request)
{
createActivityLog(PermissionsController::class, 'create', ' Permissions create');
$TableData = Permission::get();
return view("crud.generated.permissions.create", compact('TableData'));
}
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|max:255',
]);
Permission::create($validated);
if ($request->ajax()) {
return response()->json(['status' => true, 'message' => 'The Permissions Created Successfully.'], 200);
}
return redirect()->route('permissions.index')->with('success', 'The Permissions created Successfully.');
}
public function sort(Request $request)
{
$idOrder = $request->input('id_order');
foreach ($idOrder as $index => $id) {
$companyArticle = Permission::find($id);
$companyArticle->display_order = $index + 1;
$companyArticle->save();
}
return response()->json(['status' => true, 'content' => 'The articles sorted successfully.'], 200);
}
public function updatealias(Request $request)
{
$articleId = $request->input('articleId');
$newAlias = $request->input('newAlias');
$companyArticle = Permission::find($articleId);
if (!$companyArticle) {
return response()->json(['status' => false, 'content' => 'Company article not found.'], 404);
}
$companyArticle->alias = $newAlias;
$companyArticle->save();
return response()->json(['status' => true, 'content' => 'Alias updated successfully.'], 200);
}
public function show(Request $request, $id)
{
createActivityLog(PermissionsController::class, 'show', ' Permissions show');
$data = Permission::findOrFail($id);
return view("crud.generated.permissions.show", compact('data'));
}
public function edit(Request $request, $id)
{
createActivityLog(PermissionsController::class, 'edit', ' Permissions edit');
$TableData = Permission::get();
$data = Permission::findOrFail($id);
if ($request->ajax()) {
$html = view("crud.generated.permissions.ajax.edit", compact('data'))->render();
return response()->json(['status' => true, 'content' => $html], 200);
}
return view("crud.generated.permissions.edit", compact('data', 'TableData'));
}
public function update(Request $request, Permission $permission)
{
$validated = $request->validate(['name' => 'required']);
$permission->update($validated);
if ($request->ajax()) {
return response()->json(['status' => true, 'message' => 'The Permissions updated Successfully.'], 200);
}
// return redirect()->route('permissions.index')->with('success','The Permissions updated Successfully.');
return redirect()->route('permissions.index')->with('success', 'The Permissions updated successfully.');
}
public function destroy(Request $request, $id)
{
createActivityLog(PermissionsController::class, 'destroy', ' Permissions destroy');
DB::beginTransaction();
try {
$OperationNumber = getOperationNumber();
$this->modelService->destroy($OperationNumber, $OperationNumber, $id);
} catch (Exception $e) {
DB::rollBack();
Log::info($e->getMessage());
createErrorLog(PermissionsController::class, 'destroy', $e->getMessage());
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
}
DB::commit();
return response()->json(['status' => true, 'message' => 'The Permissions Deleted Successfully.'], 200);
}
public function toggle(Request $request, $id)
{
createActivityLog(PermissionsController::class, 'destroy', ' Permissions destroy');
$data = Permission::findOrFail($id);
$requestData = ['status' => ($data->status == 1) ? 0 : 1];
DB::beginTransaction();
try {
$OperationNumber = getOperationNumber();
$this->modelService->update($OperationNumber, $OperationNumber, null, $requestData, $id);
} catch (Exception $e) {
DB::rollBack();
Log::info($e->getMessage());
createErrorLog(PermissionsController::class, 'destroy', $e->getMessage());
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
}
DB::commit();
return response()->json(['status' => true, 'message' => 'The Permissions Deleted Successfully.'], 200);
}
}

View File

@ -0,0 +1,125 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Roles;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use App\Service\CommonModelService;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use Log;
use Exception;
class RolesController extends Controller
{
protected $modelService;
public function __construct(Roles $model)
{
$this->modelService = new CommonModelService($model);
}
public function index(Request $request)
{
createActivityLog(RolesController::class, 'index', ' Roles index');
$data = Role::whereNotIn('name', ['admin'])->get();
return view("crud.generated.roles.index", compact('data'));
}
public function create(Request $request)
{
createActivityLog(RolesController::class, 'create', ' Roles create');
$TableData = Roles::get();
$permissions = Permission::all();
return view("crud.generated.roles.create", compact('TableData', 'permissions'));
}
public function store(Request $request)
{
$validated = $request->validate(['name' => ['required', 'min:3']]);
$role = Role::create($validated);
if ($role->hasPermissionTo($request->permission, 'web')) {
return back()->with('message', 'Permission exists.');
}
$role->givePermissionTo($request->permission);
if ($request->ajax()) {
return response()->json(['status' => true, 'message' => 'The Roles Created Successfully.'], 200);
}
return redirect()->route('roles.index')->with('success', 'The Roles created Successfully.');
}
public function sort(Request $request)
{
$idOrder = $request->input('id_order');
foreach ($idOrder as $index => $id) {
$companyArticle = Roles::find($id);
$companyArticle->display_order = $index + 1;
$companyArticle->save();
}
return response()->json(['status' => true, 'content' => 'The articles sorted successfully.'], 200);
}
public function show(Request $request, $id)
{
createActivityLog(RolesController::class, 'show', ' Roles show');
$data = Roles::findOrFail($id);
return view("crud.generated.roles.show", compact('data'));
}
public function edit(Request $request, $id)
{
createActivityLog(RolesController::class, 'edit', ' Roles edit');
$permissions = Permission::all();
$TableData = Role::get();
$data = Role::findOrFail($id);
if ($request->ajax()) {
$html = view("crud.generated.roles.ajax.edit", compact('data'))->render();
return response()->json(['status' => true, 'content' => $html], 200);
}
return view("crud.generated.roles.edit", compact('data', 'TableData', 'permissions'));
}
public function update(Request $request, Role $role)
{
$permission = $request->permission;
$validated = $request->validate(['name' => ['required', 'min:3']]);
$role->update($validated);
if($permission){
$role->givePermissionTo($permission);
}
if ($request->ajax()) {
return response()->json(['status' => true, 'message' => 'The Roles updated Successfully.'], 200);
}
// return redirect()->route('roles.index')->with('success','The Roles updated Successfully.');
return redirect()->back()->with('success', 'The Roles updated successfully.');
}
public function destroy(Role $role)
{
$role->delete();
return response()->json(['status' => true, 'message' => 'The Roles Deleted Successfully.'], 200);
}
public function revokePermission(Role $role, Permission $permission)
{
if ($role->hasPermissionTo($permission)) {
$role->revokePermissionTo($permission);
return back()->with('message', 'Permission revoked.');
}
return back()->with('message', 'Permission not exists.');
}
}

View File

@ -0,0 +1,117 @@
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use App\Service\CommonModelService;
use Log;
use Exception;
class UsersController extends Controller
{
protected $modelService;
public function __construct(User $model)
{
$this->modelService = new CommonModelService($model);
}
public function index(Request $request)
{
createActivityLog(UsersController::class, 'index', 'User index');
$data = User::get();
return view("crud.generated.users.index", compact('data'));
}
public function show(Request $request, $id)
{
createActivityLog(UsersController::class, 'show', 'User show');
$data = User::findOrFail($id);
return view("crud.generated.User.show", compact('data'));
}
public function edit(Request $request, $id)
{
createActivityLog(UsersController::class, 'edit', 'User edit');
$TableData = User::get();
$data = User::findOrFail($id);
$roles = Role::all();
$permissions = Permission::all();
if ($request->ajax()) {
$html = view("crud.generated.User.ajax.edit", compact('data'))->render();
return response()->json(['status' => true, 'content' => $html], 200);
}
return view("crud.generated.users.edit", compact('data', 'TableData', 'roles', 'permissions'));
}
public function update(Request $request, User $user)
{
// dd($request->toArray());
if ($request->permission) {
if ($user->hasPermissionTo($request->permission)) {
return redirect()->back()->with('error', 'The User already has this permission.');
}
$user->givePermissionTo($request->permission);
}
if ($request->role) {
if ($user->hasRole($request->role)) {
return redirect()->back()->with('error', 'The User already has this role.');
}
$user->assignRole($request->role);
}
if ($request->ajax()) {
return response()->json(['status' => true, 'message' => 'The User updated Successfully.'], 200);
}
// Logic to update user should be added here
return redirect()->back()->with('success', 'The User updated successfully.');
}
public function destroy(Request $request, $id)
{
createActivityLog(UsersController::class, 'destroy', 'User destroy');
DB::beginTransaction();
try {
$OperationNumber = getOperationNumber();
$this->modelService->destroy($OperationNumber, $OperationNumber, $id);
} catch (Exception $e) {
DB::rollBack();
Log::info($e->getMessage());
createErrorLog(UsersController::class, 'destroy', $e->getMessage());
return response()->json(['status' => false, 'message' => $e->getMessage()], 500);
}
DB::commit();
return response()->json(['status' => true, 'message' => 'The User Deleted Successfully.'], 200);
}
public function removeRole(User $user, Role $role)
{
if ($user->hasRole($role)) {
$user->removeRole($role);
return back()->with('message', 'Role removed.');
}
return back()->with('message', 'Role not exists.');
}
public function revokePermission(User $user, Permission $permission)
{
if ($user->hasPermissionTo($permission)) {
$user->revokePermissionTo($permission);
return back()->with('message', 'Permission revoked.');
}
return back()->with('message', 'Permission does not exists.');
}
}

View File

@ -51,7 +51,8 @@ class VideosController extends Controller
'error' => $validator->errors(),
], 500);
}
$request->mergeIfMissing(['alias' => slugify($request->title)]);
$request->mergeIfMissing(['alias' => Str::slug($request->title)]);
$request->request->add(['display_order' => getDisplayOrder('tbl_videos')]);
$requestData = $request->all();
array_walk_recursive($requestData, function (&$value) {
@ -134,7 +135,7 @@ class VideosController extends Controller
'error' => $validator->errors(),
], 500);
}
$request->mergeIfMissing(['alias' => slugify($request->title)]);
$request->mergeIfMissing(['alias' => Str::slug($request->title)]);
$filterData = $request->except(['_token', '_method']);
array_walk_recursive($filterData, function (&$value) {
$value = str_replace(env('APP_URL') . '/', '', $value);

View File

@ -177,15 +177,10 @@ class WebsiteController extends Controller
$data = News::where('provinces_id',$id)->where('status',1)->orderBy('display_order')->paginate(9);
return view($this->path . '.single', compact('data','categoryTitle'));
}
public function videoDetail($alias){
$data = Videos::where('alias', $alias)->where('status', 1)->first();
$recentNews = News::where('status',1)->inRandomOrder()->limit(12)->latest()->get();
return view($this->path . '.video-detail', compact('data','recentNews'));
}
}
// public function single($alias)
// {
// $categoryId = Newscategories::where('alias', $alias)->pluck('category_id')->first();
// $categoryTitle = Newscategories::where('alias', $alias)->pluck('nepali_title')->first();
// $data = News::where('newscategories_id', $categoryId)->where('status', 1)->orderBy('display_order')->paginate(9);
// return view($this->path . '.single', compact('data', 'categoryTitle'));
// }