05/29 Update shared items displayed on Grantee items
This commit is contained in:
@@ -101,6 +101,7 @@ def list_outgoing():
|
||||
d = s.to_dict()
|
||||
recipient = db.session.get(User, s.recipient_id) if s.recipient_id else None
|
||||
d['recipient_name'] = recipient.email if recipient else s.recipient_email
|
||||
d['recipient_public_key'] = recipient.sharing_public_key if recipient else None
|
||||
result.append(d)
|
||||
return jsonify(result), 200
|
||||
|
||||
|
||||
@@ -142,6 +142,22 @@ def update_item(item_id):
|
||||
from datetime import datetime, timezone
|
||||
item.updated_at = datetime.now(timezone.utc).replace(tzinfo=None)
|
||||
|
||||
# Re-encrypt accepted shared copies if the owner provided updated ciphertext.
|
||||
# Each entry: { share_id, enc_data, iv, enc_name?, iv_name? }
|
||||
from app.models.shared_item import SharedItem
|
||||
for upd in (data.get('shared_updates') or []):
|
||||
share = SharedItem.query.filter_by(
|
||||
id=upd.get('share_id'),
|
||||
owner_id=g.current_user_id,
|
||||
accepted=True,
|
||||
).first()
|
||||
if share and upd.get('enc_data') and upd.get('iv'):
|
||||
share.enc_data = upd['enc_data']
|
||||
share.iv = upd['iv']
|
||||
if upd.get('enc_name') is not None:
|
||||
share.enc_name = upd['enc_name']
|
||||
share.iv_name = upd.get('iv_name')
|
||||
|
||||
try:
|
||||
db.session.flush()
|
||||
AuditLog.log(
|
||||
|
||||
Reference in New Issue
Block a user