Commit Graph
85 Commits
Author SHA1 Message Date
+37 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00
f2db304b6c Adds In Game Rank Editing (Permissions Panel Cleanup) (#91873)
## About The Pull Request

Ok there's a lot here, sorry bout that.

- Cleaned up the permissions panel backend pretty signficantly
- Added some extra security measures to said code, mostly proc call
checks
- Properly implemented filtering code jordie wrote years and years ago
for permissions logs
- Cleaned up the permissions ui generally, more bars, nicer lookin
stuff, etc
- Fixed the Management panel's relationship with combined roles, and
renamed it to Housekeeping. Its display is expanded too.
- Added tracking to rank datums on where exactly they came from
- Added a new tab to the permissions panel which allows the modification
and deletion of ranks
- Beefed up rank modification to try and avoid accidential temp rank
additions to the db

I'm doing my best to avoid perms escalation issues, tho they are always
possible right.
Also, got mad at some query cleanup handling, did a pass on it. this
isn't nearly all of em, but it's some.

## Why It's Good For The Game

I realized there is no way to, in game, cleanly edit/create ranks, and
that the way the existing system worked was quite opaque.
I'm trying to fix that here. It does mean potentially opening up DB rank
deletion/modification to bad actors, but frankly I am not overly worried
about that. Admin modification has always been a vulnerability so like.

Here's a video with my changes (mostly, it's lightly outdated)
https://file.house/XqME7KWKk0ULj4ZUkJ5reg==.mp4

## Changelog
🆑
refactor: Fucked with admin rank setup very slightly, please yell at me
if anything is wrong.
admin: Updated the permissions panel to be a good bit more user
friendly, added rank management support to it.
server: I've added code that gives the game modification/deletion perms
for the rank table, be made aware.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2025-07-04 16:33:06 -04:00
Jordan DominionandGitHub a834a92ed6 Add an event to config reloading that can be used to trigger a config sync (#90329) 2025-03-30 20:44:23 +00:00
8628cbc54e Refactored admin backup saving. No longer at round end, more data backed up (#81891)
Admin verified connections now cache all verified connections for all
admins. (Rather then just the last connection data of the currently
connected admins)

Sync with the db now happens at admin load time, not at round end. (this
was causing annoyances because servers with long rounds could override
the admin db with old/stale data overwritting the fresher data that was
written by a server with a shorter round)

Fix backup verification not working if the db thinks it still connected
but its not actually still connected.

@Mothblocks @Jordie0608

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2024-04-02 05:50:12 +00:00
san7890andGitHub 655245393a Turns the "Admin Permission Elevation Notification" into a macro (#80149)
## About The Pull Request
Turns this boilerplate message into a centralized macro because this
code is important, but not so important that every coder know the nitty
gritty details of it. In case someone wants to add more logging/handling
(or update the message), there's now a central macro to update for all
nine events in which we check.

This shouldn't break anything because it's the exact same thing we were
doing previously and the early return checks are still all there, but it
does work on my machine regardless ✔️


![image](https://github.com/tgstation/tgstation/assets/34697715/db4405d3-e57d-4c29-8a01-b32ba185041b)
2023-12-06 18:00:35 -08:00
MothblocksandGitHub 661674170a Adminwho now caches feedback links until admins are reloaded (and also works again) (#67307)
* Adminwho now caches feedback links until admins are reloaded

* Restore dbconfig

* Fix feedback links, make them query only if necessary, and not on load admins

* Wait longer before checking DB connection

* Back on my dbconfig shit

fixes (Adminwho is slower than it needs to be after feedback links) #67150.
also fixes (timber breaking feedback links totally by qdeling the datum too early) #67360.
2022-06-06 00:35:14 -07:00
MothblocksandGitHub 7866e09bc3 Fix granular admin ranks not being loaded from DB (#66706) 2022-05-04 23:12:48 -04:00
MothblocksandGitHub 0204332c8d Granular admin perms (#66368)
* Granular admin perms

* Implement temporary user specific permissions menu

* Restore config

* Fix TESTING
2022-05-03 21:59:22 -07:00
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
nemvarandGitHub b87f65d95e Converts ALL typepaths to lowercase (#51642)
* Case of lower

* More changes

* Ruins the nice 420 diff, brainfart when doing the second batch of conversions

* More changes

* Next batch. I think

* Converts even more paths

* Restarts bots

* Capital Free Zone

* Come on travis, do something

* Renames areas

* Bots, please stop dying

* Updates CONTRIBUTING.md and updates a few paths I missed.

* APC recgarftzfvas
/obj/item/computer_hardware/recharger/apc to /obj/item/computer_hardware/recharger/apc_recharger
2020-06-17 20:47:57 -03:00
Tad HardestyandGitHub 829e95896e Replace BSQL with rust-g, paramaterize all queries (#51255)
cl
refactor: BSQL has been replaced with rust-g, improving SQL reliability and safety.
/cl

Queries were parameterized as much as possible. Careful code read by someone else also versed in SQL would be a good idea. Things seemed fine spot-testing roundstart, library, bans, and polls, but more stress-testing may be useful.

Also updates rust-g to v0.4.5:

    Improved Linux .so detection
    Perlin noise functions

Also updates Travis script to bionic.
2020-06-08 16:00:07 +12:00
c20a04543b Port of Replays from Yogstation (#48579)
* demos (ported from yogstation)

rustg update + write with no format

use external hook for logging

use proper log vars

fix + clarifying comment

don't start the log

release build of rust-g

fix something caught by the lint

Update code/__DEFINES/subsystems.dm

Co-Authored-By: Jordan Brown <Cyberboss@users.noreply.github.com>

Update code/controllers/subsystem/demo.dm

Co-Authored-By: JJRcop <jrubcop@gmail.com>

Update code/controllers/subsystem/demo.dm

Co-Authored-By: JJRcop <jrubcop@gmail.com>

moves hooks out of a dedicated file

len = 0 to Cut(), remove semicolons

untyped loop

* updated rust_g

* 513 updates
2020-04-06 13:15:48 -04:00
spookydonutandoranges 175439f63a Removes unreachable code (#48143)
About The Pull Request

As detected by SpaceManiac/SpacemanDMM#123
2019-12-10 20:52:13 +13:00
Terra f2a61476f1 Fixes issue with protected word in MySQL 8.x 2019-06-28 10:31:30 +10:00
Tad Hardesty 570a4da33e Replace 'throw EXCEPTION' with CRASH or WARNING 2019-03-19 23:09:24 -07:00
Jordie0608 773c95339a less backslashes 2018-12-24 13:11:18 +11:00
Jordie0608 b9fb0388f7 rework of legacy admin loading to support punctuation with new format 2018-12-22 18:35:50 +11:00
Jordieandoranges 23a8a4df55 Legacy defined ranks and admins now synced to db (#40139)
* legacy defined ranks and admins now synced to db

* move lastadminrank update to after sync
2018-09-08 19:28:49 +12:00
Jordieandoranges 9dd566a586 Change +everything admin flag to not use ALL define (#39142)
* change +everything admin flag to not use ALL define

* add proc to handle max flag value changing update to db
2018-07-27 18:15:41 +12:00
Jordan Brownandoranges 2ddf0e656f Removes can_vv_get from some things (#39136)
* Removes can_vv_get from some things

* This too

* Remove extra vv_edit_var
2018-07-24 22:15:45 +12:00
Kyle Spier-Swensonandvuonojenmustaturska 07824d3a20 MassInsert now defaults to async. (#39180) 2018-07-18 22:53:05 +03:00
Jordan Brownandoranges d41dd3b56e Prevents duplicate warning about missing admins backup file (#39068)
* Prevents duplicate warning about missing admins backup file

* Fix dbfail
2018-07-17 20:25:32 +12:00
Jordan Brownandvuonojenmustaturska cf7e8aa9ec Qdels queries, adds sleep safety checks, DBcore checks for leaks (#38363)
* Qdels all queries, adds sleep handling

* DB Core messages admins about undeleted queries

* Compile fixes. Adds missing set waitfor

* Remove world/New shennanigans. Add DBQuery/BlockingExecute()

* Less spammy notifications to admins about undeleted queries

* Increase dbcore fire time to 1 minute

* Upgrade undeleted query warning

* Better place of death

* Fix build

* Remove BlockingExecute, see BSQL PR for why

* Yep, missed that one.

* Psyche, that's the WRONG QUERY!!
2018-06-18 22:48:35 +03:00
Jordieandvuonojenmustaturska 4634b581cd admin backup loading fix (#38034) 2018-05-24 16:38:18 +03:00
JordieandAnturK e44298a36c some dbadmin fixes (#37623) 2018-05-04 12:14:35 +02:00
Jordie0608 b304c760ae adds log and management tabs to permissions panel 2018-04-17 21:26:24 +10:00
JordieandJordan Brown 4a5c1d07e6 Fixes errors with making temp rank changes before permanent ones (#36897)
* fixes errors with making temp rank changes before permanent ones

* adds parenthesis
2018-04-04 00:53:01 -04:00
Jordie0608 d3db8970e7 adds config to allow ranks only from txt 2018-03-20 15:04:42 +11:00
Kyle Spier-Swensonandvuonojenmustaturska 3c8a06e49e Fixes admins not working in certain cases (#36470)
* Fixes admins not working in certain cases

>admin doesn't get rank because of casing issue.

* put this in the wrong place
2018-03-17 15:25:26 +02:00
Cyberboss 650a5eebe3 You can no longer SDQL select certain datums 2018-03-09 10:23:41 -05:00
vuonojenmustaturskaandJordie 440e888c1f Clean up all sorts of crap, mostly defines (#36105)
* cleanbot

* rejuv

* more crap

* more crap

* still compiles

* clean

* is_crap
2018-03-05 02:07:27 +11:00
Jordieandoranges 23a45889ed Modernizes SQL admin loading (#35264)
* updates sqladmins with excluded flags and tempminning

* rank, editing and permission protections; json backup

* fixes

* reverted the wrong file

* fix slidecolor cascading and disabled switches not being sent in form

* removes debug uncommenting

* whoops this too

* commas fix + versions for changelog entry headers since 3.0

* actually account for can_edit_flags and use of @ with - or *

* fixes and rearrangement of admin > localhost > autoadmin precedence

* in case you want to not have autologin autoadmins
2018-03-02 13:38:26 +13:00
Kyle Spier-SwensonandGitHub a9439a1534 Closes exploits in proc calling admin rank datum procs. 2018-02-06 17:41:28 -08:00
Jordan BrownandAnturK 015258d01c Config dir again except this time it works (#34606)
* Revert "Revert "Fix config_dir usage (#34469)""

* Make config exist before world/New but not load it until then
2018-01-21 19:32:12 +01:00
oranges 48575ccf70 Revert "Fix config_dir usage (#34469)"
This reverts commit 7be3d32290.
2018-01-19 01:26:40 +00:00
Jordan Brownandoranges 7be3d32290 Fix config_dir usage (#34469)
* Makes things use GLOB.config_dir

* GLOB.config_dir => global.config.directory

* Fix /datum/configuration
2018-01-19 11:55:09 +13:00
Jordan BrownandShizCalev ccbdb551bd Stops the dbadmin warning if SQL_ENABLED isnt set (#34223) 2018-01-11 04:52:06 -05:00
Kyle Spier-SwensonandJoan Lung 4e929c74a9 Deadmin tweaks: Admins without +AUTOLOGIN start deadmined. AUTOLOGIN defaults to on. (#33480)
* Deadmin tweaks, Admins without +ADMIN start deadmined.
Deadmining no longer destroys the admin datum.
Admins without +ADMIN start deadmined, reloading admins re-deadmins them.
Moved some code around to make it more sane
People with +PERMISSION can now deadmin or readmin other admins at will.

* Adds new flag for if the role should automatically log in, defaults to on, can be removed with -AUTOLOGIN
Also fixes a bug in permission panel not handling these cases gracefully
2017-12-13 22:03:37 -05:00
Jordan BrownandKorPhaeron be38c4b212 Profile access is granted when holder is created 2017-09-28 21:51:53 -05:00
Jordan Brownandoranges 4178c209f1 Configuration datum refactor (#30763)
* Configuration datum refactor

* More WIP

* New easier on the eyes format

* More WIP

* Finished config.txt

* Fucktons more WIP

* The end of conversion draws near...

* Add all this shit

* Done converting entries finally

* Hunting down compile errors

* More WIP

* MORE CONVERSIONS

* More WIP

* More WIP

* Oh shit only 90 errors this time!

* IT COMPILES!!!

* Fixes world start runtimes
2017-09-29 15:36:51 +13:00
Jordan BrownandLeo d1ae0a0c95 Adds helpers to avoid << use (#29611) 2017-08-09 00:27:54 -03:00
shizcalev 99624b8e74 further spellchecking 2017-07-31 23:09:08 -04:00
kevinz000andJordan Brown 9cf4ab3233 Fixes race condition with admin proc calls and load admins (#29143)
* Update admin_ranks.dm

* Update admin_ranks.dm

* Update admin_ranks.dm

* Update admin_ranks.dm
2017-07-09 20:48:15 -04:00
LeoandGitHub a1d829126f Merge pull request #29076 from Cyberboss/LOCK_IT_DOWN
Fixes permissions elevation exploit
2017-07-07 11:37:28 -03:00
Jordan Brown b1f76269b4 Fixes permissions elevation exploit 2017-07-07 10:29:14 -04:00
oranges 8ef47216a5 Remove the R_REJUVINATE flag and replace with R_POLL
Rejuvenation lives under R_ADMIN and R_POLL is a new flag you can grant
to someone to allow them to create polls
2017-06-28 02:38:00 +00:00
Jordie0608 69a07b5ecf persistent investigate and game logs separated by round ID 2017-04-27 22:10:51 +10:00
Cyberboss 7ddea10cd7 Exploit whack-a-mole 2017-04-23 21:16:10 -04:00
CyberbossandJordie 3c3f7d3b60 Refactors dbcon into a subsystem (#26134)
* Refactors dbcon into a subsystem

* Swear I got that already...
2017-04-17 15:18:17 +10:00