mirror of
				https://github.com/getgrav/grav-plugin-admin.git
				synced 2025-11-03 20:05:53 +01:00 
			
		
		
		
	Moved GPM get updates to standard method
This commit is contained in:
		
							
								
								
									
										61
									
								
								admin.php
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								admin.php
									
									
									
									
									
								
							@@ -2,7 +2,6 @@
 | 
				
			|||||||
namespace Grav\Plugin;
 | 
					namespace Grav\Plugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Grav\Common\File\CompiledYamlFile;
 | 
					use Grav\Common\File\CompiledYamlFile;
 | 
				
			||||||
use Grav\Common\GPM\GPM;
 | 
					 | 
				
			||||||
use Grav\Common\Grav;
 | 
					use Grav\Common\Grav;
 | 
				
			||||||
use Grav\Common\Inflector;
 | 
					use Grav\Common\Inflector;
 | 
				
			||||||
use Grav\Common\Language\Language;
 | 
					use Grav\Common\Language\Language;
 | 
				
			||||||
@@ -508,65 +507,6 @@ class AdminPlugin extends Plugin
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Handles getting GPM updates
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function onTaskGPM()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $task = 'GPM';
 | 
					 | 
				
			||||||
        if (!$this->admin->authorize(['admin.maintenance', 'admin.super'])) {
 | 
					 | 
				
			||||||
            $this->admin->json_response = [
 | 
					 | 
				
			||||||
                'status'  => 'unauthorized',
 | 
					 | 
				
			||||||
                'message' => $this->admin->translate('PLUGIN_ADMIN.INSUFFICIENT_PERMISSIONS_FOR_TASK') . ' ' . $task . '.'
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $action = $_POST['action']; // getUpdatable | getUpdatablePlugins | getUpdatableThemes | gravUpdates
 | 
					 | 
				
			||||||
        $flush = isset($_POST['flush']) && $_POST['flush'] == true ? true : false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (isset($this->grav['session'])) {
 | 
					 | 
				
			||||||
            $this->grav['session']->close();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        try {
 | 
					 | 
				
			||||||
            $gpm = new GPM($flush);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            switch ($action) {
 | 
					 | 
				
			||||||
                case 'getUpdates':
 | 
					 | 
				
			||||||
                    $resources_updates = $gpm->getUpdatable();
 | 
					 | 
				
			||||||
                    if ($gpm->grav != null) {
 | 
					 | 
				
			||||||
                        $grav_updates = [
 | 
					 | 
				
			||||||
                            "isUpdatable" => $gpm->grav->isUpdatable(),
 | 
					 | 
				
			||||||
                            "assets"      => $gpm->grav->getAssets(),
 | 
					 | 
				
			||||||
                            "version"     => GRAV_VERSION,
 | 
					 | 
				
			||||||
                            "available"   => $gpm->grav->getVersion(),
 | 
					 | 
				
			||||||
                            "date"        => $gpm->grav->getDate(),
 | 
					 | 
				
			||||||
                            "isSymlink"   => $gpm->grav->isSymlink()
 | 
					 | 
				
			||||||
                        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        echo json_encode([
 | 
					 | 
				
			||||||
                            "status"  => "success",
 | 
					 | 
				
			||||||
                            "payload" => [
 | 
					 | 
				
			||||||
                                "resources" => $resources_updates,
 | 
					 | 
				
			||||||
                                "grav"      => $grav_updates,
 | 
					 | 
				
			||||||
                                "installed" => $gpm->countInstalled(),
 | 
					 | 
				
			||||||
                                'flushed'   => $flush
 | 
					 | 
				
			||||||
                            ]
 | 
					 | 
				
			||||||
                        ]);
 | 
					 | 
				
			||||||
                    } else {
 | 
					 | 
				
			||||||
                        echo json_encode(["status" => "error", "message" => "Cannot connect to the GPM"]);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        } catch (\Exception $e) {
 | 
					 | 
				
			||||||
            echo json_encode(["status" => "error", "message" => $e->getMessage()]);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        exit;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Get list of form field types specified in this plugin. Only special types needs to be listed.
 | 
					     * Get list of form field types specified in this plugin. Only special types needs to be listed.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
@@ -618,7 +558,6 @@ class AdminPlugin extends Plugin
 | 
				
			|||||||
            'onTwigTemplatePaths'        => ['onTwigTemplatePaths', 1000],
 | 
					            'onTwigTemplatePaths'        => ['onTwigTemplatePaths', 1000],
 | 
				
			||||||
            'onTwigSiteVariables'        => ['onTwigSiteVariables', 1000],
 | 
					            'onTwigSiteVariables'        => ['onTwigSiteVariables', 1000],
 | 
				
			||||||
            'onAssetsInitialized'        => ['onAssetsInitialized', 1000],
 | 
					            'onAssetsInitialized'        => ['onAssetsInitialized', 1000],
 | 
				
			||||||
            'onTask.GPM'                 => ['onTaskGPM', 0],
 | 
					 | 
				
			||||||
            'onAdminRegisterPermissions' => ['onAdminRegisterPermissions', 0],
 | 
					            'onAdminRegisterPermissions' => ['onAdminRegisterPermissions', 0],
 | 
				
			||||||
            'onOutputGenerated'          => ['onOutputGenerated', 0],
 | 
					            'onOutputGenerated'          => ['onOutputGenerated', 0],
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,6 +5,7 @@ use Grav\Common\Cache;
 | 
				
			|||||||
use Grav\Common\Config\Config;
 | 
					use Grav\Common\Config\Config;
 | 
				
			||||||
use Grav\Common\File\CompiledYamlFile;
 | 
					use Grav\Common\File\CompiledYamlFile;
 | 
				
			||||||
use Grav\Common\Filesystem\Folder;
 | 
					use Grav\Common\Filesystem\Folder;
 | 
				
			||||||
 | 
					use Grav\Common\GPM\GPM;
 | 
				
			||||||
use Grav\Common\GPM\Installer;
 | 
					use Grav\Common\GPM\Installer;
 | 
				
			||||||
use Grav\Common\Grav;
 | 
					use Grav\Common\Grav;
 | 
				
			||||||
use Grav\Common\Data;
 | 
					use Grav\Common\Data;
 | 
				
			||||||
@@ -793,6 +794,51 @@ class AdminController extends AdminBaseController
 | 
				
			|||||||
        $this->admin->json_response = ['status' => 'success', 'feed_data' => $feed_data];
 | 
					        $this->admin->json_response = ['status' => 'success', 'feed_data' => $feed_data];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Get update status from GPM
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    protected function taskGetUpdates()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $data     = $this->post;
 | 
				
			||||||
 | 
					        $flush = isset($data['flush']) && $data['flush'] == true ? true : false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (isset($this->grav['session'])) {
 | 
				
			||||||
 | 
					            $this->grav['session']->close();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            $gpm = new GPM($flush);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $resources_updates = $gpm->getUpdatable();
 | 
				
			||||||
 | 
					            if ($gpm->grav != null) {
 | 
				
			||||||
 | 
					                $grav_updates = [
 | 
				
			||||||
 | 
					                    "isUpdatable" => $gpm->grav->isUpdatable(),
 | 
				
			||||||
 | 
					                    "assets"      => $gpm->grav->getAssets(),
 | 
				
			||||||
 | 
					                    "version"     => GRAV_VERSION,
 | 
				
			||||||
 | 
					                    "available"   => $gpm->grav->getVersion(),
 | 
				
			||||||
 | 
					                    "date"        => $gpm->grav->getDate(),
 | 
				
			||||||
 | 
					                    "isSymlink"   => $gpm->grav->isSymlink()
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                $this->admin->json_response = [
 | 
				
			||||||
 | 
					                    "status"  => "success",
 | 
				
			||||||
 | 
					                    "payload" => [
 | 
				
			||||||
 | 
					                        "resources" => $resources_updates,
 | 
				
			||||||
 | 
					                        "grav"      => $grav_updates,
 | 
				
			||||||
 | 
					                        "installed" => $gpm->countInstalled(),
 | 
				
			||||||
 | 
					                        'flushed'   => $flush
 | 
				
			||||||
 | 
					                    ]
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                $this->admin->json_response = ["status" => "error", "message" => "Cannot connect to the GPM"];
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            $this->admin->json_response = ["status" => "error", "message" => $e->getMessage()];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Get Notifications from cache.
 | 
					     * Get Notifications from cache.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
title: Cache
 | 
					title: Updates
 | 
				
			||||||
template: default
 | 
					template: default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
access:
 | 
					access:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user