Skip to content
This repository was archived by the owner on Nov 28, 2022. It is now read-only.

Commit d027080

Browse files
committed
Merge branch 'release/v0.8.5'
# Conflicts: # sourcemod/addons/sourcemod/plugins/hawthorne.smx
2 parents 4897420 + 9d7850d commit d027080

56 files changed

Lines changed: 719 additions & 1214 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ajax/views/ban.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
from django.views.decorators.http import require_http_methods
33

44
from ajax.views import renderer
5-
from core.models import Ban
5+
from core.models import Punishment
66

77

88
@login_required(login_url='/login')
99
@permission_required('core.view_ban')
1010
@require_http_methods(['POST'])
1111
def user(request, page, *args, **kwargs):
12-
obj = Ban.objects.filter(resolved=False).order_by('created_at')
12+
obj = Punishment.objects.filter(resolved=False, is_banned=True).order_by('created_at')
1313
return renderer(request, 'partials/ban/user.pug', obj, page)

ajax/views/mutegag.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
from django.contrib.auth.decorators import login_required, permission_required
22
from django.views.decorators.http import require_http_methods
3+
from django.db.models import Q
34

45
from ajax.views import renderer
5-
from core.models import Mutegag
6+
from core.models import Punishment
67

78

89
@login_required(login_url='/login')
910
@permission_required('core.view_mutegag')
1011
@require_http_methods(['POST'])
1112
def user(request, page, *args, **kwargs):
12-
obj = Mutegag.objects.filter(resolved=False).order_by('created_at')
13+
obj = Punishment.objects.filter(resolved=False)\
14+
.filter(Q(is_muted=True) | Q(is_gagged=True))\
15+
.order_by('created_at')
1316
return renderer(request, 'partials/mutegag/user.pug', obj, page)

api/specification.py

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -45,54 +45,45 @@
4545
'role': {'type': 'uuid', 'default': None, 'nullable': True, 'required': False}},
4646
'permission': ['core.delete_user']}
4747
},
48-
'ban': {
48+
'punishment': {
4949
'GET': {'parameters': {'server': {'type': 'uuid', 'nullable': True, 'default': None},
50-
'resolved': {'type': 'boolean', 'nullable': True, 'default': None}},
51-
'permission': ['core.view_ban']},
50+
'resolved': {'type': 'boolean', 'nullable': True, 'default': None},
51+
'banned': {'type': 'boolean', 'nullable': True, 'default': None},
52+
'kicked': {'type': 'boolean', 'nullable': True, 'default': None},
53+
'muted': {'type': 'boolean', 'nullable': True, 'default': None},
54+
'gagged': {'type': 'boolean', 'nullable': True, 'default': None}},
55+
'permission': ['core.view_punishment']},
5256
'POST': {'parameters': {'server': {'type': 'uuid', 'required': True},
5357
'resolved': {'type': 'boolean', 'nullable': True, 'default': None},
5458
'reason': {'type': 'string', 'nullable': True, 'default': None},
55-
'length': {'type': 'integer', 'nullable': True, 'default': None}},
56-
'permission': ['core.change_ban']},
59+
'length': {'type': 'integer', 'nullable': True, 'default': None},
60+
'banned': {'type': 'boolean', 'nullable': True, 'default': None},
61+
'kicked': {'type': 'boolean', 'nullable': True, 'default': None},
62+
'muted': {'type': 'boolean', 'nullable': True, 'default': None},
63+
'gagged': {'type': 'boolean', 'nullable': True, 'default': None}},
64+
'permission': ['core.change_punishment']},
5765
'PUT': {'parameters': {'server': {'type': 'uuid', 'required': False},
58-
'reason': {'type': 'string', 'required': True},
66+
'reason': {'type': 'string', 'required': True, 'default': 'Powered by Hawthorne'},
5967
'length': {'type': 'integer', 'required': True},
60-
'issuer': {'type': 'integer', 'default': None, 'nullable': True, 'required': False},
61-
'plugin': {'type': 'boolean', 'default': True}},
62-
'permission': ['core.add_ban']},
63-
'DELETE': {'parameters': {'server': {'type': 'uuid', 'nullable': True, 'default': None}},
64-
'permission': ['core.delete_ban']},
68+
'plugin': {'type': 'boolean', 'default': True},
69+
'muted': {'type': 'boolean', 'default': False},
70+
'banned': {'type': 'boolean', 'default': False},
71+
'kicked': {'type': 'boolean', 'default': False},
72+
'gagged': {'type': 'boolean', 'default': False}},
73+
'permission': ['core.add_punishment']},
74+
'DELETE': {'parameters': {'server': {'type': 'uuid', 'nullable': True, 'default': None},
75+
'length': {'type': 'integer', 'nullable': True, 'default': None},
76+
'banned': {'type': 'boolean', 'nullable': True, 'default': None},
77+
'kicked': {'type': 'boolean', 'nullable': True, 'default': None},
78+
'muted': {'type': 'boolean', 'nullable': True, 'default': None},
79+
'gagged': {'type': 'boolean', 'nullable': True, 'default': None},
80+
'plugin': {'type': 'boolean', 'default': True}},
81+
'permission': ['core.delete_punishment']},
6582
},
6683
'kick': {
6784
'PUT': {'parameters': {'server': {'type': 'uuid', 'required': True}},
6885
'permission': ['core.kick_user']},
6986
},
70-
'auth': {
71-
'GET': {'parameters': {'password': {'type': 'string', 'required': True}},
72-
'permission': ['core.view_user']},
73-
},
74-
'mutegag': {
75-
'GET': {'parameters': {'server': {'type': 'uuid', 'nullable': True, 'default': None},
76-
'resolved': {'type': 'boolean', 'nullable': True, 'default': None}},
77-
'permission': ['core.view_mutegag']},
78-
'POST': {'parameters': {'server': {'type': 'uuid', 'required': False},
79-
'resolved': {'type': 'boolean', 'nullable': True, 'default': None},
80-
'type': {'type': 'string', 'allowed': ['mute', 'gag', 'both'], 'default': 'both',
81-
'coerce': utils.lower},
82-
'reason': {'type': 'string', 'nullable': True, 'default': None},
83-
'length': {'type': 'integer', 'nullable': True, 'default': None}},
84-
'permission': ['core.change_mutegag']},
85-
'PUT': {'parameters': {'server': {'type': 'uuid', 'required': False},
86-
'reason': {'type': 'string', 'required': True},
87-
'type': {'type': 'string', 'allowed': ['mute', 'gag', 'both'], 'default': 'both',
88-
'coerce': utils.lower},
89-
'length': {'type': 'integer', 'required': True},
90-
'plugin': {'type': 'boolean', 'default': True}},
91-
'permission': ['core.add_mutegag']},
92-
'DELETE': {'parameters': {'server': {'type': 'uuid', 'nullable': True, 'default': None},
93-
'plugin': {'type': 'boolean', 'default': True}},
94-
'permission': ['core.delete_mutegag']},
95-
}
9687
},
9788
'group': {
9889
'list': {
@@ -212,7 +203,12 @@
212203
'permission': ['core.view_token']},
213204
'DELETE': {'parameters': {},
214205
'permission': ['core.delete_token']},
215-
}
206+
},
207+
'authentication': {
208+
'POST': {'parameters': {'username': {'type': 'string', 'required': True},
209+
'password': {'type': 'string', 'required': True}},
210+
'permission': ['core.view_user']},
211+
},
216212
},
217213
'steam': {
218214
'search': {

api/urls.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@
1414
path('users', user.list, name='user.list'),
1515
path('users/<uuid:u>', user.detailed, name='user.detailed'),
1616
path('users/<steamid:s>', user.detailed, name='user.detailed'),
17-
path('users/<uuid:u>/auth', user.auth, name='user.auth'),
18-
path('users/<uuid:u>/ban', user.ban, name='user.ban'),
19-
path('users/<uuid:u>/kick', user.kick, name='user.kick'),
20-
path('users/<uuid:u>/mutegag', user.mutegag, name='user.mutegag'),
17+
path('users/<uuid:u>/punishment', user.punishment, name='user.punishment'),
2118

2219
# groups
2320
path('groups', group.list, name='group.list'),
@@ -36,6 +33,9 @@
3633
path('system/chat', system.chat, name='system.chat'),
3734
path('system/tokens', system.token, name='system.token'),
3835
path('system/tokens/<uuid:t>', system.token_detailed, name='system.token[detailed]'), # GET, DELETE
36+
path('system/authentication', system.authentication, name='system.authentication'),
37+
path('system/messages', system.chat, name='system.chat'),
38+
path('system/logs', system.chat, name='system.chat'),
3939

4040
# steam
4141
path('steam/search', steam.search, name='steam.search'),

api/views/system.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,18 @@ def token_detailed(request, t=None, validated={}, *args, **kwargs):
134134
}
135135
else:
136136
token.delete()
137+
138+
139+
@csrf_exempt
140+
@json_response
141+
@authentication_required
142+
@permission_required('system.authentication')
143+
@validation('system.authentication')
144+
@require_http_methods(['POST'])
145+
def authentication(request, validated={}, *args, **kwargs):
146+
from django.contrib.auth import authenticate
147+
user = authenticate(username=validated['username'], password=validated['password'])
148+
if user is not None:
149+
return [], 200
150+
else:
151+
return [], 401

0 commit comments

Comments
 (0)