App\Http\Controllers\Laralum\RolesController::destroy PHP Method

destroy() public method

public destroy ( $id )
    public function destroy($id)
    {
        Laralum::permissionToAccess('laralum.roles.access');
        # Check permissions
        Laralum::permissionToAccess('laralum.roles.delete');
        # Select Role
        $role = Laralum::role('id', $id);
        if (!$role->allow_editing and !Laralum::loggedInuser()->su) {
            abort(403, trans('laralum.error_editing_disabled'));
        }
        # Check if it's su
        if ($role->su) {
            return abort(403, trans('laralum.error_security_reasons'));
        }
        # Check if it's the default role
        if ($role->id == Laralum::defaultRole()->id) {
            abort(403, trans('laralum.error_security_reasons_default_role'));
        }
        # Delete all relationships
        # Permission Relation
        $rels = Permission_Role::where('role_id', $id)->get();
        foreach ($rels as $rel) {
            $rel->delete();
        }
        # Users Relation
        $rels = Role_User::where('role_id', $id)->get();
        foreach ($rels as $rel) {
            $rel->delete();
        }
        # Delete Role
        $role->delete();
        # Redirect the admin
        return redirect()->route('Laralum::roles')->with('success', trans('laralum.msg_role_deleted'));
    }