def test_check_bibdoc_authorization(self): """bibdocfile - check_bibdoc_authorization function""" from invenio.webuser import collect_user_info, get_uid_from_email jekyll = collect_user_info(get_uid_from_email('*****@*****.**')) self.assertEqual(check_bibdoc_authorization(jekyll, 'role:thesesviewer'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'role: thesesviewer'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'role: thesesviewer'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertNotEqual(check_bibdoc_authorization(jekyll, 'Role: thesesviewer')[0], 0) self.assertEqual(check_bibdoc_authorization(jekyll, 'email: [email protected]'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'email: [email protected]'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) juliet = collect_user_info(get_uid_from_email('*****@*****.**')) self.assertEqual(check_bibdoc_authorization(juliet, 'restricted_picture'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(juliet, 'status: restricted_picture'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertNotEqual(check_bibdoc_authorization(juliet, 'restricted_video')[0], 0) self.assertNotEqual(check_bibdoc_authorization(juliet, 'status: restricted_video')[0], 0)
def test_check_bibdoc_authorization(self): """bibdocfile - check_bibdoc_authorization function""" from invenio.bibdocfile import check_bibdoc_authorization from invenio.webuser import collect_user_info, get_uid_from_email jekyll = collect_user_info(get_uid_from_email('*****@*****.**')) self.assertEqual(check_bibdoc_authorization(jekyll, 'role:thesesviewer'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'role: thesesviewer'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'role: thesesviewer'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'Role: thesesviewer'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'email: [email protected]'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(jekyll, 'email: [email protected]'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) juliet = collect_user_info(get_uid_from_email('*****@*****.**')) self.assertEqual(check_bibdoc_authorization(juliet, 'restricted_picture'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertEqual(check_bibdoc_authorization(juliet, 'status: restricted_picture'), (0, CFG_WEBACCESS_WARNING_MSGS[0])) self.assertNotEqual(check_bibdoc_authorization(juliet, 'restricted_video')[0], 0) self.assertNotEqual(check_bibdoc_authorization(juliet, 'status: restricted_video')[0], 0)
def test_search_restricted_submission(self): """websearch - search for restricted submission, with SubmissionNameSearchService""" user_info = collect_user_info(get_uid_from_email('*****@*****.**')) pattern = 'submit thesis' search_units = create_basic_search_units(None, pattern, '') response = self.plugin.answer(req=user_info, user_info=user_info, of='hb', cc=CFG_SITE_NAME, colls_to_search='', p=pattern, f='', search_units=search_units, ln='en') self.assert_(response[0] >=50) self.assert_('doctype=DEMOTHE' in response[1])
def test_search_restricted_submission(self): """websearch - search for restricted submission, with SubmissionNameSearchService""" user_info = collect_user_info(get_uid_from_email('*****@*****.**')) pattern = 'submit thesis' search_units = create_basic_search_units(None, pattern, '') response = self.plugin.answer( req=user_info, user_info=user_info, of='hb', cc=CFG_SITE_NAME, colls_to_search='', p=pattern, f='', search_units=search_units, ln='en' ) self.assert_(response[0] >= 50) self.assert_('doctype=DEMOTHE' in response[1])
Run as:: python fix_8560.py > output.xml bibupload -c output.xml """ from invenio.search_engine import search_pattern, get_fieldvalues from invenio.bibrecord import record_add_field, record_xml_output from invenio.webuser import collect_user_info, get_uid_from_email # All records recids = search_pattern(p="0->Z", f="8560_f") print "<collection>" for recid in recids: # Get record information email = get_fieldvalues(recid, "8560_f")[0] if "<" in email: email = email.split()[-1][1:-1].strip() user_info = collect_user_info(get_uid_from_email(email)) name = user_info.get("external_fullname", user_info.get("nickname", "")) external_id = user_info.get("external_id", "") # Create correction for record rec = {} record_add_field(rec, "001", controlfield_value=str(recid)) record_add_field(rec, '856', ind1='0', subfields=[('f', email), ('y', name)]) print record_xml_output(rec) print "</collection>"
""" Generate MARC XML file for correcting MARC field 8560_ (submitter) Run as:: python fix_8560.py > output.xml bibupload -c output.xml """ from invenio.search_engine import search_pattern, get_fieldvalues from invenio.bibrecord import record_add_field, record_xml_output from invenio.webuser import collect_user_info, get_uid_from_email # All records recids = search_pattern(p="0->Z", f="8560_f") print "<collection>" for recid in recids: # Get record information email = get_fieldvalues(recid, "8560_f")[0] if "<" in email: email = email.split()[-1][1:-1].strip() user_info = collect_user_info(get_uid_from_email(email)) name = user_info.get("external_fullname", user_info.get("nickname", "")) external_id = user_info.get("external_id", "") # Create correction for record rec = {} record_add_field(rec, "001", controlfield_value=str(recid)) record_add_field(rec, '856', ind1='0', subfields=[('f', email), ('y', name)]) print record_xml_output(rec) print "</collection>"
from invenio.bibformat_engine import format_record from invenio.bibtask import task_update_progress, write_message, task_sleep_now_if_required from invenio.intbitset import intbitset from invenio.webuser import collect_user_info, get_uid_from_email, get_email_from_username from invenio.search_engine import search_pattern, search_unit import redis import gzip import zlib ADMIN_USER_INFO = collect_user_info( get_uid_from_email(get_email_from_username('admin'))) CFG_OUTPUT_PATH = "/afs/cern.ch/project/inspire/PROD/var/tmp-shared/prodsync" class run_ro_on_slave_db: """ Force the usage of the slave DB in read-only mode """ def __enter__(self): from invenio import dbquery_config from invenio import dbquery self.old_host = dbquery_config.CFG_DATABASE_HOST dbquery_config.CFG_DATABASE_HOST = dbquery_config.CFG_DATABASE_SLAVE self.old_site_level = dbquery.CFG_ACCESS_CONTROL_LEVEL_SITE dbquery.CFG_ACCESS_CONTROL_LEVEL_SITE = 1
from invenio.dateutils import get_time_estimator from invenio.bibformat_engine import format_record from invenio.bibtask import task_update_progress, write_message, task_sleep_now_if_required from invenio.intbitset import intbitset from invenio.webuser import collect_user_info, get_uid_from_email, get_email_from_username import redis import gzip import zlib ADMIN_USER_INFO = collect_user_info(get_uid_from_email(get_email_from_username('admin'))) CFG_OUTPUT_PATH = "/afs/cern.ch/project/inspire/PROD/var/tmp-shared/prodsync" def bst_prodsync(method='afs'): """ Synchronize to either 'afs' or 'redis' """ if not CFG_REDIS_HOST_LABS: method = 'afs' write_message("Prodsync started using %s method" % method) now = datetime.datetime.now() future_lastrun = now.strftime('%Y-%m-%d %H:%M:%S') lastrun_path = os.path.join(CFG_TMPSHAREDDIR, 'prodsync_%s_lastrun.txt' % method)