1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
from django.shortcuts import render
from client.models import UserCode
from django.contrib.auth.models import Group, Permission, User
# Create your views here.
def index(request):
context = {}
if (request.user.is_staff):
parent_group = request.user.groups.values_list('name', flat=True)[
0]
users = User.objects.filter(groups__name=parent_group)
out = []
for user in users:
code = ""
if len(UserCode.objects.filter(user=user)) > 0:
code = 'U' + str(UserCode.objects.filter(user=user)[0].code)
status = ""
if user.is_staff:
status = "Capo"
elif user.has_perm("client.approved"):
status = "Attivo"
else:
status = "In attesa"
out.append([user.username, user.first_name,
user.last_name, code, status])
context = {'users': out}
return render(request, 'server/index.html', context)
else:
return render(request, 'client/index.html', context)
def uapprove(request):
context = {}
if (request.user.is_staff):
if request.method == "POST":
parent_group = request.user.groups.values_list('name', flat=True)[
0]
group = Group.objects.get(name=parent_group)
permission = Permission.objects.get(codename='approved')
data = request.POST["codes"]
data += " "
data = data.split("\n")
for i in range(len(data)):
if not data[i].startswith("U"):
data[i] = data[i] + " - Formato errato"
elif not data[i][1:-1].isdigit():
data[i] = data[i] + " - Formato errato"
elif int(data[i][1:-1]) < 100000 or int(data[i][1:-1]) > 999999:
data[i] = data[i] + " - Formato errato"
elif len(UserCode.objects.filter(code=data[i][1:-1])) == 0:
data[i] = data[i] + " - Invalido"
else:
user = UserCode.objects.filter(code=data[i][1:-1])[0].user
if len(user.groups.values_list('name', flat=True)) == 0:
user.groups.add(group)
user.user_permissions.add(permission)
data[i] = data[i] + " - Ok"
else:
if user.groups.values_list('name', flat=True)[0] == parent_group:
user.user_permissions.add(permission)
data[i] = data[i] + " - Gia` aggiunto"
else:
user.groups.clear()
user.groups.add(group)
user.user_permissions.add(permission)
data[i] = data[i] + " - Ok, cambio branca"
context = {'messages': data}
return render(request, 'server/approve_user.html', context)
else:
return render(request, 'client/index.html', context)
def ulist(request):
context = {}
if (request.user.is_staff):
parent_group = request.user.groups.values_list('name', flat=True)[
0]
users = User.objects.filter(groups__name=parent_group)
out = []
for user in users:
code = ""
if len(UserCode.objects.filter(user=user)) > 0:
code = 'U' + str(UserCode.objects.filter(user=user)[0].code)
status = ""
if user.is_staff:
status = "Capo"
elif user.has_perm("approved"):
status = "Attivo"
else:
status = "In attesa"
out.append([user.username, user.first_name,
user.last_name, code, status])
context = {'users': out}
return render(request, 'server/user_list.html', context)
else:
return render(request, 'client/index.html', context)
|