root / snf-astakos-app / astakos / im / management / commands / user-auth-policy-list.py @ cb14cc6c
History | View | Annotate | Download (3.1 kB)
1 | 9d20fe23 | Kostas Papadimitriou | # Copyright 2012 GRNET S.A. All rights reserved.
|
---|---|---|---|
2 | 9d20fe23 | Kostas Papadimitriou | #
|
3 | 9d20fe23 | Kostas Papadimitriou | # Redistribution and use in source and binary forms, with or
|
4 | 9d20fe23 | Kostas Papadimitriou | # without modification, are permitted provided that the following
|
5 | 9d20fe23 | Kostas Papadimitriou | # conditions are met:
|
6 | 9d20fe23 | Kostas Papadimitriou | #
|
7 | 9d20fe23 | Kostas Papadimitriou | # 1. Redistributions of source code must retain the above
|
8 | 9d20fe23 | Kostas Papadimitriou | # copyright notice, this list of conditions and the following
|
9 | 9d20fe23 | Kostas Papadimitriou | # disclaimer.
|
10 | 9d20fe23 | Kostas Papadimitriou | #
|
11 | 9d20fe23 | Kostas Papadimitriou | # 2. Redistributions in binary form must reproduce the above
|
12 | 9d20fe23 | Kostas Papadimitriou | # copyright notice, this list of conditions and the following
|
13 | 9d20fe23 | Kostas Papadimitriou | # disclaimer in the documentation and/or other materials
|
14 | 9d20fe23 | Kostas Papadimitriou | # provided with the distribution.
|
15 | 9d20fe23 | Kostas Papadimitriou | #
|
16 | 9d20fe23 | Kostas Papadimitriou | # THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
|
17 | 9d20fe23 | Kostas Papadimitriou | # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18 | 9d20fe23 | Kostas Papadimitriou | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
19 | 9d20fe23 | Kostas Papadimitriou | # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
|
20 | 9d20fe23 | Kostas Papadimitriou | # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21 | 9d20fe23 | Kostas Papadimitriou | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22 | 9d20fe23 | Kostas Papadimitriou | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
23 | 9d20fe23 | Kostas Papadimitriou | # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
24 | 9d20fe23 | Kostas Papadimitriou | # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
25 | 9d20fe23 | Kostas Papadimitriou | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
26 | 9d20fe23 | Kostas Papadimitriou | # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
27 | 9d20fe23 | Kostas Papadimitriou | # POSSIBILITY OF SUCH DAMAGE.
|
28 | 9d20fe23 | Kostas Papadimitriou | #
|
29 | 9d20fe23 | Kostas Papadimitriou | # The views and conclusions contained in the software and
|
30 | 9d20fe23 | Kostas Papadimitriou | # documentation are those of the authors and should not be
|
31 | 9d20fe23 | Kostas Papadimitriou | # interpreted as representing official policies, either expressed
|
32 | 9d20fe23 | Kostas Papadimitriou | # or implied, of GRNET S.A.
|
33 | 9d20fe23 | Kostas Papadimitriou | |
34 | 9d20fe23 | Kostas Papadimitriou | from optparse import make_option |
35 | 9d20fe23 | Kostas Papadimitriou | |
36 | 9d20fe23 | Kostas Papadimitriou | from django.core.management.base import NoArgsCommand |
37 | 9d20fe23 | Kostas Papadimitriou | |
38 | 9d20fe23 | Kostas Papadimitriou | from astakos.im.models import AuthProviderPolicyProfile |
39 | 9d20fe23 | Kostas Papadimitriou | |
40 | 9d20fe23 | Kostas Papadimitriou | from ._common import format |
41 | 9d20fe23 | Kostas Papadimitriou | |
42 | 9d20fe23 | Kostas Papadimitriou | |
43 | 9d20fe23 | Kostas Papadimitriou | class Command(NoArgsCommand): |
44 | 9d20fe23 | Kostas Papadimitriou | help = "List existing authentication provider policy profiles"
|
45 | 9d20fe23 | Kostas Papadimitriou | |
46 | 9d20fe23 | Kostas Papadimitriou | option_list = NoArgsCommand.option_list + ( |
47 | 9d20fe23 | Kostas Papadimitriou | make_option('-c',
|
48 | 9d20fe23 | Kostas Papadimitriou | action='store_true',
|
49 | 9d20fe23 | Kostas Papadimitriou | dest='csv',
|
50 | 9d20fe23 | Kostas Papadimitriou | default=False,
|
51 | 9d20fe23 | Kostas Papadimitriou | help="Use pipes to separate values"),
|
52 | 9d20fe23 | Kostas Papadimitriou | ) |
53 | 9d20fe23 | Kostas Papadimitriou | |
54 | 9d20fe23 | Kostas Papadimitriou | def handle_noargs(self, **options): |
55 | 9d20fe23 | Kostas Papadimitriou | profiles = AuthProviderPolicyProfile.objects.all() |
56 | 9d20fe23 | Kostas Papadimitriou | |
57 | 9d20fe23 | Kostas Papadimitriou | labels = ['id', 'name', 'provider', 'exclusive', 'groups', 'users'] |
58 | 9d20fe23 | Kostas Papadimitriou | columns = [3, 20, 13, 7, 50, 50] |
59 | 9d20fe23 | Kostas Papadimitriou | |
60 | 9d20fe23 | Kostas Papadimitriou | if not options['csv']: |
61 | 9d20fe23 | Kostas Papadimitriou | line = ' '.join(l.rjust(w) for l, w in zip(labels, columns)) |
62 | 9d20fe23 | Kostas Papadimitriou | self.stdout.write(line + '\n') |
63 | 9d20fe23 | Kostas Papadimitriou | sep = '-' * len(line) |
64 | 9d20fe23 | Kostas Papadimitriou | self.stdout.write(sep + '\n') |
65 | 9d20fe23 | Kostas Papadimitriou | |
66 | 9d20fe23 | Kostas Papadimitriou | for profile in profiles: |
67 | 9d20fe23 | Kostas Papadimitriou | id = str(profile.pk)
|
68 | 9d20fe23 | Kostas Papadimitriou | name = profile.name |
69 | 9d20fe23 | Kostas Papadimitriou | provider = profile.provider |
70 | 9d20fe23 | Kostas Papadimitriou | exclusive = str(profile.is_exclusive)
|
71 | 9d20fe23 | Kostas Papadimitriou | groups = ",".join([g.name for g in profile.groups.all()]) |
72 | 9d20fe23 | Kostas Papadimitriou | users = ",".join([u.email for u in profile.users.all()]) |
73 | 9d20fe23 | Kostas Papadimitriou | |
74 | 9d20fe23 | Kostas Papadimitriou | field_values = [id, name, provider, exclusive, groups, users]
|
75 | 9d20fe23 | Kostas Papadimitriou | fields = (format(elem) for elem in field_values) |
76 | 9d20fe23 | Kostas Papadimitriou | |
77 | 9d20fe23 | Kostas Papadimitriou | if options['csv']: |
78 | 9d20fe23 | Kostas Papadimitriou | line = '|'.join(fields)
|
79 | 9d20fe23 | Kostas Papadimitriou | else:
|
80 | 9d20fe23 | Kostas Papadimitriou | line = ' '.join(f.rjust(w) for f, w in zip(fields, columns)) |
81 | 9d20fe23 | Kostas Papadimitriou | |
82 | 9d20fe23 | Kostas Papadimitriou | self.stdout.write(line + '\n') |