summaryrefslogtreecommitdiff
path: root/moe/includes/core.php
diff options
context:
space:
mode:
authorpantsucat <contact@pantsu.cat>2015-09-19 15:18:13 +0200
committerWubTheCaptain <wub@partyvan.eu>2015-09-19 16:18:26 +0200
commitbaec4f769c70c463cf338463cc295cb1f855390b (patch)
tree71bb3b880e6b3b85747bc5270a537ecf9acce3c3 /moe/includes/core.php
parent725fe56786edcb627d1f03a6a4045d3980eacc10 (diff)
Remove moe panel from core
The moe panel is more of an extension of the core, but not necessary for Pomf's functionality. The code also suffers from bad practices and it's more of a prototype. The panel is also mostly unmaintained by its author. This code will be in a seperate Git repository called pomf-moe from now on.
Diffstat (limited to 'moe/includes/core.php')
-rw-r--r--moe/includes/core.php312
1 files changed, 0 insertions, 312 deletions
diff --git a/moe/includes/core.php b/moe/includes/core.php
deleted file mode 100644
index d0ef9d0..0000000
--- a/moe/includes/core.php
+++ /dev/null
@@ -1,312 +0,0 @@
-<?php
-// This file will handle all functions used by Pomf's Moe Panel
-session_start();
-
-$db = new PDO(
- 'mysql:unix_socket=/var/run/mysqld/mysqld.sock;dbname=pomf',
- 'xxx',
- 'xxx',
- array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'")
-);
-
-function register($email, $pass, $code) {
- global $db;
-
- $do = $db->prepare("SELECT code, used, level FROM invites WHERE email = (:email)");
- $do->bindParam(':email', $email);
- $do->execute();
- $result = $do->fetch();
-
- if (!$result['code'] == $code) {
- header('Location: ../register/index.html#fail2');
- } elseif ($result['used'] == '1') {
- header('Location: ../register/index.html#fail3');
- } else {
- $do = $db->prepare("INSERT INTO accounts (email, pass, level) VALUES (:email, :pass, :level)");
- $do->bindParam(':email', $email);
- $do->bindParam(':level', $result['level']);
- $hash = password_hash($pass, PASSWORD_DEFAULT);
- $do->bindParam(':pass', $hash);
- $do->execute();
-
- $do = $db->prepare("UPDATE invites SET used = (:used) WHERE email = (:email)");
- $do->bindValue(':used', '1');
- $do->bindParam(':email', $email);
- $do->execute();
-
- $_SESSION['id'] = $result['id'];
- $_SESSION['email'] = $result['email'];
-
- header('Location: api.php?do=cp');
- }
-}
-
-function generate($email, $level) {
- global $db;
-
- if ($_SESSION['level'] === '1') {
- $do = $db->prepare("INSERT INTO invites (email, code, level) VALUES (:email, :code, :level)");
- $do->bindParam(':email', $email);
- $code = generateRandomString();
- $do->bindParam(':code', $code);
- $do->bindParam(':level', $level);
- $do->execute();
-
- require_once('Mail.php');
- $from = "Invites <invites@pomf.se>";
- $to = $email;
- $subject = "Pomf.se Account Invite";
- $body = "This is a automated message from Pomf.se \n Your invite code is: ".$code."\n Your invite email is: ".$email." \n Access level: ".$level." \n Register at http://cayootie.pomf.se/user/register";
-
- $host = "xxx";
- $username = "xxx";
- $password = "xxx";
-
- $headers = array(
- 'From' => $from,
- 'To' => $to,
- 'Subject' => $subject
- );
-
- $smtp = Mail::factory(
- 'smtp',
- array(
- 'host' => $host,
- 'auth' => true,
- 'username' => $username,
- 'password' => $password
- )
- );
-
- $mail = $smtp->send($to, $headers, $body);
-
- if (PEAR::isError($mail)) {
- echo("<p>" . $mail->getMessage() . "</p>");
- } else {
- echo("<p>Message successfully sent!</p>");
- }
- } else {
- echo 'What are you doing here? Go away!';
- }
-}
-
-function generateRandomString($length = 36) {
- $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $randomString = '';
- for ($i = 0; $i < $length; $i++) {
- $randomString .= $characters[rand(0, strlen($characters) - 1)];
- }
-
- return $randomString;
-}
-
-function login($email, $pass) {
- global $db;
-
- $do = $db->prepare("SELECT pass, id, email, level FROM accounts WHERE email = (:email)");
- $do->bindParam(':email', $email);
- $do->execute();
- $result = $do->fetch(PDO::FETCH_ASSOC);
-
- if (password_verify($pass, $result['pass'])) {
- $_SESSION['id'] = $result['id'];
- $_SESSION['email'] = $result['email'];
- $_SESSION['level'] = $result['level'];
- header('Location: api.php?do=cp');
- } else {
- header('Location: ../login/index.html#fail');
- }
-}
-
-function search($word) {
- if (empty($word)) {
- return;
- }
-
- global $db;
-
- $str = "%".$word."%";
- $id = $_SESSION['id'];
-
- if ($_SESSION['level'] === '1') {
- $do = $db->prepare("SELECT originalname, filename FROM files WHERE originalname LIKE (:1) OR filename LIKE (:2)");
- $do->bindParam(':1', $str);
- $do->bindParam(':2', $str);
- $do->execute();
-
- while ($row = $do->fetch(PDO::FETCH_ASSOC)) {
- print strip_tags($row['originalname']).' - '.'<a href="http://a.pomf.se/'.$row['filename'].'" target="_BLANK">'.$row['filename'].' </a> '.'<a href="http://cayootie.pomf.se/user/includes/api.php?do=delete&f='.$row['filename'].'" target="_BLANK"> Delete</a><br/>';
- }
- } else {
- // Yes I love not being efficient, deal with it.
- $do = $db->prepare("SELECT originalname, filename FROM files WHERE originalname LIKE (:1) AND user = (:3) OR filename LIKE (:2) AND user = (:3)");
- $do->bindParam(':1', $str);
- $do->bindParam(':2', $str);
- $do->bindParam(':3', $id);
- $do->execute();
-
- while ($row = $do->fetch(PDO::FETCH_ASSOC)) {
- print strip_tags($row['originalname']).' - '.'<a href="http://a.pomf.se/'.$row['filename'].'" target="_BLANK">'.$row['filename'].' </a> '.'<a href="http://cayootie.pomf.se/user/includes/api.php?do=delete&f='.$row['filename'].'" target="_BLANK"> Delete</a><br/>';
- }
- }
-}
-
-function cfdelete($file) {
- $butts = array(
- 'a' => 'zone_file_purge',
- 'tkn' => 'xxxx',
- 'email' => 'xxx',
- 'z' => 'pomf.se',
- 'url' => urlencode('http://a.pomf.se/'.$file),
- );
-
- foreach ($butts as $dick=>$cum) {
- $butts_string .= $dick.'='.$cum.'&';
- }
- rtrim($butts_string, '&');
-
- $hue = curl_init();
- curl_setopt($hue,CURLOPT_URL, 'https://www.cloudflare.com/api_json.html');
- curl_setopt($hue,CURLOPT_POST, count($butts));
- curl_setopt($hue,CURLOPT_POSTFIELDS, $butts_string);
- curl_setopt($hue,CURLOPT_RETURNTRANSFER, true);
- curl_exec($hue);
- curl_close($hue);
-}
-
-function delete($filename, $deleteid, $mod) {
- if (empty($filename)) {
- echo "You did something wrong, baka.";
- } else {
- global $db;
-
- $do = $db->prepare("SELECT filename, delid, id, user FROM files WHERE filename = (:filename)");
- $do->bindParam(':filename', $filename);
- $do->execute();
- $result = $do->fetch(PDO::FETCH_ASSOC);
-
- if ($_SESSION['level'] === '1' || $result['user'] === $_SESSION['id']) {
- $do = $db->prepare("DELETE FROM files WHERE id = (:id)");
- $do->bindParam(':id', $result['id']);
- $do->execute();
-
- unlink('/home/neku/pomf/files/'.$filename);
- cfdelete($filename);
-
- echo "<br/>File deleted and hopefully deleted from Cloudflares cache in a moment..<br/>";
- } else {
- echo 'Shame on you';
- }
- }
-}
-
-function mod($action, $date, $count, $why, $file, $keyword, $fileid, $hash, $oginalname) {
- if ($_SESSION['level'] > '0') {
- global $db;
-
- switch ($action) {
- case "fetch":
- if ($_SESSION['level'] > '0') {
- $do = $db->prepare("SELECT * FROM files WHERE originalname LIKE (:keyword) AND date LIKE (:date) OR filename LIKE (:keyword) AND date LIKE (:date) ORDER BY id DESC LIMIT 0,:amount");
- } else {
- $do = $db->prepare("SELECT * FROM files WHERE originalname LIKE (:keyword) AND date LIKE (:date) AND user = (:userid) OR filename LIKE (:keyword) AND date LIKE (:date) AND user = (:userid) ORDER BY id$
- $do->bindValue(':userid', $_SESSION['id']);
- }
- $do->bindValue(':date', "%".$date."%");
- $do->bindValue(':amount', (int) $count, PDO::PARAM_INT);
- $do->bindValue(':keyword', "%".$keyword."%");
- $do->execute();
-
- echo '<!DOCTYPE html><html><head><title>Mod</title>
- <style>
- table,th,td{border:1px solid black; border-collapse:collapse;}
- th,td{padding:5px;}
- </style></head><body>
- <p>Keep in mind that this is a alpha version of the mod panel, click <a href="http://cayootie.pomf.se/user/includes/api.php?do=logout">here</a> to logout or <a href="http://cayootie.pomf.se/user/panel" target="_BLANK">here</a> to go to the panel for your personal account.</p>
- <form action="http://cayootie.pomf.se/user/includes/api.php" method="get">
- <input type="hidden" name="do" value="mod">
- <input type="hidden" name="action" value="fetch">
- Date: <input type="text" name="date" value="'.date('Y-m-d').'">
- Amount: <input type="text" name="count" value="30">
- Keyword: <input type="text" name="keyword">
- <input type="submit" value="fetch">
- </form><br>
- <table id="result" style="width:100%">
- <tr><th>ID</th><th>Orginal Name</th><th>Filename</th><th>Size (bytes)</th><th>Action</th></tr>';
-
- $i = 0;
- while ($row = $do->fetch(PDO::FETCH_ASSOC)) {
- $i++;
- echo '<tr><td>'.$row['id'].'</td>
- <td>'.strip_tags($row['originalname']).'</td>
- <td><a href="http://a.pomf.se/'.$row['filename'].'" target="_BLANK">'.$row['filename'].'</a> ('.$row['originalname'].')</td>
- <td>'.$row['size'].'</td>
- <td><a href="http://cayootie.pomf.se/user/includes/api.php?do=mod&action=remove&fileid='.$row['id'].'&file='.$row['filename'].'" target="_BLANK">Remove</a></td></tr>';
- }
- echo '</table></body></html>';
- echo $i.' Files in total at being shown.';
- break;
- case "report":
- $do = $db->prepare("INSERT INTO reports (hash, date, file, fileid, reporter) VALUES (:hash, :date, :file, :fileid, :reporter)");
- $do->bindValue(':file', strip_tags($file));
- $do->bindValue(':date', date('Y-m-d'));
- $do->bindValue(':reporter', $_SESSION['email']);
- $do->bindValue(':fileid', $fileid);
- $do->bindValue(':hash', $hash);
- $do->execute();
-
- echo 'Thank you, report has been sent. The file will be reviewed and probably deleted.';
- break;
- case "reports":
- if ($_SESSION['id'] === '1') {
- $do = $db->prepare("SELECT * FROM reports WHERE status = '0'");
- $do->execute();
- $i = 0;
- echo '<!DOCTYPE html><html><head><title>Mod</title>
- <style>
- table,th,td{border:1px solid black; border-collapse:collapse;}
- th,td{padding:5px;}
- </style></head><body>
- <p> Status 0 = not removed</p>
- <p> Status 1 = removed (not shown)</p>
- <table id="result" style="width:100%">
- <tr><th>ID</th><th>File</th><th>File ID</th><th>Reporter</th><th>Status</th><th>Action</th></tr>';
- while ($row = $do->fetch(PDO::FETCH_ASSOC)) {
- $i++;
- echo '<tr><td>'.$row['id'].'</td>
- <td><a href="http://a.pomf.se/'.strip_tags($row['file']).'" target="_BLANK">'.strip_tags($row['file']).'</td>
- <td>'.$row['fileid'].'</td>
- <td>'.$row['reporter'].'</td>
- <td>'.$row['status'].'</td>
- <td><a href="http://cayootie.pomf.se/user/includes/api.php?do=mod&action=remove&fileid='.$row['fileid'].'&file='.$row['file'].'" target="_BLANK">Remove file</a></td></tr>';
- }
- echo '</table></body></html>';
- echo $i.' Reports in total at being shown.';
- } else {
- echo 'You are not allowed to be here, yet.';
- }
- break;
- case "remove":
- if ($_SESSION['id'] < '0') {
- delete($file, $fileid);
- }
- if ($_SESSION['id'] > '0') {
- $do = $db->prepare("DELETE FROM files WHERE id = (:id)");
- $do->bindParam(':id', $fileid);
- $do->execute();
-
- unlink('/home/neku/pomf/files/'.$file);
- cfdelete($file);
-
- $do = $db->prepare("UPDATE reports SET status = (:status) WHERE fileid = (:fileid)");
- $do->bindValue(':status', '1');
- $do->bindValue(':fileid', $fileid);
- $do->execute();
-
- echo 'Deleted';
- break;
- }
- }
- }
-}
-?>