allura-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From brond...@apache.org
Subject [1/2] allura git commit: [#7892] script to disable users in batch
Date Mon, 08 Jun 2015 16:55:46 GMT
Repository: allura
Updated Branches:
  refs/heads/db/7892 [created] 9d1cc15fb


[#7892] script to disable users in batch


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/8545fc05
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/8545fc05
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/8545fc05

Branch: refs/heads/db/7892
Commit: 8545fc05baf71de1315f33172d7d2a5d3a058bc2
Parents: 3ed25d5
Author: Dave Brondsema <dbrondsema@slashdotmedia.com>
Authored: Mon Jun 8 16:43:47 2015 +0000
Committer: Dave Brondsema <dbrondsema@slashdotmedia.com>
Committed: Mon Jun 8 16:43:47 2015 +0000

----------------------------------------------------------------------
 Allura/allura/scripts/disable_users.py | 67 +++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/8545fc05/Allura/allura/scripts/disable_users.py
----------------------------------------------------------------------
diff --git a/Allura/allura/scripts/disable_users.py b/Allura/allura/scripts/disable_users.py
new file mode 100644
index 0000000..9ce1a1b
--- /dev/null
+++ b/Allura/allura/scripts/disable_users.py
@@ -0,0 +1,67 @@
+#       Licensed to the Apache Software Foundation (ASF) under one
+#       or more contributor license agreements.  See the NOTICE file
+#       distributed with this work for additional information
+#       regarding copyright ownership.  The ASF licenses this file
+#       to you under the Apache License, Version 2.0 (the
+#       "License"); you may not use this file except in compliance
+#       with the License.  You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#       Unless required by applicable law or agreed to in writing,
+#       software distributed under the License is distributed on an
+#       "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#       KIND, either express or implied.  See the License for the
+#       specific language governing permissions and limitations
+#       under the License.
+
+import argparse
+import logging
+import sys
+
+from ming.odm import session
+
+from allura.lib.plugin import AuthenticationProvider
+from allura.scripts import ScriptTask
+from allura import model as M
+
+
+log = logging.getLogger(__name__)
+
+
+class DisableUsers(ScriptTask):
+
+    @classmethod
+    def execute(cls, options):
+        if options.usernames == ['-']:
+            usernames = [line.strip() for line in sys.stdin]
+        else:
+            usernames = options.usernames
+        cls.disable_users(usernames)
+
+    @classmethod
+    def disable_users(cls, usernames):
+        auth_provider = AuthenticationProvider.get(request=None)
+
+        # would be nice to use the BatchIndexer extension around this but that only works
for artifacts not users
+
+        for username in usernames:
+            user = M.User.query.get(username=username)
+            if not user:
+                log.info('Could not find user: %s', username)
+            else:
+                log.info('Disabling user: %s', username)
+                auth_provider.disable_user(user)
+                session(user).flush(user)
+
+    @classmethod
+    def parser(cls):
+        parser = argparse.ArgumentParser(description='Disable listed users')
+        parser.add_argument(
+            '--usernames', dest='usernames', type=str, nargs='+', metavar='<username>',
required=True,
+            help='List of usernames, or "-" to read from stdin')
+        return parser
+
+
+if __name__ == '__main__':
+    DisableUsers.main()


Mime
View raw message