from django.contrib.auth.base_user import BaseUserManager
from django.utils.translation import ugettext_lazy as _


class UserManager(BaseUserManager):
	def create_user(self, username, password, email, **extra_fields):
		if not username:
			raise ValueError(_('Логин должен быть указан'))
			
		username = self.model.normalize_username(username)
		email = self.normalize_email(email)
		user = self.model(username = username, email = email, **extra_fields)
		user.set_password(password)
		user.save()

		return user

	def create_superuser(self, username, password, email, **extra_fields):
		extra_fields.setdefault('is_staff', True)
		extra_fields.setdefault('is_superuser', True)
		extra_fields.setdefault('is_active', True)

		if extra_fields.get('is_staff') is not True:
			raise ValueError(_('Супер пользователь должен иметь is_staff=True'))
		if extra_fields.get('is_superuser') is not True:
			raise ValueError(_('Сепер пользователь должен иметь is_superuser=True'))

		return self.create_user(username, password, email, **extra_fields)