master

laravel/framework

Last updated at: 29/12/2023 09:25

CompilesAuthorizations.php

TLDR

This file provides a trait called "CompilesAuthorizations" which contains methods for compiling authorization statements in Laravel views. These methods generate valid PHP code for checking user permissions.

Methods

compileCan($expression)

This method compiles the "can" statements into valid PHP code. It takes an expression as a parameter and returns a string containing the generated PHP code.

compileCannot($expression)

This method compiles the "cannot" statements into valid PHP code. It takes an expression as a parameter and returns a string containing the generated PHP code.

compileCanany($expression)

This method compiles the "canany" statements into valid PHP code. It takes an expression as a parameter and returns a string containing the generated PHP code.

compileElsecan($expression)

This method compiles the "else-can" statements into valid PHP code. It takes an expression as a parameter and returns a string containing the generated PHP code.

compileElsecannot($expression)

This method compiles the "else-cannot" statements into valid PHP code. It takes an expression as a parameter and returns a string containing the generated PHP code.

compileElsecanany($expression)

This method compiles the "else-canany" statements into valid PHP code. It takes an expression as a parameter and returns a string containing the generated PHP code.

compileEndcan()

This method compiles the "end-can" statements into valid PHP code. It returns a string containing the generated PHP code.

compileEndcannot()

This method compiles the "end-cannot" statements into valid PHP code. It returns a string containing the generated PHP code.

compileEndcanany()

This method compiles the "end-canany" statements into valid PHP code. It returns a string containing the generated PHP code.

<?php

namespace Illuminate\View\Compilers\Concerns;

trait CompilesAuthorizations
{
    /**
     * Compile the can statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileCan($expression)
    {
        return "<?php if (app(\Illuminate\\Contracts\\Auth\\Access\\Gate::class)->check{$expression}): ?>";
    }

    /**
     * Compile the cannot statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileCannot($expression)
    {
        return "<?php if (app(\Illuminate\\Contracts\\Auth\\Access\\Gate::class)->denies{$expression}): ?>";
    }

    /**
     * Compile the canany statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileCanany($expression)
    {
        return "<?php if (app(\Illuminate\\Contracts\\Auth\\Access\\Gate::class)->any{$expression}): ?>";
    }

    /**
     * Compile the else-can statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileElsecan($expression)
    {
        return "<?php elseif (app(\Illuminate\\Contracts\\Auth\\Access\\Gate::class)->check{$expression}): ?>";
    }

    /**
     * Compile the else-cannot statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileElsecannot($expression)
    {
        return "<?php elseif (app(\Illuminate\\Contracts\\Auth\\Access\\Gate::class)->denies{$expression}): ?>";
    }

    /**
     * Compile the else-canany statements into valid PHP.
     *
     * @param  string  $expression
     * @return string
     */
    protected function compileElsecanany($expression)
    {
        return "<?php elseif (app(\Illuminate\\Contracts\\Auth\\Access\\Gate::class)->any{$expression}): ?>";
    }

    /**
     * Compile the end-can statements into valid PHP.
     *
     * @return string
     */
    protected function compileEndcan()
    {
        return '<?php endif; ?>';
    }

    /**
     * Compile the end-cannot statements into valid PHP.
     *
     * @return string
     */
    protected function compileEndcannot()
    {
        return '<?php endif; ?>';
    }

    /**
     * Compile the end-canany statements into valid PHP.
     *
     * @return string
     */
    protected function compileEndcanany()
    {
        return '<?php endif; ?>';
    }
}