forked from Minecraft/minecraft_manager
Finished API tokens
parent
7ae8fa576d
commit
20c97188ef
2
admin.py
2
admin.py
|
@ -5,6 +5,7 @@ from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
|||
from django.contrib.auth.models import User
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from minecraft_manager.models import Application, Warning, Ticket, Player, IP, UserSettings, Alert, Note
|
||||
from minecraft_manager.api.admin import register as api_register
|
||||
|
||||
|
||||
class PlayerInline(admin.StackedInline):
|
||||
|
@ -100,6 +101,7 @@ try:
|
|||
admin.site.register(IP, IPAdmin)
|
||||
admin.site.register(Alert)
|
||||
admin.site.register(Note)
|
||||
api_register()
|
||||
except admin.sites.AlreadyRegistered:
|
||||
pass
|
||||
|
||||
|
|
|
@ -22,6 +22,9 @@ class TokenActiveFilter(admin.SimpleListFilter):
|
|||
|
||||
class TokenAdmin(admin.ModelAdmin):
|
||||
list_filter = (TokenActiveFilter,)
|
||||
list_display = ('key', 'active', 'web_get_permission', 'web_post_permission', 'plugin_get_permission',
|
||||
'plugin_post_permission', 'form_get_permission', 'form_post_permission', 'model_get_permission',
|
||||
'model_post_permission', 'stats_get_permission', 'stats_post_permission')
|
||||
fieldsets = (
|
||||
(None, {
|
||||
'fields': ('key', 'active')
|
||||
|
@ -34,8 +37,9 @@ class TokenAdmin(admin.ModelAdmin):
|
|||
)
|
||||
|
||||
|
||||
try:
|
||||
def register():
|
||||
try:
|
||||
admin.site.register(Token, TokenAdmin)
|
||||
except admin.sites.AlreadyRegistered:
|
||||
except admin.sites.AlreadyRegistered:
|
||||
pass
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import socket, requests, logging, os, datetime, pytz, mcstatus, discord
|
||||
import socket, requests, logging, os, datetime, pytz, mcstatus, random, string
|
||||
from minecraft_manager.models import Alert
|
||||
from django.contrib.auth.models import User
|
||||
from django.conf import settings
|
||||
|
@ -141,3 +141,7 @@ def get_query():
|
|||
except:
|
||||
return {'max': 0, 'online': 0,
|
||||
'players': []}
|
||||
|
||||
|
||||
def generate_password(size=20):
|
||||
return "".join([random.choice(string.ascii_letters + string.digits) for idx in range(0, size)])
|
|
@ -1,16 +1,20 @@
|
|||
from django.db import models
|
||||
from minecraft_manager.api.api import generate_password
|
||||
|
||||
|
||||
class Token(models.Model):
|
||||
key = models.CharField("Key", max_length=50, unique=True)
|
||||
key = models.CharField("Key", default=generate_password, max_length=50, unique=True)
|
||||
active = models.BooleanField("Active", default=True)
|
||||
web_get_permission = models.BooleanField("Web API GET", default=False)
|
||||
web_post_permission = models.BooleanField("Web API POST", default=False)
|
||||
plugin_get_permission = models.BooleanField("Plugin API GET", default=False)
|
||||
plugin_post_permission = models.BooleanField("Plugin API POST", default=False)
|
||||
form_get_permission = models.BooleanField("Form API GET", default=False)
|
||||
form_post_permission = models.BooleanField("Form API POST", default=False)
|
||||
model_get_permission = models.BooleanField("Model API GET", default=False)
|
||||
model_post_permission = models.BooleanField("Model API POST", default=False)
|
||||
stats_get_permission = models.BooleanField("Stats API GET", default=False)
|
||||
stats_post_permission = models.BooleanField("Stats API POST", default=False)
|
||||
web_get_permission = models.BooleanField("Web GET", default=False)
|
||||
web_post_permission = models.BooleanField("Web POST", default=False)
|
||||
plugin_get_permission = models.BooleanField("Plugin GET", default=False)
|
||||
plugin_post_permission = models.BooleanField("Plugin POST", default=False)
|
||||
form_get_permission = models.BooleanField("Form GET", default=False)
|
||||
form_post_permission = models.BooleanField("Form POST", default=False)
|
||||
model_get_permission = models.BooleanField("Model GET", default=False)
|
||||
model_post_permission = models.BooleanField("Model POST", default=False)
|
||||
stats_get_permission = models.BooleanField("Stats GET", default=False)
|
||||
stats_post_permission = models.BooleanField("Stats POST", default=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.key
|
||||
|
|
16
api/views.py
16
api/views.py
|
@ -1,6 +1,6 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
import logging, random, string, datetime
|
||||
import logging, datetime
|
||||
from django.contrib.auth.forms import PasswordChangeForm
|
||||
from django.contrib.auth import update_session_auth_hash
|
||||
from django.apps import apps
|
||||
|
@ -11,7 +11,7 @@ from django.utils import timezone
|
|||
from django.views.generic import View
|
||||
from django.forms import modelform_factory
|
||||
|
||||
import minecraft_manager.forms as MCMForms
|
||||
import minecraft_manager.forms as mcm_forms
|
||||
from minecraft_manager.models import Player, UserSettings, Application, IP, Ticket, Warning
|
||||
import minecraft_manager.api.api as mcm_api
|
||||
from minecraft_manager.api.models import Token
|
||||
|
@ -51,10 +51,6 @@ def clean(model, data):
|
|||
return cleaned
|
||||
|
||||
|
||||
def generate_password():
|
||||
return "".join([random.choice(string.ascii_letters + string.digits) for idx in range(0, 20)])
|
||||
|
||||
|
||||
class WebAPI(View):
|
||||
|
||||
def get(self, request, keyword):
|
||||
|
@ -119,7 +115,7 @@ class WebAPI(View):
|
|||
else:
|
||||
return HttpResponse(form.as_p())
|
||||
elif keyword == 'alert':
|
||||
form = MCMForms.AlertForm(request.POST)
|
||||
form = mcm_forms.AlertForm(request.POST)
|
||||
if form.is_valid():
|
||||
if mcm_api.create_alert(form.cleaned_data['message']):
|
||||
data = {'success': True}
|
||||
|
@ -284,7 +280,7 @@ class PluginAPI(View):
|
|||
json['status'] = False
|
||||
json['message'] = "You are already registered. To change your password, contact an Admin."
|
||||
else:
|
||||
password = generate_password()
|
||||
password = mcm_api.generate_password()
|
||||
user = User.objects.create_user(username=player.username.lower(), password=password)
|
||||
user.save()
|
||||
player.auth_user = user
|
||||
|
@ -332,7 +328,7 @@ class FormAPI(View):
|
|||
break
|
||||
if model:
|
||||
form = None
|
||||
for modelform in MCMForms.__all__():
|
||||
for modelform in mcm_forms.__all__():
|
||||
if modelform.Meta.model == model:
|
||||
form = modelform()
|
||||
break
|
||||
|
@ -355,7 +351,7 @@ class FormAPI(View):
|
|||
break
|
||||
if model:
|
||||
form = None
|
||||
for modelform in MCMForms.__all__():
|
||||
for modelform in mcm_forms.__all__():
|
||||
if modelform.Meta.model == model:
|
||||
form = modelform(post)
|
||||
break
|
||||
|
|
Loading…
Reference in New Issue