djangorestframework_emailuser
=============================
.. image:: https://github.com/simlist/django-rest-framework-emailuser/actions/workflows/testing-and-coverage.yml/badge.svg?branch=master
:target: https://github.com/simlist/pyluach/actions/workflows/testing-and-coverage.yml
.. image:: https://coveralls.io/repos/github/simlist/django-rest-framework-emailuser/badge.svg?branch=master
:target: https://coveralls.io/github/simlist/django-rest-framework-emailuser?branch=master
Overview
--------
A user for djangorestframework that uses an email as the username.
Features
--------
* Use email as username for loging in
* One name field instead of first name and last name
* Endpoints for creating an account, viewing, and updating accounts
* Django admin to work with EmailUser model.
Requirements
------------
- Python 3.5+
- Django 2.2+
- Djangorestframework 3.10+
Installation and Configuration
------------------------------
Install using ``pip``:
.. code-block:: sh
$ pip install djangorestframework_emailuser
Add ``'emailuser'`` to ``INSTALLED_APPS``:
.. code-block:: Python
# mysite/settings.py
INSTALLED_APPS = [
...
'emailuser',
]
Add the following line to ``settings.py`` to override django's default User
model with the 'EmailUser' model:
.. code-block:: Python
# mysite/settings.py
AUTH_USER_MODEL = 'emailuser.EmailUser'
Add urls to url conf:
.. code-block:: Python
# mysite/urls.py
from django.urls import path, include
urlpatterns = [
...
path('accounts/', include('emailuser.urls')),
]
Using
-----
To create a user programatically:
.. code-block:: Python
from django.contrib.auth import get_user_model
normal_user = get_user_model().objects.create_user(
email='me@example.com',
name='My Name',
password='MyPassword'
)
superuser = get_user_model().objects.create_superuser(
email='admin@example.com',
name='Super Name',
password='MySuperPassword'
)
Using Endpoints:
~~~~~~~~~~~~~~~~
Assuming emailuser urls were set to ``/accounts/``:
Creating user
?????????????
``POST`` ``{"email": email, "name": name, "password": password}``
to ``/accounts/users/register``
Updating User
?????????????
``PUT`` ``{"email": email, "name": name, "password": password}``
to ``/accounts/users/<int:pk>/``
or
``PATCH`` the attribute you want to change
to ``/accounts/users/<int:pk>/``
Referencing User
????????????????
To reference user object in your code as a string (As for foreign keys):
.. code-block:: Python
from django.conf import settings
user_model = settings.AUTH_USER_MODEL
To reference the user class directly:
.. code-block:: Python
from django.contrib.auth import get_user_model
user_model = get_user_model()
See `Django docs <https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#referencing-the-user-model>`_ for more details.
Attributes
~~~~~~~~~~
The EmailUser model has the following attributes:
email
The email address used as the login username.
name
A single field for the name of the user.
password
The password is hashed as set by the django settings.
is_superuser
A boolean attribute that can only be set programatically.
is_staff
A boolean attribute that can be set by the admin site or
programatically.
EmailUser also subclasses ``django.contrib.auth.models.PermissionsMixin``.
Raw data
{
"_id": null,
"home_page": null,
"name": "djangorestframework_emailuser",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "django,djangorestframework,drf,user,emailuser",
"author": null,
"author_email": "MS List <simlist@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/4d/0e/a7e4377d691661c9c9ec3252e291a33c9a28782da4d50f50602541ba866d/djangorestframework_emailuser-0.3.1.dev0.tar.gz",
"platform": null,
"description": "djangorestframework_emailuser\n=============================\n\n.. image:: https://github.com/simlist/django-rest-framework-emailuser/actions/workflows/testing-and-coverage.yml/badge.svg?branch=master\n :target: https://github.com/simlist/pyluach/actions/workflows/testing-and-coverage.yml\n\n.. image:: https://coveralls.io/repos/github/simlist/django-rest-framework-emailuser/badge.svg?branch=master\n :target: https://coveralls.io/github/simlist/django-rest-framework-emailuser?branch=master\n\nOverview\n--------\n\nA user for djangorestframework that uses an email as the username.\n\nFeatures\n--------\n\n* Use email as username for loging in\n* One name field instead of first name and last name\n* Endpoints for creating an account, viewing, and updating accounts\n* Django admin to work with EmailUser model.\n\nRequirements\n------------\n\n- Python 3.5+\n- Django 2.2+\n- Djangorestframework 3.10+\n\nInstallation and Configuration\n------------------------------\n\nInstall using ``pip``:\n\n.. code-block:: sh\n\n $ pip install djangorestframework_emailuser\n\nAdd ``'emailuser'`` to ``INSTALLED_APPS``:\n\n.. code-block:: Python\n\n # mysite/settings.py\n INSTALLED_APPS = [\n ...\n 'emailuser',\n ]\n\nAdd the following line to ``settings.py`` to override django's default User\nmodel with the 'EmailUser' model:\n\n.. code-block:: Python\n\n # mysite/settings.py\n AUTH_USER_MODEL = 'emailuser.EmailUser'\n\nAdd urls to url conf:\n\n.. code-block:: Python\n\n # mysite/urls.py\n from django.urls import path, include\n urlpatterns = [\n ...\n path('accounts/', include('emailuser.urls')),\n ]\n\nUsing\n-----\nTo create a user programatically:\n\n.. code-block:: Python\n\n from django.contrib.auth import get_user_model\n\n normal_user = get_user_model().objects.create_user(\n email='me@example.com',\n name='My Name',\n password='MyPassword'\n )\n\n superuser = get_user_model().objects.create_superuser(\n email='admin@example.com',\n name='Super Name',\n password='MySuperPassword'\n )\n\nUsing Endpoints:\n~~~~~~~~~~~~~~~~\nAssuming emailuser urls were set to ``/accounts/``:\n\nCreating user\n?????????????\n``POST`` ``{\"email\": email, \"name\": name, \"password\": password}``\nto ``/accounts/users/register``\n\nUpdating User\n?????????????\n``PUT`` ``{\"email\": email, \"name\": name, \"password\": password}``\nto ``/accounts/users/<int:pk>/``\nor\n``PATCH`` the attribute you want to change\nto ``/accounts/users/<int:pk>/``\n\nReferencing User\n????????????????\nTo reference user object in your code as a string (As for foreign keys):\n\n.. code-block:: Python\n\n from django.conf import settings\n\n user_model = settings.AUTH_USER_MODEL\n\nTo reference the user class directly:\n\n.. code-block:: Python\n\n from django.contrib.auth import get_user_model\n\n user_model = get_user_model()\n\nSee `Django docs <https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#referencing-the-user-model>`_ for more details.\n\nAttributes\n~~~~~~~~~~\nThe EmailUser model has the following attributes:\n\nemail\n The email address used as the login username.\n\nname\n A single field for the name of the user.\npassword\n The password is hashed as set by the django settings.\n\nis_superuser\n A boolean attribute that can only be set programatically.\n\nis_staff\n A boolean attribute that can be set by the admin site or\n programatically.\n\nEmailUser also subclasses ``django.contrib.auth.models.PermissionsMixin``.\n",
"bugtrack_url": null,
"license": null,
"summary": "A user for djangorestframework that uses an email as the username.",
"version": "0.3.1.dev0",
"project_urls": {
"Source": "https://github.com/simlist/django-rest-framework-emailuser"
},
"split_keywords": [
"django",
"djangorestframework",
"drf",
"user",
"emailuser"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "46275b8e3e5bec047087c51eadbab70f3444091735c57e3c96c5efc02b14f8bd",
"md5": "8f733709e0868a19bd4cde505251111a",
"sha256": "ac06df2088a3af660eade2e464165892351d4158640ea81fdf143b2d54ab15b9"
},
"downloads": -1,
"filename": "djangorestframework_emailuser-0.3.1.dev0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8f733709e0868a19bd4cde505251111a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 8524,
"upload_time": "2023-07-11T15:04:27",
"upload_time_iso_8601": "2023-07-11T15:04:27.321595Z",
"url": "https://files.pythonhosted.org/packages/46/27/5b8e3e5bec047087c51eadbab70f3444091735c57e3c96c5efc02b14f8bd/djangorestframework_emailuser-0.3.1.dev0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4d0ea7e4377d691661c9c9ec3252e291a33c9a28782da4d50f50602541ba866d",
"md5": "587cba65af0849b792c6260ad2135d9b",
"sha256": "d1e3ac00711d11e17575a19c1d3d2e2ca86e62f83c90100fa6c8f1f7455fd23e"
},
"downloads": -1,
"filename": "djangorestframework_emailuser-0.3.1.dev0.tar.gz",
"has_sig": false,
"md5_digest": "587cba65af0849b792c6260ad2135d9b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 8033,
"upload_time": "2023-07-11T15:04:33",
"upload_time_iso_8601": "2023-07-11T15:04:33.941615Z",
"url": "https://files.pythonhosted.org/packages/4d/0e/a7e4377d691661c9c9ec3252e291a33c9a28782da4d50f50602541ba866d/djangorestframework_emailuser-0.3.1.dev0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-11 15:04:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "simlist",
"github_project": "django-rest-framework-emailuser",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "djangorestframework_emailuser"
}