コード例 #1
0
    def test_authenticated_user_passes(self):
        helpers.set_setting("dashboard_uuid", "test-uuid")
        self.client.login(username="******", password="******")

        response = self.client.get(reverse("transfer:transfer_index"))

        self.assertEqual(response.status_code, 200)
コード例 #2
0
ファイル: views.py プロジェクト: bavc/archivematica
def general(request):
    toggleableSettings = [
        {"dashboard_administration_atom_dip_enabled": "Hide AtoM DIP upload link"},
        {"dashboard_administration_contentdm_dip_enabled": "Hide CONTENTdm DIP upload link"},
        {"dashboard_administration_dspace_enabled": "Hide DSpace transfer type"},
    ]

    if request.method == "POST":
        for setting in toggleableSettings:
            name = setting.keys()[0]
            if request.POST.get(name) == "on":
                setting = True
            else:
                setting = False

            # settings indicate whether or not something is enabled so if we want
            # do disable it we do a boolean not
            setting = not setting

            helpers.set_setting(name, setting)

    form = ToggleSettingsForm(extra=toggleableSettings)

    hide_features = hidden_features()
    return render(request, "administration/general.html", locals())
コード例 #3
0
def general(request):
    toggleableSettings = [
        {
            'dashboard_administration_atom_dip_enabled':
            'Hide AtoM DIP upload link'
        },
        {
            'dashboard_administration_contentdm_dip_enabled':
            'Hide CONTENTdm DIP upload link'
        },
        {
            'dashboard_administration_dspace_enabled':
            'Hide DSpace transfer type'
        },
    ]

    if request.method == 'POST':
        for setting in toggleableSettings:
            name = setting.keys()[0]
            if request.POST.get(name) == 'on':
                setting = True
            else:
                setting = False

            # settings indicate whether or not something is enabled so if we want
            # do disable it we do a boolean not
            setting = not setting

            helpers.set_setting(name, setting)

    form = ToggleSettingsForm(extra=toggleableSettings)

    hide_features = hidden_features()
    return render(request, 'administration/general.html', locals())
コード例 #4
0
    def test_unauthenticated_user_is_sent_to_login_page(self):
        helpers.set_setting("dashboard_uuid", "test-uuid")

        response = self.client.get(reverse("main:main_index"))

        if not settings.CAS_AUTHENTICATION:
            self.assertRedirects(response, settings.LOGIN_URL)
コード例 #5
0
ファイル: views.py プロジェクト: grharry/archivematica
def home(request):
    # clean up user's session-specific data
    if 'user_temp_data_cleanup_ran' not in request.session:
        # create all transfer metadata sets created by user
        transfer_metadata_sets = models.TransferMetadataSet.objects.filter(
            createdbyuserid=1)

        # check each set to see if, and related data, should be deleted
        for set in transfer_metadata_sets:
            # delete transfer metadata set and field values if no corresponding transfer exists
            try:
                models.Transfer.objects.get(transfermetadatasetrow=set)
            except models.Transfer.DoesNotExist:
                for field_value in set.transfermetadatafieldvalue_set.iterator(
                ):
                    field_value.delete()
                set.delete()
        request.session['user_temp_data_cleanup_ran'] = True

    if 'first_login' in request.session and request.session['first_login']:
        request.session.first_login = False
        for feature_setting in helpers.feature_settings().values():
            helpers.set_setting(feature_setting, 'True')
        redirectUrl = reverse('components.transfer.views.grid')
    else:
        redirectUrl = reverse('components.transfer.views.grid')
    return redirect(redirectUrl)
コード例 #6
0
ファイル: install.py プロジェクト: thinkronize/archivematica
 def handle(self, *args, **options):
     setup_pipeline(options['org_name'], options['org_id'])
     create_super_user(options['username'], options['email'],
                       options['password'], options['api_key'])
     self.save_ss_settings(options)
     setup_pipeline_in_ss(use_default_config=True)
     helpers.set_setting('api_whitelist', options['whitelist'])
コード例 #7
0
    def test_unauthenticated_user_can_access_exempt_url(self):
        helpers.set_setting("dashboard_uuid", "test-uuid")

        with self.settings(LOGIN_EXEMPT_URLS=[r"^foobar"]):
            _load_exempt_urls()
            response = self.client.get("foobar")

        self.assertEqual(response.status_code, 404)
コード例 #8
0
def administration_api(request):
    if request.method == 'POST':
        whitelist = request.POST.get('whitelist', '')
        helpers.set_setting('api_whitelist', whitelist)
    else:
        whitelist = helpers.get_setting('api_whitelist', '127.0.0.1')

    return render(request, 'administration/api.html', locals())
コード例 #9
0
ファイル: views.py プロジェクト: andrewjbtw/archivematica
def home(request):
    if 'first_login' in request.session and request.session['first_login']:
        request.session.first_login = False
        for feature_setting in helpers.feature_settings().values():
            helpers.set_setting(feature_setting, 'True')
        redirectUrl = reverse('components.administration.views.administration')
    else:
        redirectUrl = reverse('components.transfer.views.grid')
    return HttpResponseRedirect(redirectUrl)
コード例 #10
0
def api(request):
    if request.method == "POST":
        whitelist = request.POST.get("whitelist", "")
        helpers.set_setting("api_whitelist", whitelist)
        messages.info(request, _("Saved."))
    else:
        whitelist = helpers.get_setting("api_whitelist", "")

    return render(request, "administration/api.html", locals())
コード例 #11
0
ファイル: views.py プロジェクト: UniTasLibrary/archivematica
def api(request):
    if request.method == 'POST':
        whitelist = request.POST.get('whitelist', '')
        helpers.set_setting('api_whitelist', whitelist)
        messages.info(request, _('Saved.'))
    else:
        whitelist = helpers.get_setting('api_whitelist', '')

    return render(request, 'administration/api.html', locals())
コード例 #12
0
ファイル: forms.py プロジェクト: grharry/archivematica
 def save(self, *args, **kwargs):
     """ Save each of the fields in the form to the Settings table. """
     for key in self.cleaned_data:
         # If it's one of the reverse_checkboxes, reverse the checkbox value
         if key in self.reverse_checkboxes:
             helpers.set_setting(key, not self.cleaned_data[key])
         # Otherwise, save the value
         else:
             helpers.set_setting(key, self.cleaned_data[key])
コード例 #13
0
ファイル: views.py プロジェクト: Zabrane/archivematica
def home(request):
    if 'first_login' in request.session and request.session['first_login']:
        request.session.first_login = False
        for feature_setting in helpers.feature_settings().values():
            helpers.set_setting(feature_setting, 'True')
        redirectUrl = reverse('components.administration.views.administration')
    else:
        redirectUrl = reverse('components.transfer.views.grid')
    return HttpResponseRedirect(redirectUrl)
コード例 #14
0
ファイル: views.py プロジェクト: bavc/archivematica
def api(request):
    if request.method == "POST":
        whitelist = request.POST.get("whitelist", "")
        helpers.set_setting("api_whitelist", whitelist)
    else:
        whitelist = helpers.get_setting("api_whitelist", "127.0.0.1")

    hide_features = hidden_features()
    return render(request, "administration/api.html", locals())
コード例 #15
0
 def test_load_datatable_state(self):
     """Test ability to load DataTable state"""
     helpers.set_setting("transfers_datatable_state", json.dumps(self.data))
     # Retrieve data from view
     response = self.client.get(reverse("backlog:load_state", args=["transfers"]))
     assert response.status_code == 200
     payload = json.loads(response.content.decode("utf8"))
     assert payload["time"] == 1586880124134
     assert payload["columns"][0]["visible"] is True
     assert payload["columns"][3]["visible"] is False
コード例 #16
0
ファイル: views.py プロジェクト: raulcesar/archivematica
def storagesetup(request):
    # Display the dashboard UUID on the storage service setup page
    dashboard_uuid = helpers.get_setting('dashboard_uuid', None)
    assert dashboard_uuid is not None
    # Prefill the storage service URL
    inital_data = {
        'storage_service_url':
        helpers.get_setting('storage_service_url', 'http://localhost:8000'),
        'storage_service_user':
        helpers.get_setting('storage_service_user', 'test'),
        'storage_service_apikey':
        helpers.get_setting('storage_service_apikey', None)
    }
    storage_form = StorageSettingsForm(request.POST or None,
                                       initial=inital_data)
    if storage_form.is_valid():
        # Set storage service URL
        storage_form.save()
        if "use_default" in request.POST:
            shared_path = helpers.get_server_config_value('sharedDirectory')
            # Post first user & API key
            user = User.objects.all()[0]
            api_key = ApiKey.objects.get(user=user)
            # Create pipeline, tell it to use default setup
            try:
                storage_service.create_pipeline(
                    create_default_locations=True,
                    shared_path=shared_path,
                    api_username=user.username,
                    api_key=api_key.key,
                )
            except Exception:
                messages.warning(
                    request,
                    'Error creating pipeline: is the storage server running? Please contact an administrator.'
                )
            else:
                # Add the storage service URL to the API whitelist
                ss_url = urlparse.urlparse(
                    helpers.get_setting('storage_service_url'))
                whitelist = helpers.get_setting('api_whitelist', '127.0.0.1')
                whitelist = '\n'.join([whitelist, ss_url.hostname])
                helpers.set_setting('api_whitelist', whitelist)
        else:
            # Storage service manually set up, just register Pipeline if
            # possible. Do not provide additional information about the shared
            # path, or API, as this is probably being set up in the storage
            # service manually.
            try:
                storage_service.create_pipeline()
            except Exception:
                pass
        return redirect('main.views.home')
    else:
        return render(request, 'installer/storagesetup.html', locals())
コード例 #17
0
ファイル: views.py プロジェクト: wynerst/archivematica
def save_state(request, table):
    """Save DataTable state JSON object as string in DashboardSettings.

    :param request: Django request.
    :param table: Name of table to store state for.
    :return: JSON success confirmation
    """
    setting_name = "{}_datatable_state".format(table)
    state = json.dumps(request.body)
    helpers.set_setting(setting_name, state)
    return helpers.json_response({"success": True})
コード例 #18
0
ファイル: test_api.py プロジェクト: helrond/archivematica
 def setUp(self):
     self.client = Client()
     self.client.login(username='******', password='******')
     helpers.set_setting('dashboard_uuid', 'test-uuid')
     settings.SHARED_DIRECTORY = tempfile.gettempdir()
     self.config_path = os.path.join(
         settings.SHARED_DIRECTORY,
         'sharedMicroServiceTasksConfigs/processingMCPConfigs/')
     if not os.path.exists(self.config_path):
         os.makedirs(self.config_path)
     install_builtin_config('default')
コード例 #19
0
def welcome(request):
    # This form will be only accessible when the database has no users
    if 0 < User.objects.count():
        return redirect('main.views.home')
    # Form
    if request.method == 'POST':

        # assign UUID to dashboard
        dashboard_uuid = str(uuid.uuid4())
        helpers.set_setting('dashboard_uuid', dashboard_uuid)

        # Update Archivematica version in DB
        archivematica_agent = Agent.objects.get(pk=1)
        archivematica_agent.identifiervalue = "Archivematica-" + version.get_version(
        )
        archivematica_agent.save()

        # create blank ATK DIP upload config
        config = ArchivistsToolkitConfig()
        config.save()

        # save organization PREMIS agent if supplied
        org_name = request.POST.get('org_name', '')
        org_identifier = request.POST.get('org_identifier', '')

        if org_name != '' or org_identifier != '':
            agent = Agent.objects.get(pk=2)
            agent.name = org_name
            agent.identifiertype = 'repository code'
            agent.identifiervalue = org_identifier
            agent.save()

        # Save user and set cookie to indicate this is the first login
        form = SuperUserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            api_key = ApiKey.objects.create(user=user)
            api_key.key = api_key.generate_key()
            api_key.save()
            user = authenticate(username=user.username,
                                password=form.cleaned_data['password1'])
            if user is not None:
                login(request, user)
                request.session['first_login'] = True
                return redirect('installer.views.fprconnect')
    else:
        form = SuperUserCreationForm()

    return render(request, 'installer/welcome.html', {
        'form': form,
    })
コード例 #20
0
ファイル: install.py プロジェクト: uofmsean/archivematica
    def handle(self, *args, **options):
        # Not needed in Django 1.9+.
        self.style.SUCCESS = termcolors.make_style(opts=("bold", ), fg="green")

        setup_pipeline(options["org_name"], options["org_id"],
                       options["site_url"])
        create_super_user(
            options["username"],
            options["email"],
            options["password"],
            options["api_key"],
        )
        self.save_ss_settings(options)
        setup_pipeline_in_ss(use_default_config=True)
        helpers.set_setting("api_whitelist", options["whitelist"])
        self.stdout.write(self.style.SUCCESS("Done!\n"))
コード例 #21
0
ファイル: steps.py プロジェクト: thinkronize/archivematica
def setup_pipeline(org_name, org_identifier):
    # Assign UUID to Dashboard
    dashboard_uuid = str(uuid.uuid4())
    helpers.set_setting('dashboard_uuid', dashboard_uuid)

    # Update Archivematica version in DB
    archivematica_agent = Agent.objects.get(pk=1)
    archivematica_agent.identifiervalue = "Archivematica-" + get_version()
    archivematica_agent.save()

    if org_name != '' or org_identifier != '':
        agent = get_agent()
        agent.name = org_name
        agent.identifiertype = 'repository code'
        agent.identifiervalue = org_identifier
        agent.save()
コード例 #22
0
ファイル: views.py プロジェクト: jooser/archivematica
def welcome(request):
    # This form will be only accessible when the database has no users
    if 0 < User.objects.count():
      return HttpResponseRedirect(reverse('main.views.home'))
    # Form
    if request.method == 'POST':
        
        # assign UUID to dashboard
        dashboard_uuid = uuid.uuid4().__str__()
        helpers.set_setting('dashboard_uuid', dashboard_uuid)
        
        # save organization PREMIS agent if supplied
        org_name       = request.POST.get('org_name', '')
        org_identifier = request.POST.get('org_identifier', '')

        if org_name != '' or org_identifier != '':
            agent = Agent.objects.get(pk=2)
            agent.name            = org_name
            agent.identifiertype  = 'repository code'
            agent.identifiervalue = org_identifier
            agent.save()

        # Save user and set cookie to indicate this is the first login
        form = SuperUserCreationForm(request.POST)
        if form.is_valid():
            user = form.save()
            api_key = ApiKey.objects.create(user=user)
            api_key.key = api_key.generate_key()
            api_key.save()
            user = authenticate(username=user.username, password=form.cleaned_data['password1'])
            if user is not None:
              login(request, user)
              request.session['first_login'] = True
              return HttpResponseRedirect(reverse('installer.views.fprconnect'))
    else:
        form = SuperUserCreationForm()

    return render(request, 'installer/welcome.html', {
        'form': form,
      })
コード例 #23
0
ファイル: steps.py プロジェクト: uofmsean/archivematica
def setup_pipeline(org_name, org_identifier, site_url):
    dashboard_uuid = helpers.get_setting("dashboard_uuid")
    # Setup pipeline only if dashboard_uuid doesn't already exists
    if dashboard_uuid:
        return

    # Assign UUID to Dashboard
    dashboard_uuid = str(uuid.uuid4())
    helpers.set_setting("dashboard_uuid", dashboard_uuid)

    # Update Archivematica version in DB
    set_agent_code("Archivematica-" + get_version(), pk=1)

    if org_name != "" or org_identifier != "":
        agent = get_agent()
        agent.name = org_name
        agent.identifiertype = "repository code"
        agent.identifiervalue = org_identifier
        agent.save()

    if site_url:
        helpers.set_setting("site_url", site_url)
コード例 #24
0
 def setUp(self):
     self.client = Client()
     self.client.login(username="******", password="******")
     helpers.set_setting("dashboard_uuid", "test-uuid")
     self.data = '{"time":1586880124134,"columns":[{"visible":true},{"visible":true},{"visible":true},{"visible":false},{"visible":false},{"visible":true},{"visible":false},{"visible":true}]}'
コード例 #25
0
    def test_unauthenticated_user_is_sent_to_login_page(self):
        helpers.set_setting("dashboard_uuid", "test-uuid")

        response = self.client.get(reverse(home))

        self.assertRedirects(response, settings.LOGIN_URL)
コード例 #26
0
 def setUp(self):
     helpers.set_setting('dashboard_uuid', 'test-uuid')
コード例 #27
0
 def setUp(self):
     self.client = Client()
     self.client.login(username='******', password='******')
     helpers.set_setting('dashboard_uuid', 'test-uuid')
コード例 #28
0
ファイル: forms.py プロジェクト: wynerst/archivematica
 def save(self, *args, **kwargs):
     """Save all the form fields to the DashboardSettings table."""
     for key in self.cleaned_data:
         # Save the value
         helpers.set_setting(key, self.cleaned_data[key])
コード例 #29
0
 def setUp(self):
     self.client.login(username="******", password="******")
     self.url = reverse(
         "components.administration.views_dip_upload.admin_atom")
     helpers.set_setting("dashboard_uuid", "test-uuid")
コード例 #30
0
ファイル: test_storage.py プロジェクト: wynerst/archivematica
 def setUp(self):
     self.client.login(username="******", password="******")
     self.url = "/administration/storage/"
     helpers.set_setting("dashboard_uuid", "test-uuid")
コード例 #31
0
 def setUp(self):
     self.client.login(username="******", password="******")
     helpers.set_setting("dashboard_uuid", "test-uuid")
コード例 #32
0
 def setUp(self):
     user = User.objects.create_superuser("demo", "*****@*****.**",
                                          "demo")
     self.client.login(username=user.username, password="******")
     helpers.set_setting("dashboard_uuid", "test-uuid")
コード例 #33
0
 def setUp(self):
     helpers.set_setting("dashboard_uuid", "test-uuid")
コード例 #34
0
def dashboard_login_and_setup(client, django_user_model, username, password):
    django_user_model.objects.create_user(username=username, password=password)
    client.login(username=username, password=password)
    helpers.set_setting("dashboard_uuid", "test-uuid")