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)
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())
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())
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)
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)
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'])
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)
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())
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)
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())
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())
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])
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())
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
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())
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})
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')
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, })
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"))
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()
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, })
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)
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}]}'
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)
def setUp(self): helpers.set_setting('dashboard_uuid', 'test-uuid')
def setUp(self): self.client = Client() self.client.login(username='******', password='******') helpers.set_setting('dashboard_uuid', 'test-uuid')
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])
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")
def setUp(self): self.client.login(username="******", password="******") self.url = "/administration/storage/" helpers.set_setting("dashboard_uuid", "test-uuid")
def setUp(self): self.client.login(username="******", password="******") helpers.set_setting("dashboard_uuid", "test-uuid")
def setUp(self): user = User.objects.create_superuser("demo", "*****@*****.**", "demo") self.client.login(username=user.username, password="******") helpers.set_setting("dashboard_uuid", "test-uuid")
def setUp(self): helpers.set_setting("dashboard_uuid", "test-uuid")
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")