Last active
November 1, 2023 10:13
-
-
Save ntarocco/d0bbcdc9c978277eaf81b645a0f18f28 to your computer and use it in GitHub Desktop.
InvenioRDM scripts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from invenio_rdm_records.proxies import current_rdm_records_service | |
from invenio_access.permissions import system_identity | |
from invenio_records_permissions.generators import SystemProcess | |
from invenio_db import db | |
RECID = "<recid>" | |
current_rdm_records_service.config.permission_policy_cls.can_delete = [SystemProcess()] | |
current_rdm_records_service.delete(system_identity, RECID) | |
db.session.commit() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from invenio_accounts.models import SessionActivity, User, userrole, LoginInformation | |
from invenio_db import db | |
from invenio_oauthclient.models import RemoteAccount, RemoteToken, UserIdentity | |
from invenio_userprofiles.models import UserProfile | |
from invenio_access.permissions import system_identity | |
from invenio_communities.proxies import current_communities | |
from invenio_records_resources.proxies import current_service_registry | |
from invenio_requests.proxies import current_events_service, current_requests_service | |
from invenio_communities.members.records.models import MemberModel, ArchivedInvitationModel | |
def delete_user(user_id): | |
with db.session.begin_nested(): | |
d = db.session.query(userrole).filter(userrole.c.user_id == user_id) | |
d.delete(synchronize_session=False) | |
SessionActivity.query.filter(SessionActivity.user_id == user_id).delete() | |
UserIdentity.query.filter(UserIdentity.id_user == user_id).delete() | |
ra = RemoteAccount.query.filter(RemoteAccount.user_id == user_id).one_or_none() | |
if ra: | |
RemoteToken.query.filter(RemoteToken.id_remote_account == ra.id).delete() | |
ra.delete() | |
li = LoginInformation.query.filter(LoginInformation.user_id == user_id).one_or_none() | |
if li: | |
LoginInformation.query.filter(LoginInformation.user_id == user_id).delete() | |
mm = MemberModel.query.filter(MemberModel.user_id == user_id).one_or_none() | |
if mm: | |
MemberModel.query.filter(MemberModel.user_id == user_id).delete() | |
aim = ArchivedInvitationModel.query.filter(ArchivedInvitationModel.user_id == user_id).one_or_none() | |
if aim: | |
ArchivedInvitationModel.query.filter(ArchivedInvitationModel.user_id == user_id).delete() | |
User.query.filter(User.id == user_id).delete() | |
delete_user(<USER-ID>) | |
db.session.commit() | |
users_service = current_service_registry.get("users") | |
users_service.rebuild_index(system_identity) | |
groups_service = current_service_registry.get("groups") | |
groups_service.rebuild_index(system_identity) | |
members_service = current_communities.service.members | |
members_service.rebuild_index(system_identity) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TOKEN=<add token here> | |
DIR_PATH=/path/to/dir | |
FILENAME=filename.pdf | |
DRAFT_ID=<id> | |
curl -v -X POST \ | |
-H "Authorization: Bearer $TOKEN" \ | |
-H "Content-Type: application/json" \ | |
--data-raw "[{\"key\":\"${FILENAME}\"}]" \ | |
"https://inveniordm.web.cern.ch/api/records/$DRAFT_ID/draft/files" | |
curl -X PUT \ | |
-H "Authorization: Bearer $TOKEN" \ | |
-H "Content-Type: application/octet-stream" \ | |
--data-binary @$DIR_PATH/$FILENAME \ | |
"https://inveniordm.web.cern.ch/api/records/$DRAFT_ID/draft/files/$FILE/content" \ | |
>& /tmp/curl-speed.log | tail -fn 100 /tmp/curl-speed.log | |
TODO: missing 3rd call |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment