auth_fc: ensure token and user_info are never empty (#52929)

This commit is contained in:
Benjamin Dauvergne 2021-04-12 16:39:59 +02:00
parent 035c603f3d
commit a208a481cf
2 changed files with 12 additions and 6 deletions

View File

@ -20,8 +20,8 @@ class Migration(migrations.Migration):
models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True),
),
('sub', models.TextField(verbose_name='sub', db_index=True)),
('token', models.TextField(verbose_name='access token')),
('user_info', models.TextField(null=True, verbose_name='access token', blank=True)),
('token', models.TextField(verbose_name='access token', default='{}')),
('user_info', models.TextField(null=True, verbose_name='access token', default='{}')),
(
'user',
models.ForeignKey(

View File

@ -91,18 +91,24 @@ class FcAccount(models.Model):
)
sub = models.TextField(verbose_name=_('sub'), db_index=True)
order = models.PositiveIntegerField(verbose_name=_('order'), default=0)
token = models.TextField(verbose_name=_('access token'))
user_info = models.TextField(verbose_name=_('access token'), blank=True, null=True)
token = models.TextField(verbose_name=_('access token'), default='{}')
user_info = models.TextField(verbose_name=_('access token'), null=True, default='{}')
@property
def id_token(self):
return parse_id_token(self.get_token()['id_token'])
def get_token(self):
return json.loads(self.token)
if self.token:
return json.loads(self.token)
else:
return {}
def get_user_info(self):
return json.loads(self.user_info)
if self.user_info:
return json.loads(self.user_info)
else:
return {}
def __str__(self):
user_info = self.get_user_info()