Giter Club home page Giter Club logo

tildetown-admin's People

Contributors

amfl avatar archangelic avatar evilmibm avatar vilmibm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

tildetown-admin's Issues

user model method: is_page_default

it's often helpful to check if someone's homepage has been modified. a method should be added to the Townie model that does something like:

  • read in /etc/skel/public_html/index.html
  • read in /home/{username}/public_html/index.html
  • return whether or not they're equal

`notes` section for `Townie` model

We need to be able to capture notes on users to share among admins; this is especially helpful for tracking why a given signup was rejected.

Double social postings when doing bulk review

Whenever a bulk review of new users is done, there are 2 posts: one noting the individual user, and one bulk message.

this is caused by post_single_user_social being ran in on_townie_pre_save and then the bulk_review function running post_users_to_social

Is there a way to tell on_townie_pre_save to not run the posting function if we do bulk add?

validate email uniqueness

currently people can sign up for an account with an email we already have on file. this is a bug and is currently caught manually. fail form validation for non-unique emails.

ttadmin API

We should be able to create helpdesk tickets from IRC or elsewhere on the system. This card covers adding a REST API to ttadmin with at least a helpdesk ticket creation endpoint to start.

Port emails from legacy spreadsheet to admin app

We assume for certain tasks right now that every user has an email on their account; for older users this isn't true.

This is going to be messy and challenging and involve manual intervention, but a new script in scripts/ should be added to aid in the process.

clean up js-keygen code

i straight up copied js-keygen (legally, and with attribution :p) into this project. i'd like it to be cleaned up.

  • clean up unused parameters in GeneratePair
  • audit for unused functions
  • move everything into one file and properly scope / expose it

first class support for requesting a new key

by far the most common help desk issue is "help i need a new key." there isn't a good way to solve for this without some manual intervention, but we should take a similar approach as we do to signups:

  • user fills out a form that validates they are submitting a valid public key
  • on form submit,
    • KeyRequestSignup is created
    • admin app sends an email verification

Requests are marked as "unverified" until the email address is verified; at that point, an admin can approve and process the request.

Script user renames

A very common admin issue is renames.

historically because of admin ignorance this has been labor intensive: make new user, archive old user's stuff, move stuff, tell user...

i just realized this though:

usermod -l new_username -m -d /new/home/dir old_username

This ticket covers

  • implementing a new standalone python script for renaming users
  • supporting this behavior in the Townie admin when a user is saved
  • updating tilde.town's sudoers file as needed
  • updating docs here as needed

Internal notes section for helpdesk tickets.

We need to be able to share notes with each other about helpdesk tickets so we don't step on each others' toes.

  • Support associating a Note with a ticket
  • Display notes in admin UI

Script for emailing all users locally

PSAs currently go out on wall/bbj/irc and often get missed. Admins should be able to email all local users with a script so that PSAs are more tangible.

Should live in scripts/

Email about user account renaming

Renaming a user in the admin will rename their account; however, it will kick them off the server. If they don't know to use their new username then they'll think they can't log in at all. After successfully renaming a user account, send an email to the affected user.

atomic user creation

the user approval/creation code can fail at a number of points, leaving things in a funny state.

the user creation code should only notify social/user if the account was successfully created, the keyfile successfully created, and the user model successfully marked as accepted. any other state should be caught and captured as a system ticket.

Serve favicon

All this requires is serving the standard tilde.town favicon when /favicon.ico is requested. I would do it, but I don't know the first thing about Django.

make an admin action for cycling help ticket statuses

add an action to the action dropdown (see the "mark townie as reviewed" action in the townie admin app) like "change queue" that moves a ticket to the "next" state; ie from "to triage" to "waiting to hear" to "nothing to do" and finally back to "to triage".

also while in there, make issue status the top field on the admin page for a help ticket.

Ability to send emails from helpdesk UI

The Ticket admin UI should allow sending an email to the address on the ticket.

This issue also includes support for picking a message template to fill the textarea in with; most tickets are "help i need this key added" and being able to two-click send an email with a templated message would make clearing out the help queue much easier.

  • support for email templates in DB
  • expose email templates in UI
  • support for sending email via textarea

update some reqs

some of the versions of libraries we currently use don't work on python 3.7. this is okay on the town atm since we use python 3.6, but will need to be fixed eventually.

the changes:

Mastodon.py to 1.2.2
tweepy to 3.7.0

after updating, test that our social posts still work when adding new users.

Improve ecdsa key handling

Right now we mis-format ecdsa keys. We should either improve out handling of such keys or move to strictly supporting ssh-rsa only for initial keys (people can add whatever on their own still).

Ability to claim helpdesk tickets.

It's nice to be able to flag when you are going to handle or are handling a ticket.

  • Support association between Townie and Ticket
  • Show in admin UI

Support self-service chsh and chfn

This issue covers:

  • An auth system that doesn't require a password but lets a user call chsh and chfn for themselves
  • The actual implementation of those features

I'm not really sure yet how this should work or how it should be exposed. it's possible that we just want to wrap chsh and chfn with something and not involve the django admin at all.

`rejected` state for the `Townie` model

Right now there is only unreviewed and approved. We get a number of signups that we don't want to accept and they just kind of sit there or get fully deleted.

Rejected signups should not take over a username, just serve as a record of admin decision making.

add /random

the only thing the old flask app is still running to support is the /random url linked from the ascii art on the homepage.

this url should pick a random Townie who has updated their index.html from the default (see #19) and redirect to their home page.

write tests

This covers various areas of the app that require testing. It also covers a sane mocking approach to unix stuff and email.

  • test user model (disk interactions)
  • test signup form (data validation)
  • test guestbook app
  • test helpdesk app

create a .plan for new users

it could be seeded with something like "~soandso joined tilde.town on ". we could also take a bio when they sign up and then put it in here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.