Bläddra i källkod

Add a DB field to store users to block on a project

Signed-off-by: Pierre-Yves Chibon <pingou@pingoured.fr>
Pierre-Yves Chibon 5 år sedan
förälder
incheckning
2de085a937
2 ändrade filer med 48 tillägg och 0 borttagningar
  1. 30 0
      alembic/versions/1a510f2216c0_add_the__block_users_field.py
  2. 18 0
      pagure/lib/model.py

+ 30 - 0
alembic/versions/1a510f2216c0_add_the__block_users_field.py

@@ -0,0 +1,30 @@
+"""Add the _block_users field
+
+Revision ID: 1a510f2216c0
+Revises: 003fcd9e8860
+Create Date: 2019-03-14 12:24:32.139377
+
+"""
+
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = '1a510f2216c0'
+down_revision = '003fcd9e8860'
+
+
+def upgrade():
+    ''' Add the column _block_users to the table projects.
+    '''
+    op.add_column(
+        'projects',
+        sa.Column('_block_users', sa.Text, nullable=True)
+    )
+
+
+def downgrade():
+    ''' Drop the column _block_users from the table projects.
+    '''
+    op.drop_column('projects', '_block_users')

+ 18 - 0
pagure/lib/model.py

@@ -377,6 +377,7 @@ class Project(BASE):
     _reports = sa.Column(sa.Text, nullable=True)
     _notifications = sa.Column(sa.Text, nullable=True)
     _close_status = sa.Column(sa.Text, nullable=True)
+    _block_users = sa.Column(sa.Text, nullable=True)
     mirrored_from = sa.Column(sa.Text, nullable=True)
     mirrored_from_last_log = sa.Column(sa.Text, nullable=True)
 
@@ -720,6 +721,23 @@ class Project(BASE):
         """ Ensures the priorities are properly saved. """
         self._priorities = json.dumps(priorities)
 
+    @property
+    def block_users(self):
+        """ Return the dict stored as string in the database as an actual
+        dict object.
+        """
+        block_users = []
+
+        if self._block_users:
+            block_users = json.loads(self._block_users)
+
+        return block_users
+
+    @block_users.setter
+    def block_users(self, block_users):
+        """ Ensures the block_users are properly saved. """
+        self._block_users = json.dumps(block_users)
+
     @property
     def quick_replies(self):
         """ Return a list of quick replies available for pull requests and