X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fcore%2Fmodels%2Fuser.py;h=244ef6a0c5a13126f0012575662ac7e7e3896404;hb=254d0542b79c44d316011358d6b37bca169ac4d5;hp=b30e89797483851eeb4876a875f053a62a255637;hpb=3edd2f4b1a1b3e8eb1226300526516a03bc2b515;p=plstackapi.git diff --git a/planetstack/core/models/user.py b/planetstack/core/models/user.py index b30e897..244ef6a 100644 --- a/planetstack/core/models/user.py +++ b/planetstack/core/models/user.py @@ -1,6 +1,7 @@ import os import datetime import sys +import hashlib from collections import defaultdict from django.forms.models import model_to_dict from django.db import models @@ -111,8 +112,28 @@ class User(AbstractBaseUser): #, DiffModelMixIn): def get_field_diff(self, field_name): return self.diff.get(field_name, None) + + #classmethod + def getValidators(cls): + """ primarily for REST API, return a dictionary of field names mapped + to lists of the type of validations that need to be applied to + those fields. + """ + validators = {} + for field in cls._meta.fields: + l = [] + if field.blank==False: + l.append("notBlank") + if field.__class__.__name__=="URLField": + l.append("url") + validators[field.name] = l + return validators # ---- end copy stuff from DiffModelMixin ---- + @property + def remote_password(self): + return hashlib.md5(self.password).hexdigest()[:12] + class Meta: app_label = "core" @@ -141,6 +162,7 @@ class User(AbstractBaseUser): #, DiffModelMixIn): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) enacted = models.DateTimeField(null=True, default=None) + policed = models.DateTimeField(null=True, default=None) backend_status = models.CharField(max_length=140, default="Provisioning in progress") deleted = models.BooleanField(default=False)