commit
87f3e716bf
|
@ -13,11 +13,22 @@ from django.template.loader import get_template
|
|||
from common.mailing import send_email
|
||||
from help.models import Ticket
|
||||
|
||||
logger = logging.getLogger()
|
||||
|
||||
SSH_TYPE_CHOICES = (
|
||||
('ssh-rsa', 'ssh-rsa',),
|
||||
('ssh-dss', 'ssh-dss',),
|
||||
)
|
||||
|
||||
DEFAULT_INDEX_PATH = '/etc/skel/public_html/index.html'
|
||||
|
||||
if os.path.exists(DEFAULT_INDEX_PATH):
|
||||
DEFAULT_INDEX_PAGE = open(DEFAULT_INDEX_PATH).read().rstrip()
|
||||
else:
|
||||
logger.warning('No default html page found in skel. using empty string.')
|
||||
DEFAULT_INDEX_PAGE = ''
|
||||
|
||||
|
||||
KEYFILE_HEADER = """########## GREETINGS! ##########
|
||||
# Hi! This file is automatically managed by tilde.town. You
|
||||
# probably shouldn't change it. If you want to add more public keys that's
|
||||
|
@ -35,6 +46,10 @@ class Townie(User):
|
|||
reasons = TextField(blank=True, null=False, default='')
|
||||
displayname = CharField(max_length=100, blank=False, null=False)
|
||||
|
||||
@property
|
||||
def home(self):
|
||||
return os.path.join('/home', self.username)
|
||||
|
||||
def send_welcome_email(self, admin_name='vilmibm'):
|
||||
welcome_tmpl = get_template('users/welcome_email.txt')
|
||||
context = {
|
||||
|
@ -53,6 +68,15 @@ class Townie(User):
|
|||
self.email))
|
||||
|
||||
# managing concrete system state
|
||||
def has_modified_page(self):
|
||||
"""Returns whether or not the user has modified index.html. If they
|
||||
don't have one, returns False."""
|
||||
index_path = os.path.join(self.home, 'public_html/index.html')
|
||||
if not os.path.exists(index_path):
|
||||
return False
|
||||
|
||||
index_page = open(index_path).read().rstrip()
|
||||
return index_page != DEFAULT_INDEX_PAGE
|
||||
|
||||
def create_on_disk(self):
|
||||
"""A VERY NOT IDEMPOTENT create function. Originally, I had ambitions
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
from django.conf.urls import url
|
||||
|
||||
from .views import SignupView, ThanksView, KeyMachineView
|
||||
from .views import SignupView, ThanksView, KeyMachineView, RandomView
|
||||
|
||||
app_name = 'users'
|
||||
urlpatterns = [
|
||||
url(r'^random/?$', RandomView.as_view(), name='random'),
|
||||
url(r'^signup/?$', SignupView.as_view(), name='signup'),
|
||||
url(r'^thanks/?$', ThanksView.as_view(), name='thanks'),
|
||||
url(r'^keymachine/?$', KeyMachineView.as_view(), name='keymachine'),
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
import re
|
||||
import random
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
from django.forms import Form, CharField, EmailField, Textarea, ChoiceField, BooleanField
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import redirect
|
||||
from django.views.generic import TemplateView
|
||||
from django.views.generic import TemplateView, View
|
||||
from django.views.generic.edit import FormView
|
||||
|
||||
from .forms import TownieForm
|
||||
|
@ -37,3 +38,17 @@ class ThanksView(TemplateView):
|
|||
|
||||
class KeyMachineView(TemplateView):
|
||||
template_name = 'users/keymachine.html'
|
||||
|
||||
class RandomView(View):
|
||||
def get(self):
|
||||
url = None
|
||||
users = list(Townie.objects.all())
|
||||
random.shuffle(users)
|
||||
for user in users:
|
||||
if user.has_modified_page():
|
||||
url = 'https://tilde.town/~{}'.format(user.username)
|
||||
break
|
||||
if url is None:
|
||||
url = 'https://tilde.town'
|
||||
|
||||
return redirect(url)
|
||||
|
|
Loading…
Reference in New Issue