Added a security check on the sidebar.blade.php that tests if critical config components are accessible externally by anyone.
This is a fairly crude method and not at all optimized. I might change this in future revisions. At least this feature is disabled for normal users, so it won't affect load for non admins. This is the same code from the new diagnostic tool added in the previous commit. I had to change the names of each variable, otherwise the diagnostic tool could not use the same variables. The smart thing to do here would probably be to simply use the variables only in the sidebar, since they are loaded anyway since the sidebar layout is included on the diagnostic tool, effectively loading the variables twice. I might change this later, but for now I will leave it as.
Read more about the diagnostic tool on the blog here: https://blog.littlelink-custom.com/new-security-check-tool/
Added new security check tool. This tool is a new page that displays diagnostic information about your LittleLink Custom installation.
Previously, installing LittleLink Custom on NGINX or other platforms that do not support .htaccess functionality presented a significant security risk if not configured properly. This tool simply shows if critical system files can be accessed externally by anyone. In addition, information about writing access to important files or directories is displayed here.
Read more about this feature on the blog here: https://blog.littlelink-custom.com/new-security-check-tool/
Expanded user controller to save the custom icon of individual buttons for the Button Editor.
I wanted to put the saving part into its own controller, but I wasn't able to implement this because I couldn't put two controllers on one page via the route in web.php, and to my knowledge this is impossible. So I had to do some trickery to get this working. If I hadn't implemented the if-else statement, one value couldn't be saved without a NULL error violation.
This will be used to display a custom icon via Font Awesome.
See: https://blog.littlelink-custom.com/upcoming-features/
And: https://blog.littlelink-custom.com/progress-of-the-new-button-editor/
User's profile names are now used as the title and heading for their LittleLink pages. Previously the '@name' was used for this, so for example the page name x.com/@admin is now not tied to the @admin part anymore, so a space could be used in the name for example.
See an example of this here: https://i.imgur.com/iBS8Hsm.png
Expanded user controller to get the button ID of individual buttons as a variable on the 'Links' page. This will be used to decide if the customize button prompt will be shown for the upcoming button editor.
See: https://blog.littlelink-custom.com/upcoming-features/
Added option to only notify about major updates. This setting is now the default and can be changed in the config by changing the setting "NOTIFY_UPDATES" from "major" to "all".
This setting was achieves by turning the previous if statement into an if-else statement with the new option. For this, I utilized a function that gets the latest tag from the GitHub repository.
I wasn't able to implement the 'if URL exists' check, the URL would just not return an error negating the function. I will probably fix this in the future, but as it is now, if the GitHub API server can't be reached this might trow an error.
The major release is still the previous update version retreated from the GitHub repository. This means I will only update that version for major or otherwise important updates.
I implemented this feature because I didn't want to spam new users with a new update notification every other day.
Added check if added, or edited links end with "/". Previously if links were saved without this formatting applied an error exception would be thrown.
For this, I used the previously added functions to check if the link ends with the slash.
Added check added, or edited links begin with https. Previously if links were saved without this formatting applied an error exception would be thrown.
For this I added two functions, one can check if a string ends with a certain string, the other checks if it ends with a certain string. The first function is used for the newly added check, the other one is planned to be used in a similar check in the future.