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)
Esempio n. 2
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])
Esempio n. 5
0
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>"
Esempio n. 6
0
"""
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>"
Esempio n. 7
0
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
Esempio n. 8
0
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)