Initial commit
This commit is contained in:
24
LICENSE
Normal file
24
LICENSE
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
This is free and unencumbered software released into the public domain.
|
||||||
|
|
||||||
|
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
distribute this software, either in source code form or as a compiled
|
||||||
|
binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
means.
|
||||||
|
|
||||||
|
In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
of this software dedicate any and all copyright interest in the
|
||||||
|
software to the public domain. We make this dedication for the benefit
|
||||||
|
of the public at large and to the detriment of our heirs and
|
||||||
|
successors. We intend this dedication to be an overt act of
|
||||||
|
relinquishment in perpetuity of all present and future rights to this
|
||||||
|
software under copyright law.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
For more information, please refer to <https://unlicense.org>
|
23
README.md
Normal file
23
README.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
Change Shortlink User for YOURLS Admin
|
||||||
|
====================
|
||||||
|
|
||||||
|
Plugin for [YOURLS](https://yourls.org) `v1.19.2`.
|
||||||
|
|
||||||
|
*I haven't tested it with older versions so tread with caution :)*
|
||||||
|
|
||||||
|
Description
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Allows admin to change the user of a shortlink, including setting it to nothing 😈
|
||||||
|
|
||||||
|
Installation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
1. In `/user/plugins`, run `git clone https://git.oldgate.org/Sophia/yourls-change-shortlink-user.git`.
|
||||||
|
2. Go to the Plugins administration page ( *eg* `http://sho.rt/admin/plugins.php` ) and activate the plugin.
|
||||||
|
|
||||||
|
Thats all folks
|
||||||
|
|
||||||
|
---
|
70
plugin.php
Normal file
70
plugin.php
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
Plugin Name: Change Shortlink User
|
||||||
|
Plugin URI: https://git.oldgate.org/Sophia/yourls-change-shortlink-user
|
||||||
|
Description: Allows admin to change the user of a shortlink, including setting it to nothing 😈
|
||||||
|
Version: 1.0
|
||||||
|
Author: Sophia Atkinson
|
||||||
|
Author URI: https://sophia.wtf
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Hook the plugin into the admin page
|
||||||
|
yourls_add_action('plugins_loaded', 'register_change_username_page');
|
||||||
|
|
||||||
|
// Register the plugin page in the admin menu
|
||||||
|
function register_change_username_page() {
|
||||||
|
yourls_register_plugin_page('change_username', 'Change Shortlink User', 'change_username_display_page');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display the plugin page
|
||||||
|
function change_username_display_page() {
|
||||||
|
// If form is submitted
|
||||||
|
if (isset($_POST['keyword']) && isset($_POST['new_username'])) {
|
||||||
|
$keyword = yourls_sanitize_keyword($_POST['keyword']);
|
||||||
|
$new_username = $_POST['new_username']; // No need to escape as we will use prepared statements
|
||||||
|
|
||||||
|
// Call the function to change the username
|
||||||
|
change_username($keyword, $new_username);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Display the form
|
||||||
|
?>
|
||||||
|
<h2>Change Shortlink User</h2>
|
||||||
|
<form method="post">
|
||||||
|
<p>
|
||||||
|
<label for="keyword">Shortlink Keyword:</label>
|
||||||
|
<input type="text" id="keyword" name="keyword" required>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<label for="new_username">New User (leave blank to clear):</label>
|
||||||
|
<input type="text" id="new_username" name="new_username">
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<input type="submit" value="Change User">
|
||||||
|
</p>
|
||||||
|
</form>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to change the user field
|
||||||
|
function change_username($keyword, $new_username) {
|
||||||
|
global $ydb;
|
||||||
|
|
||||||
|
// If the new username is blank, set it to NULL
|
||||||
|
if (empty($new_username)) {
|
||||||
|
$new_username = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update query using PDO prepared statements, which handle escaping
|
||||||
|
$update_query = 'UPDATE `yourls_url` SET `user` = :new_username WHERE `keyword` = :keyword';
|
||||||
|
|
||||||
|
// Execute the query using prepared statements
|
||||||
|
$stmt = $ydb->prepare($update_query);
|
||||||
|
$stmt->execute(array(
|
||||||
|
':new_username' => $new_username,
|
||||||
|
':keyword' => $keyword
|
||||||
|
));
|
||||||
|
|
||||||
|
// Display result
|
||||||
|
echo "<p>Username updated for shortlink <strong>$keyword</strong>.</p>";
|
||||||
|
}
|
Reference in New Issue
Block a user