def set_sign_off(updates, original=None, repo_type=ARCHIVE, user=None): """Set sign_off on updates object. Rules: 1. updates['sign_off'] = original['sign_off'] + sign_off of the user performing operation. 2. If the last modified user and the user performing operation are same then sign_off shouldn't change 3. If sign_off is received on updates, this value will be preserved 4. If a users sign_off is already in the list then remove it an append it to the remaining """ if repo_type != ARCHIVE: return user = user if user else get_user() if not user: return if SIGN_OFF in updates: return sign_off = get_sign_off(user) current_sign_off = '' if original is None else (original.get(SIGN_OFF, '') or '') if current_sign_off.endswith(sign_off): return # remove the sign off from the list if already there current_sign_off = current_sign_off.replace(sign_off + '/', '') updated_sign_off = '{}/{}'.format(current_sign_off, sign_off) updates[SIGN_OFF] = updated_sign_off[1:] if updated_sign_off.startswith( '/') else updated_sign_off
def set_sign_off(updates, original=None, repo_type=ARCHIVE, user=None): """Set sign_off on updates object. Rules: 1. updates['sign_off'] = original['sign_off'] + sign_off of the user performing operation. 2. If the last modified user and the user performing operation are same then sign_off shouldn't change 3. If sign_off is received on updates, this value will be preserved 4. If a users sign_off is already in the list then remove it an append it to the remaining """ if repo_type != ARCHIVE: return user = user if user else get_user() if not user: return if SIGN_OFF in updates: return sign_off = get_sign_off(user) current_sign_off = '' if original is None else (original.get(SIGN_OFF, '') or '') if current_sign_off.endswith(sign_off): return # remove the sign off from the list if already there current_sign_off = current_sign_off.replace(sign_off + '/', '') updated_sign_off = '{}/{}'.format(current_sign_off, sign_off) updates[SIGN_OFF] = updated_sign_off[1:] if updated_sign_off.startswith('/') else updated_sign_off
def set_sign_off(updates, original=None, repo_type=ARCHIVE, user=None): """ Set sign_off on updates object. Rules: 1. updates['sign_off'] = original['sign_off'] + sign_off of the user performing operation. 2. If the last modified user and the user performing operation are same then sign_off shouldn't change 3. If sign_off is received on updates, this value will be preserved """ if repo_type != ARCHIVE: return user = user if user else get_user() if not user: return if SIGN_OFF in updates: return sign_off = get_sign_off(user) current_sign_off = '' if original is None else original.get(SIGN_OFF, '') if current_sign_off.endswith(sign_off): return updated_sign_off = '{}/{}'.format(current_sign_off, sign_off) updates[SIGN_OFF] = updated_sign_off[1:] if updated_sign_off.startswith('/') else updated_sign_off
def set_sign_off(updates, original=None, repo_type=ARCHIVE, user=None): """ Set sign_off on updates object. Rules: 1. updates['sign_off'] = original['sign_off'] + sign_off of the user performing operation. 2. If the last modified user and the user performing operation are same then sign_off shouldn't change """ if repo_type != ARCHIVE: return user = user if user else get_user() if not user: return sign_off = get_sign_off(user) current_sign_off = '' if original is None else original.get(SIGN_OFF, '') if current_sign_off.endswith(sign_off): return updated_sign_off = '{}/{}'.format(current_sign_off, sign_off) updates[SIGN_OFF] = updated_sign_off[1:] if updated_sign_off.startswith('/') else updated_sign_off
def set_sign_off(updates, original=None, repo_type=ARCHIVE): """ Set sign_off on updates object. Rules: 1. updates['sign_off'] = original['sign_off'] + sign_off of the user performing operation. 2. If the last modified user and the user performing operation are same then sign_off shouldn't change """ if repo_type != ARCHIVE: return user = get_user() if not user: return sign_off = get_sign_off(user) current_sign_off = "" if original is None else original.get(SIGN_OFF, "") if current_sign_off.endswith(sign_off): return updated_sign_off = "{}/{}".format(current_sign_off, sign_off) updates[SIGN_OFF] = updated_sign_off[1:] if updated_sign_off.startswith("/") else updated_sign_off