opensafely-core / opensafely-core/opencodelists

Large number of probably not-genuine users

Open
#2,064 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

initiative:onboarding security
Dominant language
Python
Stars
60
Forks
16
Avg merge
4d 12h
Merged PRs (30d)
17

Description

2661 Users in total

Many of these from looking at the Django admin page for opencodelists appear to be not genuine users ( slack thread ).

I'm not sure there's a robust method to identify these accounts that fail the "looks a bit dodgy" sniff test, but here are some possible heuristics:

E.g. 89 are from .ru domains, 1132 have spammy phrases embedded in the username part of the email address split by many . characters

>>> len([u for u in User.objects.all() if u.email.count('.')>4])
1132

2081 have no codelists associated with them

>>> handleusers = set([h.user for h in Handle.objects.all()])
>>> versionauthors = set([v.author for v in CodelistVersion.objects.all()])
>>> anyauthor = handleusers.union(versionauthors)
>>> len(anyauthor)
580

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start from the OpenCodelists admin User page and review the issue's proposed heuristics: email domains, repeated dots in usernames, and users without associated Handles or CodelistVersion authorship. Check the linked Slack discussion for context. Done requires an agreed robust method for identifying non-genuine accounts, since the issue does not define one.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.