mirror of
https://github.com/hak5/nano-tetra-modules.git
synced 2025-10-29 16:58:09 +00:00
Add modules to repository
This commit is contained in:
138
Cabinet/api/module.php
Normal file
138
Cabinet/api/module.php
Normal file
@@ -0,0 +1,138 @@
|
||||
<?php namespace pineapple;
|
||||
|
||||
class Cabinet extends Module
|
||||
{
|
||||
|
||||
public function route()
|
||||
{
|
||||
switch($this->request->action) {
|
||||
case 'getDirectoryContents':
|
||||
$this->getDirectoryContents();
|
||||
break;
|
||||
|
||||
case 'getParentDirectory':
|
||||
$this->getParentDirectory();
|
||||
break;
|
||||
|
||||
case 'deleteFile':
|
||||
$this->deleteFile();
|
||||
break;
|
||||
|
||||
case 'editFile':
|
||||
$this->editFile();
|
||||
break;
|
||||
|
||||
case 'getFileContents':
|
||||
$this->getFileContents();
|
||||
break;
|
||||
|
||||
case 'createFolder':
|
||||
$this->createFolder();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected function getDirectoryContents()
|
||||
{
|
||||
$dir = $this->request->directory;
|
||||
|
||||
$success = false;
|
||||
$contents = array();
|
||||
if (file_exists($dir)) {
|
||||
foreach (preg_grep('/^([^.])/', scandir($dir)) as $file) {
|
||||
$obj = array("name" => $file, "directory" => is_dir($dir . '/' . $file),
|
||||
"path" => realpath($dir . '/' . $file),
|
||||
"permissions" => substr(sprintf('%o', fileperms($dir . '/' . $file)), -4),
|
||||
"size" => filesize($dir . '/' . $file));
|
||||
array_push($contents, $obj);
|
||||
}
|
||||
$success = true;
|
||||
}
|
||||
|
||||
$this->response = array("success" => $success, "contents" => $contents, "directory" => $dir);
|
||||
|
||||
}
|
||||
|
||||
protected function getParentDirectory()
|
||||
{
|
||||
$dir = $this->request->directory;
|
||||
$success = false;
|
||||
$parent = "";
|
||||
|
||||
if (file_exists($dir)) {
|
||||
$parent = dirname($dir);
|
||||
$success = true;
|
||||
}
|
||||
|
||||
$this->response = array("success" => $success, "parent" => $parent);
|
||||
|
||||
}
|
||||
|
||||
protected function deleteFile()
|
||||
{
|
||||
$f = $this->request->file;
|
||||
$success = false;
|
||||
|
||||
if (file_exists($f)) {
|
||||
if (!is_dir($f)) {
|
||||
unlink($f);
|
||||
} else {
|
||||
foreach (preg_grep('/^([^.])/', scandir($f)) as $file) {
|
||||
unlink($f . '/' . $file);
|
||||
}
|
||||
rmdir($f);
|
||||
}
|
||||
}
|
||||
|
||||
if (!file_exists($f)) {
|
||||
$success = true;
|
||||
}
|
||||
|
||||
$this->response = array("success" => $success);
|
||||
|
||||
}
|
||||
|
||||
protected function editFile()
|
||||
{
|
||||
$f = $this->request->file;
|
||||
$data = $this->request->contents;
|
||||
$success = false;
|
||||
|
||||
file_put_contents($f, $data);
|
||||
if (file_exists($f)) {
|
||||
$success = true;
|
||||
}
|
||||
|
||||
$this->response = array("success" => $success);
|
||||
}
|
||||
|
||||
protected function getFileContents()
|
||||
{
|
||||
$f = $this->request->file;
|
||||
$success = false;
|
||||
$content = "";
|
||||
|
||||
if (file_exists($f)) {
|
||||
$success = true;
|
||||
$content = file_get_contents($f);
|
||||
}
|
||||
|
||||
$this->response = array("success" => $success, "content" => $content);
|
||||
|
||||
}
|
||||
|
||||
protected function createFolder()
|
||||
{
|
||||
$dir = $this->request->directory;
|
||||
$name = $this->request->name;
|
||||
$success = false;
|
||||
|
||||
if (!is_dir($dir . '/' . $name)) {
|
||||
$success = true;
|
||||
mkdir($dir . "/" . $name);
|
||||
}
|
||||
|
||||
$this->response = array("success" => $success);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user