-
Notifications
You must be signed in to change notification settings - Fork 276
Splitoff admin only roles for API #2616
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace DoctrineMigrations; | ||
|
||
use Doctrine\DBAL\Schema\Schema; | ||
use Doctrine\Migrations\AbstractMigration; | ||
|
||
final class Version20240629154640 extends AbstractMigration | ||
{ | ||
private const NEW_ROLES = ['api_problem_editor' => 'API Problem Editor', | ||
'api_contest_editor' => 'API Contest Editor']; | ||
|
||
public function getDescription(): string | ||
{ | ||
return "Add new roles to the database. | ||
Problem editor can add/delete/edit anything related to problems; files, testcases. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think any (end) user will read this and I think @eldering his feedback is that people now don't know what the roles do without checking the code. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Exactly. What the roles do should ideally be clear from the role constant names, but at least from the role descriptions . |
||
Contest editor can add/delete/edit the time & connected problems, but not the files | ||
or testcases of those problems. | ||
They are a subset of the ADMIN role in the API but not a proper superset of the API_WRITER | ||
as that also has access to push teams etc."; | ||
} | ||
|
||
public function up(Schema $schema): void | ||
{ | ||
foreach (self::NEW_ROLES as $role => $description) { | ||
$this->addSql( | ||
'INSERT INTO role (`role`, `description`) VALUES (:role, :desc)', | ||
['role' => $role, 'desc' => $description] | ||
); | ||
} | ||
} | ||
|
||
public function down(Schema $schema): void | ||
{ | ||
foreach (array_keys(self::NEW_ROLES) as $role) { | ||
$this->addSql('DELETE FROM role WHERE role = ' . $role ); | ||
} | ||
} | ||
|
||
public function isTransactional(): bool | ||
{ | ||
return false; | ||
} | ||
} |