aboutsummaryrefslogtreecommitdiff
path: root/lib/sql
Commit message (Expand)AuthorAge
* lib: Correct PatchComment table•••The table is 'patchwork_comment', not 'patchwork_patchcomment'. Correct this. Signed-off-by: Stephen Finucane <stephen@that.guru> Closes: #396 Fixes: 7b967db4 ("lib: Update DB permissions to reflect model changes") Stephen Finucane2021-02-24
* lib: Grant SELECT on auth_user•••If a mail arrives with the 'X-Patchwork-Delegate' hint header, the 'patchwork.parser' script will need to index the users table to find the appropriate user. This should be okay from a security perspective since passwords are hashed and salted and the rest of the information is mostly accessible publicly via the web UI and REST API. Signed-off-by: Stephen Finucane <stephen@that.guru> Suggested-by: Ali Alnubani <alialnu@mellanox.com> Closes: #365 Stephen Finucane2020-12-13
* lib: Update DB permissions to reflect model changes•••These should have been done when we made changes to the model. Signed-off-by: Stephen Finucane <stephen@that.guru> Fixes: ac0e4de9 ("models: Merge 'Patch' and 'Submission'") Stephen Finucane2020-11-28
* lib/sql: Update grant script for recent schema changes•••This change fixes a few omissions in the grant scripts: - patchrelation is missing from both mysql and postgres scripts; it's only needed for web user access. - event is missing from the web grants on postgres, and the mail grants on mysql. Tested on postgres only. Fixes: 27c2acf56c ("models, templates: Add patch relations") Fixes: 34e3c9c493 ("sql: Update 'grant-all.mysql' script with missing tables") Fixes: 234bc7c316 ("lib/sql: fix permissions for v2.0.0 on postgres") Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Daniel Axtens <dja@axtens.net> Jeremy Kerr2020-04-14
* sql: Fix table lists•••The patch adds missing commas in the table lists where missing, and removes where unnecessary. This fixes errors such as the following when feeding the script to psql: psql:lib/sql/grant-all.postgres.sql:37: ERROR: syntax error at or near "patchwork_emailconfirmation" LINE 19: patchwork_emailconfirmation, ... Signed-off-by: Ali Alnubani <alialnu@mellanox.com> Reviewed-by: Stephen Finucane <stephen@that.guru> Fixes: ca0e79d4db34 ("sql: Sort 'grant-all' scripts alphabetically") Ali Alnubani2019-09-06
* models: Convert Series-Patch relationship to 1:N•••Late in the development of the series feature, it was decided that there were advantages to allowing an N:M relationship between series and patches. This would allow us to do things like create complete series where a sole vN patch was sent to a list rather than the full series. After some time using series in the wild, it's apparent that such features are very difficult to implement correctly and will likely never be implemented. As such, it's time to start cleaning up the mess, paving the way for things like an improved tagging feature. There are some significant changes to the model required: - models.py, migrations/0027, migrations/0028, migrations/0029 The migrations make the following changes: 1. - Add 'Patch.series_alt' and 'Patch.number' fields. 2. - Populate the 'Patch.series_alt' and 'Patch.number' fields from their 'SeriesPatch' equivalents. 3. - Remove the 'SeriesPatch' model. - Rename 'Patch.series_alt' to 'Patch.series'. - Change 'Series.cover_letter' to a 'OneToOneField' since a cover letter can no longer be assigned to multiple series. Note that the migrations have to be split into multiple parts as the combined migration raises an OperationalError as below. (1072, "Key column 'series_alt_id' doesn't exist in table") This is due to Django's penchant for creating indexes for newly created fields, as noted here: https://stackoverflow.com/q/35158530/ Aside from the model changes, there are numerous other changes required: - admin.py Reflect model changes for the 'PatchInline' inline used by 'SeriesAdmin' - api/cover.py, api/patch.py Update the 'series' field for the cover letter and patch resources to reflect the model changes. A 'to_representation' function is added in both cases to post-process this field and make it look like a list again. This is necessary to avoid breaking clients. - parser.py Update to reflect the replacement of 'SeriesPatch' with 'Patch'. - signals.py Update to filter on changes to 'Patch' instead of 'SeriesPatch'. This requires some reworking due to how we set these fields now, as we can no longer receive on 'post_save' signals for 'SeriesPatch' and must instead watch for 'pre_save' on 'Patch', which is what we do for delegate and state changes on same. - templates/patchwork/*.html Remove logic that handled multiple series in favour of the (simpler) single series logic. - tests/* Modify the 'create_series_patch' helper to reflect the removal of the 'SeriesPatch' model. This entire helper will be removed in a future change. Improve some tests to cover edge cases that were highlighted during development Unfortunately, all of the above changes must go in at the same time, otherwise we end up with either (a) broken views, API etc. or (b) split brain because we need to keep the new single-series fields alongside the older multi-series fields and models while we rework the views. It's unfortunate but there's not much to be done here. Signed-off-by: Stephen Finucane <stephen@that.guru> Tested-by: Daniel Axtens <dja@axtens.net> Stephen Finucane2018-10-17
* sql: Update 'grant-all.mysql' script with missing tables•••These were all introduced in 2.0 and while the postgreSQL script was fixed in commit 234bc7c3, the MySQL one was not. This suggests either (a) no one is using this or (b) people are carrying local changes but for now we just resolve the issues. Signed-off-by: Stephen Finucane <stephen@that.guru> Stephen Finucane2018-06-02
* sql: Sort 'grant-all' scripts alphabetically•••This makes it easier to compare to the output of 'show tables'. Signed-off-by: Stephen Finucane <stephen@that.guru> Stephen Finucane2018-05-30
* sql: Remove old migration scripts•••These have not been used since v1.0 and we don't expect users to jump straight from pre-v1.0 to post-v2.0. Remove them. Signed-off-by: Stephen Finucane <stephen@that.guru> Stephen Finucane2018-01-04
* lib/sql: fix permissions for v2.0.0 on postgres•••Some tables are no longer present, and others that are used by the web interface and mail parser need access permissions added. This change was required to get patchwork going on patchwork.ozlabs.org; there may be other permissions required, that we haven't hit yet. So, some review would be good here. Also: it's unlikely that we need DELETE for the mail parser, but I'm not confident enough to remove that at the moment. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Reviewed-by: Stephen Finucane <stephen@that.guru> Jeremy Kerr2017-08-31
* sql: Update permissions on grant-all scripts•••Allow access to Submission, CoverLetter, Series, SeriesReference and SeriesPatch. Signed-off-by: Stephen Finucane <stephen@that.guru> Stephen Finucane2017-04-15
* sql: Fix spelling mistakes and typos•••Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Stephen Finucane <stephen.finucane@intel.com> Eric Engestrom2016-05-09
* Update permissions on grant-all scripts•••We need access to Check & Delegationrule. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Acked-by: Stephen Finucane <stephen.finucane@intel.com> Jeremy Kerr2016-03-29
* Add patch tag infrastructure•••This change add patch 'tags', eg 'Acked-by' / 'Reviewed-by', etc., to patchwork. Tag parsing is implemented in the patch parser's extract_tags function, which returns a Counter object of the tags in a comment. These are stored in the PatchTag (keyed to Tag) objects associated with each patch. We need to ensure that the main patch lists do not cause per-patch queries on the Patch.tags ManyToManyField (this would result in ~500 queries per page), so we introduce a new QuerySet (and Manager) for Patch, adding a with_tag_counts() method to populate the tag counts in a single query. As users may be migrating from previous patchwork versions (ie, with no tag counts in the database), we add a 'retag' management command. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2015-05-28
* migration: Add cleanup-people migration script•••Now that we only create Person object once the User has been confirmed, we can clean up unused Person objects from the database. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2014-05-08
* lib/sql: remove references to auth_message model•••The Message model was deprecated in 1.4, and removed in 1.6 Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2014-04-22
* lib/sql/migration: Fix column names for MySQL/MariaDB•••The first issue is that patchwork was no longer accepting new patches via the apps/patchwork/bin/parsemail.sh script. When I was trying to invoke it manually, it only printed "no project found". I was able to figure out that this was caused by changes to the database scheme which are taken care of by the two SQL scripts: lib/sql/migration/012-project-add-columns.sql lib/sql/migration/013-bundle-names.sql The catch - these first script don't run with MySQL - or rather MariaDB that Fedora has switched to. MariaDB doesn't like the quotes around the table and column names. Patch below. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Ralf Baechle2013-10-13
* sql: remove non-existing auth_message table•••During a recent installation the grant-all MySQL script was erroring out because the "auth_message" table does not exist, remove it. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Florian Fainelli2013-10-04
* sql: update grant-all.mysql.sql•••The MySQL grant all script has a typo on the table "patchwork_bundle_patches" vs "patchwork_bundlepatch" update that. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Florian Fainelli2013-10-04
* bundles: Don't allow slashes in bundle names•••Because bundle names are used in URLs, we don't want slashes in them. Include a SQL migration script. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2013-04-20
* Add URL and SCM data to projects•••This allows us to display friendly links to the project website, web SCM UI and SCM URL. For example for the patchwork project these could be set to: web_url: http://jk.ozlabs.org/projects/patchwork/ scm_url: git://ozlabs.org/home/jk/git/patchwork webscm_url: http://git.ozlabs.org/?p=patchwork;a=tree Requires a DB schema upgrade Signed-off-by: Simo Sorce <idra@samba.org> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Simo Sorce2012-11-15
* Fix grant script•••patchwork_patchchangenotification_id_seq does not exist, so running this script simply fails with a rollback Signed-off-by: Simo Sorce <idra@samba.org> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Simo Sorce2012-10-25
* sql: remove development migration script•••The projectmaintainer heirachy hasn't been implemented, so we don't need the migration script yet. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2011-12-08
* models: Add PatchChangeNotification and record patch state changes•••Add a PatchChangeNotification model to keep track of changes to a patch's state. Hook this up to Patch's pre_save signal. Requires a DB schema upgrade. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2011-04-14
* Add email opt-out system•••We're going to start generating emails on patchwork updates, so firstly allow people to opt-out of all patchwork communications. We do this with a 'mail settings' interface, allowing non-registered users to set preferences on their email address. Logged-in users can do this through the user profile view. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2011-04-14
* registration: use EmailConfimation rather than separate registration app•••Since we have infrastructure for email confirmations, we no longer need the separate registration app. Requires a migration script, which will delete all inactive users, including those newly added and pending confirmation. Use carefully. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2011-04-14
* Use generic email confirmation object•••Rather than having a UserPerson-specific confirmation, add an EmailConfirmation object to allow multiple types of confirmations (eg, opt-out requests in future). To do this, we use a view (patchwork.views.confirm) that will call the type-specific view with the confirmation object. Also, add tests to check that the User/Person linkage system works. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2011-04-14
* Add support for git-pull requests•••Add a a pull_url to the Patch object, and update the parser to look for git-pull style emails. Requires SQL migration script. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2010-11-01
* sql: Add uncommitted migration scripts•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2010-08-10
* Adjust postgres "grant all" script to new name of bundle table•••Since c105cb0 (Initial bundle reordering support, 2009-01-29), the patchwork_bundle_patches table and its associated id sequence does not exist. The script to grant appropriate privileges was not updated when this change was made, and causes the set-up procedure described in docs/INSTALL to fail. This change adjust the script to grant appropriate access rights to match the change in the DB schema. Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Junio C Hamano2009-11-23
* migration: fix whitespace•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2009-02-27
* migration: reset bundlepatch sequence on setup•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2009-02-27
* [sql] Fix up bundle-reorder migration script•••We need to add grants for the new table, and drop the old to prevent reference constraint errors. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2009-02-10
* [sql] Perserve bundle ordering in bundle reorder migration script•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2009-02-08
* Normalise order numbers in bundle-ordering migration SQL•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2009-02-07
* Complete bundle ordering migration script•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2009-02-07
* Initial bundle reordering support•••todo: * implement ajax reorder api * finish migration script * order patches in bundle view Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2009-01-29
* [models] Make patches unique on (msgid, project), not just (msgid)•••On patchwork.ozlabs.org, we may see multiple patches for different projects, but with the same message-id. We want these patches to show up on both projects, so we need to change the current UNIQUE contstraint on msgid. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2008-10-29
* [sql] use separate grant-all scripts for postgresql and mysql•••Mysql doesn't support granting to multiple tables, and requires a different username format. Would be nice to code the permissions somewhere, then generate the grant statements as required. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2008-10-09
* Don't just rely on random for UserPersonConfirmation keys•••It looks like we're getting identical keys generated for confirmation keys. Problem has been reported to django, but in the meantime, salt with the user and email details, then sha1 to give the final key. This requires an increase in the field size for key, migration script included. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2008-09-11
* Use hex strings for hash values•••Binary strings a too hard to manage in DB queries and XMLRPC methods, as we get all kinds of encoding issues. Change HashField to use a hex string, and add a migration script for db updates. The patches should be rehashed after migration. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2008-09-10
* Add DB permissions for registration app•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2008-08-22
* Get parsemail scripts going•••A couple of fixes, plus required permissions in the grant-all script. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2008-08-21
* Inital commit•••Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Jeremy Kerr2008-08-21