Skip to content

Commit 57f1fac

Browse files
committed
Merge branch 'develop' into 'main'
chore: Add invitation accepted time See merge request locker/api-core!612
2 parents 0530001 + 210330f commit 57f1fac

7 files changed

Lines changed: 37 additions & 1 deletion

File tree

locker_server/api/v1_0/sharing/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ def to_representation(self, instance):
1717
data = {
1818
"id": instance.team_member_id,
1919
"access_time": instance.access_time,
20+
"accepted_time": instance.accepted_time,
2021
"role": instance.role.name,
2122
"status": instance.status,
2223
"team": {

locker_server/api/v1_0/sync/serializers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def to_representation(self, instance):
5555
"key": instance.key,
5656
"name": instance.team.name,
5757
"status": MAP_MEMBER_STATUS_TO_INT.get(instance.status),
58+
"accepted_time": instance.accepted_time,
5859
"type": real_role,
5960
}
6061
return team_member_data

locker_server/api_orm/abstracts/members/team_members.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class AbstractTeamMemberORM(models.Model):
1111
id = models.CharField(primary_key=True, max_length=128, default=uuid.uuid4)
1212
external_id = models.CharField(max_length=300, null=True)
1313
access_time = models.IntegerField()
14+
accepted_time = models.IntegerField(null=True, default=None)
1415
is_default = models.BooleanField(default=False)
1516
is_primary = models.BooleanField(default=False)
1617
is_added_by_group = models.BooleanField(default=False)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Generated by Django 5.2.13 on 2026-06-17 08:01
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('api_orm', '0046_backupcredentialorm_kdf_memory_and_more'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='teammemberorm',
15+
name='accepted_time',
16+
field=models.IntegerField(default=None, null=True),
17+
),
18+
]

locker_server/api_orm/model_parsers/team_parser.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def parse_team_member(cls, team_member_orm: TeamMemberORM) -> TeamMember:
3737
team_member_id=team_member_orm.id,
3838
external_id=team_member_orm.external_id,
3939
access_time=team_member_orm.access_time,
40+
accepted_time=team_member_orm.accepted_time,
4041
is_default=team_member_orm.is_default,
4142
is_primary=team_member_orm.is_primary,
4243
is_added_by_group=team_member_orm.is_added_by_group,

locker_server/api_orm/repositories/sharing_repository.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,9 +315,11 @@ def accept_invitation(self, member: TeamMember) -> Optional[TeamMember]:
315315
# Else, set status ACCEPTED
316316
else:
317317
member_orm.status = PM_MEMBER_STATUS_ACCEPTED
318+
member_orm.accepted_time = now()
318319
member_orm.save()
319320
bump_account_revision_date(user=member_orm.user)
320321
member.status = member_orm.status
322+
member.accepted_time = member_orm.accepted_time
321323
return member
322324

323325
def reject_invitation(self, member: TeamMember):
@@ -333,12 +335,14 @@ def confirm_invitation(self, member: TeamMember, key: str):
333335
member_orm.email = None
334336
member_orm.key = key
335337
member_orm.status = PM_MEMBER_STATUS_CONFIRMED
338+
member_orm.accepted_time = now()
336339
member_orm.save()
337340
bump_account_revision_date(user=member_orm.user)
338341

339342
member.status = member_orm.status
340343
member.key = member_orm.key
341344
member.email = None
345+
member.accepted_time = member_orm.accepted_time
342346
return member
343347

344348
def update_role_invitation(self, member: TeamMember, role_id: str,

locker_server/core/entities/member/team_member.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@
55

66

77
class TeamMember(object):
8-
def __init__(self, team_member_id: str, external_id: str = None, access_time: int = None, is_default: bool = False,
8+
def __init__(self, team_member_id: str, external_id: str = None, access_time: int = None,
9+
accepted_time: int = None, is_default: bool = False,
910
is_primary: bool = False, is_added_by_group: bool = False, hide_passwords: bool = False,
1011
key: str = None, reset_password_key: str = None, status: str = PM_MEMBER_STATUS_CONFIRMED,
1112
email: str = None, token_invitation: str = None, user: User = None, team: Team = None,
1213
role: MemberRole = None):
1314
self._team_member_id = team_member_id
1415
self._external_id = external_id
1516
self._access_time = access_time
17+
self._accepted_time = accepted_time
1618
self._is_default = is_default
1719
self._is_primary = is_primary
1820
self._is_added_by_group = is_added_by_group
@@ -38,6 +40,14 @@ def external_id(self):
3840
def access_time(self):
3941
return self._access_time
4042

43+
@property
44+
def accepted_time(self):
45+
return self._accepted_time
46+
47+
@accepted_time.setter
48+
def accepted_time(self, accepted_time_value):
49+
self._accepted_time = accepted_time_value
50+
4151
@property
4252
def is_default(self):
4353
return self._is_default

0 commit comments

Comments
 (0)