{22} Trac tickets (2647 matches)
Results (1801 - 1900 of 2647)
Id | Type | Owner | Reporter | Milestone | Status | Resolution | Summary | Description | Posixtime | Modifiedtime | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#1566 | enhancement | David Raznik | jilly mathews | ckan-v1.7 | closed | fixed | [super] Finalize Google analytics extension | 1324293168000000 | 1338203338000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1567 | enhancement | David Raznik | jilly mathews | ckan-future | new | Finish QA extension |
Requires change to celeryd. Estimated 4 weeks. |
1324293599000000 | 1324293599000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1568 | enhancement | David Raznik | jilly mathews | ckan-future | closed | duplicate | Moderated Edits |
Can this be released as a standard CKAN feature? |
1324293776000000 | 1325267998000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1569 | enhancement | David Raznik | jilly mathews | ckan-future | new | Wordpressser |
How much effort will this be to be ready to use? |
1324294056000000 | 1324294056000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1570 | enhancement | David Raznik | jilly mathews | ckan-future | closed | invalid | Integrated file Storage |
Is this ready for release? What needs to be done? |
1324294142000000 | 1324314741000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1571 | enhancement | rgrp | jilly mathews | ckan-backlog | assigned | [super] Issues Extension |
"Proper" issues extension. Overview
Steps
|
1324294225000000 | 1330863183000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1572 | enhancement | David Raznik | jilly mathews | ckan-future | new | Meta data Harvester |
Need to write custom harvesters for each client. Is it worth having one for data hub? |
1324294509000000 | 1324294509000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1573 | enhancement | David Raznik | jilly mathews | ckan-future | new | Apps and Ideas |
Estimate 2 weeks for someone to finish and test. |
1324294593000000 | 1324294593000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#993 | defect | thejimmyg | jason.kitcat@… | ckan-v1.4-sprint-2 | closed | fixed | Link on ckan.net footer needs changing |
The link for About > 'Project Home Page' on the CKAN.net footer should be changed to point to: The current link is broken. Thanks, Jason |
1298154006000000 | 1298373114000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1453 | enhancement | icmurray | icmurray | ckan-sprint-2011-12-05 | closed | fixed | Flexible tag names |
Allowing more flexible tag names:
Effects:
|
1320771850000000 | 1329395697000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1523 | enhancement | icmurray | icmurray | closed | invalid | [super] |
Form refactor. New create/edit package form wizard for DGU. See attached spec. |
1323172661000000 | 1323172904000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1525 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | fixed | [super] DGU package form refactor |
Form refactor. New create/edit package form wizard for DGU. Etherpad: http://ckan.okfnpad.org/dgu-package-form Tasks:
How the rest of the work is carried out is up for discussion, as it depends on the approach taken. Whether to continue with validation using AJAX queries, or whether to break the form down into multi pages. Google doc outlining design(s) |
1323172839000000 | 1337159836000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1526 | enhancement | icmurray | icmurray | ckan-sprint-2012-03-05 | closed | fixed | [super] Update and test existing DGU package form |
Re-create behaviour of old form without using form-alchemy. And unit test.
|
1323173313000000 | 1330942383000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1527 | enhancement | icmurray | icmurray | ckan-sprint-2012-01-23 | closed | fixed | Break DGU package edit form into sections |
|
1323174829000000 | 1327589456000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1537 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | fixed | Package create form wizard |
Create the form wizard for the package-new form. Each section of the form will be a separate page as this was decided to be simpler than the alternative of making AJAX calls for validation at each stage. (*)
(*) - although the javascript alternative will probably provide better UX (each step would require a page-load in the wizard approach), it was decided that:
|
1323358451000000 | 1337159772000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1538 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | wontfix | Store partially-filled in package form data as a draft. |
Allow a user to save a partially-complete and probably invalid package-create form in order to come back to it later. We decided on blob storage over a state field on the package:
|
1323359221000000 | 1337159799000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1539 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | wontfix | Package forms auto-save |
Using the saved-draft feature, we enable auto-save for the package-new and package-edit forms. An AJAX call is made every N seconds, and the auto-saved blob is updated. note - we don't want to overwrite a previously save draft, but we will want to overwrite the last autosave. |
1323359385000000 | 1337159806000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1541 | task | icmurray | icmurray | ckan-sprint-2012-01-23 | closed | fixed | Setup server for the DGU form-refactor. |
To enable us to show DGU work in progress, for feedback. |
1323359484000000 | 1327311698000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1617 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | fixed | Update and test existing DGU package form : publisher / foi information |
[Child of #1526] Contact/FOI information is derived from Publisher/User?, but can be altered for each dataset.
|
1326103384000000 | 1332151332000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1618 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | fixed | Update and test existing DGU package form : provide stubs for the theme and sub-themes |
[Child of #1526] Provide the interface for the themes and subthemes hierarchy. |
1326103557000000 | 1332151341000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1619 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | fixed | Update and test existing DGU package form : provide stubs for the publisher hierarchy |
[Child of #1526] Create the interface used to retrieve publisher and authz information from the publisher hierarchy. |
1326103672000000 | 1332151351000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1620 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-06 | closed | fixed | Update and test existing DGU package form : don't allow package-type selection when editing a package |
[Child of #1526] Can't change a dataset from containing time-series resources to one containing individual resources or visa-versa. |
1326103837000000 | 1327589576000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1645 | enhancement | icmurray | icmurray | ckan-sprint-2012-01-23 | closed | fixed | Update and test existing DGU package form : Apply a simple theme |
Theme the DGU form. Doesn't need to be an exact replica of DGU, but just enough to show it's possible. |
1326394622000000 | 1327311679000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1711 | enhancement | icmurray | icmurray | ckan-sprint-2012-03-19 | closed | fixed | Resource validation page |
Analysis and further description on etherpad: http://ckan.okfnpad.org/dgu-package-form? [Section I] |
1327589759000000 | 1332151557000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1712 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-06 | closed | fixed | DGU /data page |
CKAN provides the /data page page of data.gov.uk Breakdown of tasks:
|
1327590527000000 | 1329733846000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1713 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-06 | closed | fixed | DGU dataset search page |
Search results page of DGU. Breakdown:
|
1327590700000000 | 1327932401000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1714 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-06 | closed | fixed | DGU dataset view page |
Dataset read page for DGU Breakdown:
|
1327591090000000 | 1329734018000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1751 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-20 | closed | fixed | DGU dataset form: collection of updates from feedback |
A collection of improvements to the dataset creation/edition form (feedback form DGU).
|
1328526612000000 | 1329733458000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1752 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-20 | closed | fixed | DGU: collection of updates from feedback |
|
1328526750000000 | 1329733515000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1768 | enhancement | icmurray | icmurray | ckan-v1.7 | closed | fixed | DGU: 7a. Public Publisher Dashboard (including QA Work and notifications) MUST PHASE 1 | 1328539740000000 | 1337159873000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1769 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-06 | closed | fixed | 6. Publisher Registration Improvements MUST PHASE 1 | 1328539789000000 | 1329737597000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1770 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-06 | closed | wontfix | 3. Themes/Taxonomy as well as tags WONT PHASE 2 | 1328539834000000 | 1329733935000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1771 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-20 | closed | fixed | 32. Browse by Tags PHASE 1 MUST | 1328539862000000 | 1329733648000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1772 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-06 | closed | fixed | 13. Provider labelling MUST PHASE 1 [UKLP #14 MUST] | 1328539902000000 | 1329733962000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1773 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-20 | closed | fixed | 17. Filter “UK Location Records” MUST PHASE 1 [UKLP #21 SHOULD] | 1328540130000000 | 1329733534000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1774 | enhancement | icmurray | icmurray | ckan-sprint-2012-02-20 | closed | fixed | 22. Mixed Licenses MUST PHASE 2 | 1328540153000000 | 1329733550000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2277 | refactor | icmurray | icmurray | ckan-backlog | new | Use the new atom feeds in IATI |
Atom feeds have been implemented in core in #1593. The IATI-specific implementation can now be removed when IATI move to CKAN >= 1.6.1 |
1333386628000000 | 1333386628000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2285 | enhancement | icmurray | icmurray | ckan-sprint-2012-04-30 | closed | fixed | Data Previewer / Viewer v3 : Embedding! - /resource/../embed |
Allow a user to embed the data viewer in their webpage.
Depends upon:
All the above, plus user stories are fleshed out in [1] |
1334230810000000 | 1335440451000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2295 | enhancement | icmurray | icmurray | ckan-sprint-2012-04-16 | closed | fixed | Migrate CKAN packaging and apt.ckan.org from dgu-buildbot |
|
1334566976000000 | 1334566986000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2296 | enhancement | icmurray | icmurray | ckan-sprint-2012-04-16 | closed | fixed | Initial analysis of moderated edits |
What needs doing, and how long will it take? |
1334567077000000 | 1334567150000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2297 | enhancement | icmurray | icmurray | ckan-sprint-2012-04-16 | closed | fixed | Initial analysis of follow support | 1334567223000000 | 1334569632000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2298 | enhancement | icmurray | icmurray | ckan-v1.9 | new | Add sort-by controls to the search results page |
Sort-by functionality was exposed through the package controller in [1]. But no controls were added to the search-page.
The above commit is in the release-1.6.1 branch, so this work is dependant upon release-1.6.1 from being merged into master. [1] https://github.com/okfn/ckan/commit/8685c6000d1cb211928b4dbc63990fb72d884f8c |
1334569162000000 | 1340635947000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2307 | enhancement | icmurray | icmurray | ckan-sprint-2012-04-30 | closed | fixed | Merge 1.6.1 into master |
There are a number of features developed against 1.6.1 that need to be merged into master. |
1334591402000000 | 1335440476000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2308 | enhancement | icmurray | icmurray | ckan-sprint-2012-04-30 | closed | fixed | Merge facet html snippets in the multi-lingual branch |
Seanh and icmurray both touched on the html snippets in facets.html. So there's a merge issue. icmurray to merge changes in the multi-lingual branch prior to merging into master. |
1334591529000000 | 1335440505000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2310 | enhancement | icmurray | icmurray | ckan-backlog | new | Refactor the search-query construction in feeds.py |
The feeds controller, used to construct atom feeds, duplicates code found in the package controller's search action (in order to construct the custom feed). Refactor this to remove duplication. |
1334592091000000 | 1337159386000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2313 | enhancement | icmurray | icmurray | ckan-v1.8 | closed | fixed | Deprecate old facet data structures and related functions. |
In branch feature-1821-multilingual-extension, a new faceting datastructure was introduced. This makes the old one and related functions obsolete. These have been marked as deprecated for the 1.7 release, and should be removed for the 1.8 release.
|
1334677916000000 | 1343124732000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2330 | enhancement | icmurray | icmurray | ckan-sprint-2012-05-15 | closed | fixed | Make api read-actions GETable |
Whitelist any GETable api actions, and optionally construct the query from url params rather than body. |
1335460585000000 | 1337073314000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2350 | enhancement | icmurray | icmurray | ckan-v1.9 | new | Hooks in package controller for validating form data |
When the validation schema was moved from the package controller into the logic layer, the schema's role was changed from that of processing a form and validating data; to just validating data. Whilst is makes sense to have a schema for validating data as it comes in and leaves the logic layer; there's no longer the hook available to PackageController? subclasses to do form validation/processing. Add a hook into _save_new() and save_edit() prior to the logic-layer call which subclasses can then override. NB - form processing/validation *is* different to validating data. For example, many data can be inferred from a user's input; or there may be aspects of the form that need to be filled in, but do not make sense to pass as data into the logic-layer, eg. agreeing to T&Cs.
|
1335881761000000 | 1340635966000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2351 | enhancement | icmurray | icmurray | ckan-ecportal | closed | fixed | Install EC Portal on CentOS |
Install and document (step-by-step) CKAN (and dependencies, and extensions) onto VM on s031.okserver.org which has CentOS 6.2 installed. Paying particular attention to the fact that we won't have root access on the staging nor production servers, and so a) anything that requires root access must be documented carefully; and b) we want to be able to perform maintenance without being root. MaintenanceWe want to have non-root access to:
CKAN and Dependencies
Extra configuration
Things to remember
|
1335883455000000 | 1340615641000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2383 | defect | icmurray | icmurray | ckan-sprint-2012-05-29 | closed | fixed | Date on add/edit resource breaks if offset is specified | 1337080275000000 | 1338197024000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2392 | enhancement | icmurray | icmurray | ckan-sprint-2012-05-29 | closed | fixed | Add language field to dataset |
An extra field on datasets called "metadata_language". The language that the meta-data is in. Drop-down list needs to be translatable. Default value is "English". |
1337159501000000 | 1337270483000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2393 | enhancement | icmurray | icmurray | ckan-sprint-2012-05-29 | closed | fixed | Map licenses with countryCode to license name without countryCode |
Map licenses: given http://creativecommons.org/licenses/by/2.5/{countrycode}/ as a license value through the API, convert it to http://www.opendefinition.org/licenses/cc-by . Should also work if given http://www.opendefinition.org/licenses/cc-by . NOTE: the API may send through a list of licenses; in this situation, take the head of the list. |
1337159564000000 | 1337270463000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2412 | defect | zephod | icmurray | ckan-sprint-2012-06-25 | assigned | More than one resource invalidatiing breaks dataset edit form |
When attempting to add more than one resource at once, if more than one resource invalidates, this results in a js error, leaving the form in an inconsistent state. Repro:
|
1337717148000000 | 1338203234000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2437 | task | icmurray | icmurray | ckan-v1.8 | closed | fixed | Add coding standards to CKAN docs |
|
1338196895000000 | 1343124799000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2438 | enhancement | icmurray | icmurray | ckan-v1.8 | closed | fixed | resource_search action not accessible via GET request |
This action is not currently usable via a GET request as it relies upon a nested dict of fields. |
1338197305000000 | 1341406005000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2439 | defect | icmurray | icmurray | ckan-v1.8 | closed | fixed | tag_search and tag_autocomplete not fully available via GET request |
tag_search and tag_autocomplete: The fields argument is not available when accessing this action with a GET request. |
1338197549000000 | 1341295142000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2499 | enhancement | toby | icmurray | ckan-v1.8 | new | Documentation for the internal analytics |
There's no docs for setting up the internal analytics, nor what it provides. SetupAdd: ckan.tracking_enabled = true to .ini file Run: paster tracking -c dev.ini Related links |
1339070297000000 | 1339070297000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2500 | defect | ross | icmurray | ckan-v1.8 | closed | fixed | get_action should raise an exception if the action requested doesn't exist |
Original bug report:
|
1339072580000000 | 1340293636000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2543 | enhancement | icmurray | ckan-v1.9 | new | facet.sort is not available in the package_search action |
Not all solr facet parameters are available through the pcakage_search action. In particular, facet.sort has been asked for; but this ticket should check to see if there are other parameters that would be easy to add too. See: http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort |
1340013335000000 | 1340633091000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2544 | enhancement | icmurray | ckan-future | closed | duplicate | facet.sort is not available in the package_search action |
Not all solr facet parameters are available through the pcakage_search action. In particular, facet.sort has been asked for; but this ticket should check to see if there are other parameters that would be easy to add too. See: http://wiki.apache.org/solr/SimpleFacetParameters#facet.sort |
1340013421000000 | 1340015580000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2573 | enhancement | icmurray | ckan-future | new | package_search does not allow solr's per-field facet parameters |
Solr allows its facet parameters to be specified on a per-field basis, eg. facet.limit applies to all facet fields, but solr allows it to be overriden for a specific field, eg. facet.tags.limit. We don't support this at the moment because we have a whitelist of valid solr query parameters that we accept. See ckan.lib.search.query.VALID_SOLR_PARAMETERS. |
1340112439000000 | 1340633101000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2603 | refactor | icmurray | icmurray | ckan-v1.9 | new | Remove deprecated 'fields' parameter from resource_search |
The fields parameter of resource_search was deprecated when fixing #2438. It can be removed in release 1.9, and the action tidied up as a result. |
1340730601000000 | 1340730601000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2621 | refactor | icmurray | icmurray | ckan-v1.9 | new | Remove the deprecated 'fields' parameter from tag_search and tag_autocomplete |
This was deprecated in 1.8 as it wasn't accessible via GET requests due to being a dict. See #2439 In a future release of CKAN (probably 1.9) it can be removed. Internal uses of it were removed in #2439, but there are tests that still use it. |
1340900569000000 | 1340900569000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2672 | enhancement | icmurray | icmurray | ckan-v1.8 | closed | fixed | Session.is_modified should use passive=True |
According to sqlalchemy docs [1], when calling Session.is_modified(), the passive argument needs to be passed in as True. [1] http://docs.sqlalchemy.org/en/rel_0_7/orm/session.html?highlight=is_modified#sqlalchemy.orm.session.Session.is_modified |
1342185523000000 | 1343124666000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2679 | enhancement | icmurray | icmurray | ckan-v1.9 | new | Change default behaviour of TemplateController.view to 404. |
The current behaviour of TemplateController?.view() (which is the fallback controller should all others fail) is to attempt to render (as a genshi template) the requested file. Although this may be a feature that some instances want. In general, it leads to:
Solution:
|
1342436133000000 | 1342436133000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2777 | enhancement | icmurray | new | bug: user attributes | 1343726363000000 | 1343726363000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2784 | defect | icmurray | icmurray | new | model dictize sensitive data |
The model dictize layer doesn't consistently remove sensitive data from the dictized models. It should use the current context to decide whether to include sensitive data or not. |
1343814685000000 | 1343814685000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2859 | defect | icmurray | icmurray | ckan-v1.8 | new | Fix the build |
The requires files have been removed. These were required by buildkit. We've lost the information regarding which packages were already in ubuntu repos, which conflicted and which were missing. But perhaps we can just package everything up. |
1345109217000000 | 1345109217000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2950 | requirement | icmurray | ckan 2.0 | closed | fixed | paster command to minify javascript and css |
With the latest template, css and js changes in 2.0, there are a number of things that need preparation prior to a production deployment. One of these is:
This ticket is to:
## Background Currently, minification works seamlessly without the need for any preparation when CKAN is started in a development setup. But on a production site, the webserver will (almost certainly) not have write-access to the directories that will contain the minified files. And so the minification will fail, and the site will end up serving the un-minified media, or even *old* minified media. One way around this would be to allow webserver write access to the directory its serving out of. But this is not generally considered good practice. Another method would be to distribute the minified files with CKAN. This ticket describes how to do this without causing a lot of noise in the commit history of the repo. The auto-minifcation occurs when importing ckan/lib/fanstatic_resources.py. ## Changing the process slightly The reason for moving away from auto-minifying files at start-up, to minifying files when running a paster command is:
|
1349118376000000 | 1349189654000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2951 | enhancement | icmurray | ckan 2.0 | new | Paster command for building css from less |
With the latest template, css and js changes in 2.0, there are a number of things that need preparation prior to a production deployment. One of these is:
This ticket is to provide a paster command which will compile the .less into the main.css file. The idea of the paster command is that it will be run by developers, and they will check in the resulting .css files. It will also provide a convenient mechanism for production scenarios with node.js installed on the production server, as they will be able to compile the .less there as well. ## Background The .css files that need to be served are built using less. The css files that are generated *are* checked-in to the repo; but they are a build artifact. So the general workflow is:
This paster command slots into the above workflow for convenience. ## Notes
to run this paster command, Node will be required. So that dependency should be checked. ## The paster command This is the proposed behaviour of the paster command:
|
1349118740000000 | 1349175030000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2952 | enhancement | seanh | icmurray | ckan 2.0 | new | incorporate javascriopt translations into translations workflow |
There are now javascript translations. There's a paster command, trans js. This is a ticket to ensure that using trans js is documented in the normal ckan translation workflow (which is followed after a feature freeze, prior to release). And to see if there's any need for further incorporation into the current translation process. |
1349118945000000 | 1349118945000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2959 | defect | icmurray | icmurray | ckan 2.0 | new | Changing a Group's name through the action api disassociates it from its datasets in the index |
Repro:
This was an issue when editing a Group through the web interface, which was fixed in [1]. However it only fixes the issue in the group controller. [1] https://github.com/okfn/ckan/commit/dbe25d8b8d7fabfc40c5d794a920b91cec349335 |
1349363935000000 | 1349363935000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#920 | defect | thejimmyg | hellmann@… | closed | fixed | empty tags are kind of confusing |
http://ckan.net/tag/linguistsic doesn't have a single entry, but is still kept and displayed. It should be purged !!! |
1295355280000000 | 1300319140000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#377 | enhancement | glen@… | ckan-future | closed | wontfix | API Should return JSON in all cases |
When the API returns any response it should always retunr JSON. For example a 404 response should return something like {'status': 404, 'message': 'package somename not found'} When errors are encountered when creating a package: {'status': nnn, 'message': 'Validation Errors', 'errors':['description':'name cannot be blank', 'description':'license code must be an integer']} Not authorised: {'status': 503, 'message': 'You are not authorised to create this package.'} The reason being that screeds of html coming back in the response just makes it harder to debug and understand. Having the proper error codes/messages means that you can see why your package was not created. |
1280268158000000 | 1338206349000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1312 | enhancement | dread | florian.marienfeld@… | ckan-sprint-2011-10-28 | closed | invalid | Particular characters in JSON cause exception creating package on API |
From Florian: I am having trouble with the characters "=&;". if they occur e.g. in the title of a package, I get a 400-Bad-Request when I try to register a package by POSTing to ckan/rest/api/package However, when I PUT the same package as an edit to ckan/rest/api/package/existing_package, it works and the title shows correctly on the front end and API. Reproduced(pyenv-ckan)dread@dread-laptop:~/hgroot/ckan$ curl -i http://localhost:5000/api/rest/package -d '{"name": "test3", "title": "Test &"}' -H "Authorization:tester" HTTP/1.0 400 Bad Request Server: PasteWSGIServer/0.5 Python/2.6.5 Date: Tue, 06 Sep 2011 14:09:31 GMT Pragma: no-cache Cache-Control: no-cache Content-Type: application/json;charset=utf-8 Content-Length: 87 "Bad request - JSON Error: Unterminated string starting at: line 1 column 27 (char 27)" |
1315318863000000 | 1315327743000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1401 | defect | rgrp | flofokus | ckan-sprint-2012-01-23 | closed | fixed | Some links don't take account when CKAN is mounted at a non-root URL |
if you want your ckan to reside not at http://yourhost.org/ but rather e.g. at http://yourhost.org/ckan/ you can use this hint http://wiki.pylonshq.com/display/pylonsdocs/Configuration+Files and set ckan.site_url accordingly in your .ini. However, there are some instances where internal links are created without the required prefix. |
1318621586000000 | 1328001014000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1175 | defect | dread | fccoelho@… | closed | invalid | Stats extension not working |
Hi, I get a 500, Internal server error when I enable ckanext-stats. Flavio |
1307350823000000 | 1325355170000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#881 | defect | thejimmyg | fccoelho | closed | invalid | http authentication requirement when installing |
I am having trouble installing Ckan with virtualenv and pip using pip-requirements.txt due to the Authentication requirements to download the source code. |
1293021889000000 | 1296335072000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1177 | defect | fccoelho | closed | fixed | routes.util.GenerationException |
I have done a recent update to mu ckan install, and I am now getting this error for all my packages: URL: http://ckan.emap.fgv.br/package/dengue-net Module weberror.errormiddleware:162 in __call__ << __traceback_supplement__ = Supplement, self, environ sr_checker = ResponseStartChecker(start_response) app_iter = self.application(environ, sr_checker) return self.make_catching_iter(app_iter, environ, sr_checker) except: >> app_iter = self.application(environ, sr_checker) Module beaker.middleware:73 in __call__ << self.cache_manager) environ[self.environ_key] = self.cache_manager return self.app(environ, start_response) >> return self.app(environ, start_response) Module beaker.middleware:152 in __call__ << headers.append(('Set-cookie', cookie)) return start_response(status, headers, exc_info) return self.wrap_app(environ, session_start_response) def _get_session(self): >> return self.wrap_app(environ, session_start_response) Module routes.middleware:130 in __call__ << environ['SCRIPT_NAME'] = environ['SCRIPT_NAME'][:-1] response = self.app(environ, start_response) # Wrapped in try as in rare cases the attribute will be gone already >> response = self.app(environ, start_response) Module pylons.wsgiapp:125 in __call__ << controller = self.resolve(environ, start_response) response = self.dispatch(controller, environ, start_response) if 'paste.testing_variables' in environ and hasattr(response, >> response = self.dispatch(controller, environ, start_response) Module pylons.wsgiapp:324 in dispatch << if log_debug: log.debug("Calling controller class with WSGI interface") return controller(environ, start_response) def load_test_env(self, environ): >> return controller(environ, start_response) Module ckan.lib.base:118 in __call__ << # available in environ['pylons.routes_dict'] try: return WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() >> return WSGIController.__call__(self, environ, start_response) Module pylons.controllers.core:221 in __call__ << return response(environ, self.start_response) response = self._dispatch_call() if not start_response_called: self.start_response = start_response >> response = self._dispatch_call() Module pylons.controllers.core:172 in _dispatch_call << req.environ['pylons.action_method'] = func response = self._inspect_call(func) else: if log_debug: >> response = self._inspect_call(func) Module pylons.controllers.core:107 in _inspect_call << func.__name__, args) try: result = self._perform_call(func, args) except HTTPException, httpe: if log_debug: >> result = self._perform_call(func, args) Module pylons.controllers.core:60 in _perform_call << """Hide the traceback for everything above this method""" __traceback_hide__ = 'before_and_this' return func(**args) def _inspect_call(self, func): >> return func(**args) Module ?:2 in read Module ckan.lib.cache:167 in wrapper << log = __import__("logging").getLogger("proxy_cache") def wrapper(func, *args, **kwargs): result = func(*args, **kwargs) pylons = get_pylons(args) >> result = func(*args, **kwargs) Module ckan.controllers.package:208 in read << #render the package PackageSaver().render_package(c.pkg) return render('package/read.html') def comments(self, id): >> return render('package/read.html') Module ckan.lib.base:74 in render << return cached_template(template_name, render_template, cache_key=cache_key, cache_type=cache_type, cache_expire=cache_expire) #, ns_options=('method'), method=method) >> cache_type=cache_type, cache_expire=cache_expire) Module pylons.templating:249 in cached_template << return content else: return render_func() >> return render_func() Module ckan.lib.base:63 in render_template << stream = item.filter(stream) return literal(stream.render(method=method, encoding=None)) if 'Pragma' in response.headers: >> return literal(stream.render(method=method, encoding=None)) Module genshi.core:183 in render << method = self.serializer or 'xml' generator = self.serialize(method=method, **kwargs) return encode(generator, method=method, encoding=encoding, out=out) def select(self, path, namespaces=None, variables=None): >> return encode(generator, method=method, encoding=encoding, out=out) Module genshi.output:57 in encode << _encode = lambda string: string if out is None: return _encode(''.join(list(iterator))) for chunk in iterator: out.write(_encode(chunk)) >> return _encode(''.join(list(iterator))) Module genshi.output:339 in __call__ << for filter_ in self.filters: stream = filter_(stream) for kind, data, pos in stream: cached = cache_get((kind, data)) if cached is not None: >> for kind, data, pos in stream: Module genshi.output:670 in __call__ << _gen_prefix = _gen_prefix().next for kind, data, pos in stream: output = cache_get((kind, data)) if output is not None: >> for kind, data, pos in stream: Module genshi.output:771 in __call__ << push_text = textbuf.append pop_text = textbuf.pop for kind, data, pos in chain(stream, [(None, None, None)]): if kind is TEXT: >> for kind, data, pos in chain(stream, [(None, None, None)]): Module genshi.output:586 in __call__ << def __call__(self, stream): prev = (None, None, None) for ev in stream: if prev[0] is START: if ev[0] is END: >> for ev in stream: Module genshi.core:288 in _ensure << # unchanged yield event for event in stream: yield event >> for event in stream: Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:618 in _include << tmpl = self.loader.load(href, relative_to=event[2][0], cls=cls or self.__class__) for event in tmpl.generate(ctxt, **vars): yield event except TemplateNotFound: >> for event in tmpl.generate(ctxt, **vars): Module genshi.template.base:605 in _include << from genshi.template.loader import TemplateNotFound for event in stream: if event[0] is INCLUDE: href, cls, fallback = event[1] >> for event in stream: Module genshi.template.markup:378 in _match << for event in self._match(self._flatten(template, ctxt, **vars), ctxt, start=idx + 1, **vars): yield event >> ctxt, start=idx + 1, **vars): Module genshi.template.markup:327 in _match << break for event in stream: # We (currently) only care about start and end events for matching >> for event in stream: Module genshi.template.base:565 in _flatten << elif kind is EXPR: result = _eval_expr(data, ctxt, vars) if result is not None: # First check for a string, otherwise the iterable test >> result = _eval_expr(data, ctxt, vars) Module genshi.template.base:277 in _eval_expr << if vars: ctxt.push(vars) retval = expr.evaluate(ctxt) if vars: ctxt.pop() >> retval = expr.evaluate(ctxt) Module genshi.template.eval:178 in evaluate << __traceback_hide__ = 'before_and_this' _globals = self._globals(data) return eval(self.code, _globals, {'__data__': data}) >> return eval(self.code, _globals, {'__data__': data}) Module ?:16 in <Expression u"h.subnav_link(c, h.icon('comments') + _('Comments & Questions'), controller='package', action='comments', id=c.pkg.name)"> << </li> <li py:if="g.has_commenting"> ${h.subnav_link(c, h.icon('comments') + _('Comments & Questions'), controller='package', action='comments', id=c.pkg.name)} </li> <li>${h.subnav_link(c, h.icon('page_white_stack') + _('History'), controller='package', action='history', id=c.pkg.name)}</li> >> ${h.subnav_link(c, h.icon('comments') + _('Comments & Questions'), controller='package', action='comments', id=c.pkg.name)} Module ckan.lib.helpers:126 in subnav_link << return link_to( text, url_for(action=action, **kwargs), class_=('active' if c.action == action else '') ) >> url_for(action=action, **kwargs), Module routes.util:280 in url_for << raise GenerationException( "url_for could not generate URL. Called with args: %s %s" % \ (args, kargs)) return url >> (args, kargs)) GenerationException: url_for could not generate URL. Called with args: () {'action': 'comments', 'controller': 'package', 'id': 'dengue-net'} CGI Variables AUTH_TYPE 'cookie' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip, deflate' HTTP_ACCEPT_LANGUAGE 'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3' HTTP_CONNECTION 'keep-alive' HTTP_COOKIE '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho"; ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; __utmc=4669863' HTTP_HOST 'ckan.emap.fgv.br' HTTP_KEEP_ALIVE '115' HTTP_REFERER 'http://ckan.emap.fgv.br/' HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1' PATH_INFO '/package/dengue-net' PATH_TRANSLATED '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/package/dengue-net' REMOTE_ADDR '10.250.48.110' REMOTE_PORT '47624' REMOTE_USER u'flavio' REMOTE_USER_DATA 'userid_type:unicode' REMOTE_USER_TOKENS [''] REQUEST_METHOD 'GET' REQUEST_URI '/package/dengue-net' SCRIPT_FILENAME '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py' SERVER_ADDR '10.252.2.60' SERVER_ADMIN '[no address given]' SERVER_NAME 'ckan.emap.fgv.br' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.2.16 (Debian) Server at ckan.emap.fgv.br Port 80</address>\n' SERVER_SOFTWARE 'Apache/2.2.16 (Debian)' WSGI Variables application <beaker.middleware.CacheMiddleware object at 0x7f051c802690> beaker.cache <beaker.cache.CacheManager object at 0x7f051c802750> beaker.get_session <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x7f051c8026d0>> beaker.session {'locale': u'pt_BR', '_accessed_time': 1307358102.6266389, '_creation_time': 1302605470.0245121} mod_wsgi.application_group 'dck093|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '80' mod_wsgi.process_group 'ckan' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (<SimpleCookie: SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259' __utma='4669863.1260802706.1295364409.1306935693.1306960483.86' __utmc='4669863' __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode' ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06' ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23' ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio'>, '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode";... __utmc=4669863') paste.registry <paste.registry.Registry object at 0x7f051d7e5710> paste.throw_errors True pylons.action_method <bound method PackageController.read of <ckan.controllers.package.PackageController object at 0x7f051d7e5b10>> pylons.controller <ckan.controllers.package.PackageController object at 0x7f051d7e5b10> pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons <pylons.util.PylonsContext object at 0x7f051d7e5a50> pylons.routes_dict {'action': u'read', 'controller': u'package', 'id': u'dengue-net'} repoze.who.identity <repoze.who identity (hidden, dict-like) at 139659946193344> repoze.who.logger <logging.Logger instance at 0x7f051c801128> repoze.who.plugins {'openid': <OpenIdIdentificationPlugin 139659931643152>, 'friendlyform': <FriendlyFormPlugin 139659929725584>, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': <ckan.lib.authenticator.UsernamePasswordAuthenticator object at 0x7f051c9e7610>, 'auth_tkt': <AuthTktCookiePlugin 139659931643280>, 'ckan.lib.authenticator:OpenIDAuthenticator': <ckan.lib.authenticator.OpenIDAuthenticator object at 0x7f051c9dcfd0>} routes.route <routes.route.Route object at 0x7f051c69fd50> routes.url <routes.util.URLGenerator object at 0x7f051d7e57d0> webob._parsed_cookies ({'ckan': 'd4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06', '__utmz': '4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', 'auth_tkt': 'c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode', 'ckan_display_name': 'Fl\xc3\xa1vio Code\xc3\xa7o Coelho', 'ckan_apikey': 'c139718d-918f-4a2b-b219-e33cb05cbe23', 'ckan_user': 'flavio', '__utma': '4669863.1260802706.1295364409.1306935693.1306960483.86', '__utmc': '4669863', 'SESS61faf7f7d2406929b2f9eb4cbfff17d2': 'a3306f5d1194cf0d8a51dbf7b42c1259'}, '__utma=4669863.1260802706.1295364409.1306935693.1306960483.86; __utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode"< wbr>; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!... __utmc=4669863') webob._parsed_query_vars (GET([]), '') webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper <built-in method file_wrapper of mod_wsgi.Adapter object at 0x7f051cc1ad50> wsgi.version (1, 1) wsgiorg.routing_args (<routes.util.URLGenerator object at 0x7f051d7e57d0>, {'action': u'read', 'controller': u'package', 'id': u'dengue-net'}) |
1307358586000000 | 1307374897000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1178 | defect | fccoelho | closed | fixed | Local storage issue with ckanext-storage |
I have followed the instruction for installation a configuration of ckanext-storage, but I am getting this error when I try to access the /storage/upload url: URL: http://ckan.emap.fgv.br/storage/upload Module weberror.errormiddleware:162 in call << traceback_supplement = Supplement, self, environ
Module beaker.middleware:73 in call << self.cache_manager)
Module beaker.middleware:152 in call << headers.append(('Set-cookie', cookie))
Module routes.middleware:130 in call << environSCRIPT_NAME? = environSCRIPT_NAME?[:-1]
Module pylons.wsgiapp:124 in call << return % paste.registry.restorer.get_request_id(environ)?
Module pylons.wsgiapp:263 in resolve << if self.log_debug:
Module ckan.config.environment:39 in find_controller << # Check to see if its a dotted name
Module pkg_resources:1954 in load << def load(self, require=True, env=None, installer=None):
Module ?:87 in <module> << class StorageAPIController(BaseController?):
Module ?:88 in StorageAPIController << class StorageAPIController(BaseController?):
Module ?:69 in get_ofs << continue
Module ofs.local.pairtreestore:26 in init << self.hashing_type = hashing_type
Module ofs.local.pairtreestore:30 in _open_store << def _open_store(self):
Module pairtree.pairtree_client:91 in init << self._decode = re.compile(r"\(..)", re.U)
Module pairtree.pairtree_client:264 in _init_store << self.uri_base = prefix
NotAPairtreeStoreException: CGI Variables AUTH_TYPE 'cookie' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip, deflate' HTTP_ACCEPT_LANGUAGE 'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3' HTTP_CONNECTION 'keep-alive' HTTP_COOKIE 'utma=4669863.1260802706.1295364409.1306935693.1306960483.86; utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho"; ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; utmc=4669863; hide_welcome_message=1' HTTP_HOST 'ckan.emap.fgv.br' HTTP_KEEP_ALIVE '115' HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1' PATH_INFO '/storage/upload' PATH_TRANSLATED '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/storage/upload' REMOTE_ADDR '10.250.48.110' REMOTE_PORT '57426' REMOTE_USER u'flavio' REMOTE_USER_DATA 'userid_type:unicode' REMOTE_USER_TOKENS [] REQUEST_METHOD 'GET' REQUEST_URI '/storage/upload' SCRIPT_FILENAME '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py' SERVER_ADDR '10.252.2.60' SERVER_ADMIN '[no address given]' SERVER_NAME 'ckan.emap.fgv.br' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.2.16 (Debian) Server at ckan.emap.fgv.br Port 80</address>\n' SERVER_SOFTWARE 'Apache/2.2.16 (Debian)' WSGI Variables application <beaker.middleware.CacheMiddleware? object at 0x7fc2999a6cd0> beaker.cache <beaker.cache.CacheManager? object at 0x7fc2999a6d90> beaker.get_session <bound method SessionMiddleware?._get_session of <beaker.middleware.SessionMiddleware? object at 0x7fc2999a6d10>> beaker.session {'locale': u'pt_BR', '_accessed_time': 1307373458.4790759, '_creation_time': 1302605470.0245121} mod_wsgi.application_group 'dck093|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script mod_wsgi.input_chunked '0' mod_wsgi.listener_host mod_wsgi.listener_port '80' mod_wsgi.process_group 'ckan' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (<SimpleCookie: SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259' __utma='4669863.1260802706.1295364409.1306935693.1306960483.86' __utmc='4669863' __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode' ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06' ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23' ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio' hide_welcome_message='1'>, 'utma=4669863.1260802706.1295364409.1306935693.1306960483.86; utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid _type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221fla...lcome_message=1') paste.registry <paste.registry.Registry object at 0x7fc299de4f50> paste.throw_errors True pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons <pylons.util.PylonsContext? object at 0x7fc299e27d50> pylons.routes_dict {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'} repoze.who.identity <repoze.who identity (hidden, dict-like) at 140473773131872> repoze.who.logger <logging.Logger instance at 0x7fc2999a3b48> repoze.who.plugins {'openid': <OpenIdIdentificationPlugin? 140473779397008>, 'friendlyform': <FriendlyFormPlugin? 140473777417040>, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': <ckan.lib.authenticator.UsernamePasswordAuthenticator? object at 0x7fc299b93a50>, 'auth_tkt': <AuthTktCookiePlugin? 140473779397136>, 'ckan.lib.authenticator:OpenIDAuthenticator': <ckan.lib.authenticator.OpenIDAuthenticator object at 0x7fc299b934d0>} routes.route <routes.route.Route object at 0x7fc299864090> routes.url <routes.util.URLGenerator object at 0x7fc299e27ed0> webob._parsed_query_vars (GET([]), ) webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper <built-in method file_wrapper of mod_wsgi.Adapter object at 0x7fc299dae4e0> wsgi.version (1, 1) wsgiorg.routing_args (<routes.util.URLGenerator object at 0x7fc299e27ed0>, {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'}) Reply Reply to all Forward Reply to all paste@localhost to fccoelho show details 10:17 (2 hours ago)
CGI Variables AUTH_TYPE 'cookie' DOCUMENT_ROOT '/etc/apache2/htdocs' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7' HTTP_ACCEPT_ENCODING 'gzip, deflate' HTTP_ACCEPT_LANGUAGE 'pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3' HTTP_CONNECTION 'keep-alive' HTTP_COOKIE 'utma=4669863.1260802706.1295364409.1306935693.1306960483.86; utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flaviouserid_type:unicode"; ckan_user="flavio"; ckan_display_name="Fl\xc3\xa1vio Code\xc3\xa7o Coelho"; ckan_apikey="c139718d-918f-4a2b-b219-e33cb05cbe23"; utmc=4669863; hide_welcome_message=1' HTTP_HOST 'ckan.emap.fgv.br' HTTP_KEEP_ALIVE '115' HTTP_USER_AGENT 'Mozilla/5.0 (X11; Linux x86_64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1' PATH_INFO '/storage/upload' PATH_TRANSLATED '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py/storage/upload' REMOTE_ADDR '10.250.48.110' REMOTE_PORT '57429' REMOTE_USER u'flavio' REMOTE_USER_DATA 'userid_type:unicode' REMOTE_USER_TOKENS [] REQUEST_METHOD 'GET' REQUEST_URI '/storage/upload' SCRIPT_FILENAME '/home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py' SERVER_ADDR '10.252.2.60' SERVER_ADMIN '[no address given]' SERVER_NAME 'ckan.emap.fgv.br' SERVER_PORT '80' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.2.16 (Debian) Server at ckan.emap.fgv.br Port 80</address>\n' SERVER_SOFTWARE 'Apache/2.2.16 (Debian)' WSGI Variables application <beaker.middleware.CacheMiddleware? object at 0x7fc2999a6cd0> beaker.cache <beaker.cache.CacheManager? object at 0x7fc2999a6d90> beaker.get_session <bound method SessionMiddleware?._get_session of <beaker.middleware.SessionMiddleware? object at 0x7fc2999a6d10>> beaker.session {'locale': u'pt_BR', '_accessed_time': 1307373466.085686, '_creation_time': 1302605470.0245121} mod_wsgi.application_group 'dck093|' mod_wsgi.callable_object 'application' mod_wsgi.handler_script mod_wsgi.input_chunked '0' mod_wsgi.listener_host mod_wsgi.listener_port '80' mod_wsgi.process_group 'ckan' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.script_reloading '1' mod_wsgi.version (3, 3) paste.cookies (<SimpleCookie: SESS61faf7f7d2406929b2f9eb4cbfff17d2='a3306f5d1194cf0d8a51dbf7b42c1259' __utma='4669863.1260802706.1295364409.1306935693.1306960483.86' __utmc='4669863' __utmz='4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid_type:unicode' ckan='d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06' ckan_apikey='c139718d-918f-4a2b-b219-e33cb05cbe23' ckan_display_name='Fl\xc3\xa1vio Code\xc3\xa7o Coelho' ckan_user='flavio' hide_welcome_message='1'>, 'utma=4669863.1260802706.1295364409.1306935693.1306960483.86; utmz=4669863.1295364409.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); SESS61faf7f7d2406929b2f9eb4cbfff17d2=a3306f5d1194cf0d8a51dbf7b42c1259; ckan=d4951177ef995d92f0f987d481bd9180aa0f89e4518921db9cd9b6ac75fdd3fab4a25d06; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221flavio!userid _type:unicode"; auth_tkt="c6c3c3e0b3fe7bb765356659992760b24da43221fla...lcome_message=1') paste.registry <paste.registry.Registry object at 0x7fc29a9da850> paste.throw_errors True pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'} pylons.pylons <pylons.util.PylonsContext? object at 0x7fc29a9ef950> pylons.routes_dict {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'} repoze.who.identity <repoze.who identity (hidden, dict-like) at 140473790084352> repoze.who.logger <logging.Logger instance at 0x7fc2999a3b48> repoze.who.plugins {'openid': <OpenIdIdentificationPlugin? 140473779397008>, 'friendlyform': <FriendlyFormPlugin? 140473777417040>, 'ckan.lib.authenticator:UsernamePasswordAuthenticator': <ckan.lib.authenticator.UsernamePasswordAuthenticator? object at 0x7fc299b93a50>, 'auth_tkt': <AuthTktCookiePlugin? 140473779397136>, 'ckan.lib.authenticator:OpenIDAuthenticator': <ckan.lib.authenticator.OpenIDAuthenticator object at 0x7fc299b934d0>} routes.route <routes.route.Route object at 0x7fc299864090> routes.url <routes.util.URLGenerator object at 0x7fc29a9efcd0> webob._parsed_query_vars (GET([]), ) webob.adhoc_attrs {'language': 'en-us'} wsgi process 'Multi process AND threads (?)' wsgi.file_wrapper <built-in method file_wrapper of mod_wsgi.Adapter object at 0x7fc29a9d7d50> wsgi.version (1, 1) wsgiorg.routing_args (<routes.util.URLGenerator object at 0x7fc29a9efcd0>, {'action': u'index', 'controller': u'ckanext.storage.controller:StorageController'}) |
1307373810000000 | 1308045351000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#109 | enhancement | rgrp | dread | closed | fixed | Tag search in the REST API |
Similar to ticket:108 but for tags: /api/search/tag?q For tags search is extremely simple since you can only search by name. Possible Extras
|
1251976297000000 | 1291829457000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#110 | enhancement | dread | dread | v0.10 | closed | fixed | Integrate groups into packages |
Follow up to ticket:105 (Groups). Cost: 1d |
1252315956000000 | 1252488660000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#111 | enhancement | rgrp | dread | v0.10 | closed | fixed | Create user object |
Object properties:
/account is being renamed to /user in the wui. |
1252315994000000 | 1252331626000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#112 | enhancement | rgrp | dread | v0.11 | closed | wontfix | Test db schema created via migration scripts |
'paster db upgrade' should result in the same database as 'paster db create' on a clean system. In particular, all tests should pass. Note: equivalent of paster db upgrade isn't being run from tests at the moment (we haven't been able to get this to work). |
1252316495000000 | 1265294069000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#113 | enhancement | dread | dread | v0.11 | closed | fixed | Simple script to test data migration on a production db |
Must not alter the db. Related to ticket:112. |
1252316523000000 | 1265294054000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#114 | enhancement | dread | dread | v0.10 | closed | fixed | Access Control - model |
Create in the model basic operation of Access Control. roles table name | context | action ----------------------- admin| package | edit admin| package | edit-permissions admin| package | read editor| package | update editor| package | read reader| package | read This data is set-up on db init and will have no interface. user-roles table: username | context_type | objectid | role rgrp | system | n/a | admin visitor | package | * | reader bob | package | geonames | admin visitor | package | geonames | editor visitor | package | geonames | reader john | group | ukgov | admin dread | group | ukgov | editor visitor | group | ukgov | reader This data will be added when someone is given permissions for the system, a package or a group. Pseudo code: class Package
class Group
def is_allowed(name, action, context=None): name: string - a username or IP for 'visitor'
|
1252494527000000 | 1253034529000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#115 | enhancement | dread | dread | v0.10 | closed | fixed | Access Control - wui constrained by model |
Based on a section of AccessControl design: Reading and writing to packages in the WUI and REST API are now dependent on the authz tables. |
1253034394000000 | 1253091426000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#116 | enhancement | dread | dread | v0.10 | closed | fixed | Access Control - edited in wui |
Based on a section of AccessControl design: WUI gives controls to user and administrator to change permissions on a package. |
1253034802000000 | 1253709460000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#117 | enhancement | dread | dread | v0.10 | closed | fixed | Access Control - group core functionality |
Based on a section of AccessControl design: Group reads and edits are controlled by access control. WUI and REST interfaces covered. |
1253271333000000 | 1254735855000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#118 | enhancement | dread | dread | v0.10 | closed | fixed | Use paginate in webhelpers |
Take out import of paginate in setup.py. Use paginate in webhelpers instead. Make changes to take account of any i/f changes. |
1253273657000000 | 1253784902000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#119 | enhancement | dread | dread | v0.10 | closed | fixed | Ensure non-active packages don't show up |
Ensure pending packages don't show up in search or browse cost: 4h |
1253529414000000 | 1253791147000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#120 | enhancement | dread | dread | v0.10 | closed | fixed | Security audit |
Look for all places where model is accessed and check authorization is checked. Document holes (and, as necessary, suggestions for fixes) as new tickets. Likely areas that need looking at:
Write holes are obviously much more significant to us than read holes. |
1253529427000000 | 1254406544000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#121 | enhancement | dread | dread | v0.10 | closed | fixed | Add 'Group' to main menu |
And associated page to browse group. |
1253694827000000 | 1253716782000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#122 | enhancement | dread | dread | v0.10 | closed | fixed | Add Group authz page | 1253694842000000 | 1253716757000000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#123 | enhancement | dread | dread | v0.10 | closed | fixed | Ability to edit Group in WUI |
Add Group editing page. If no permissions to change group can't edit group. Also cannot view edit page. Editable attributes: name, title, description No preview needed |
1253708041000000 | 1254321447000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#126 | enhancement | dread | dread | v0.10 | closed | fixed | Change package state in the WUI (delete and undelete) |
As a Package Admin I want to change the state of the package. In particular I wish to delete and undelete it. (NB: this is quite separate from "purging" objects which is the term we shall use for irrevocable removal of an object from the domain model).
Implementation Suggestions
|
1253789571000000 | 1254740244000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#127 | enhancement | dread | dread | v0.10 | closed | fixed | Minor form and UI improvements |
|
1253798659000000 | 1253868048000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#129 | enhancement | rgrp | dread | ckan-backlog | closed | invalid | Secure db access by channelling query generation through authz module |
Controllers and templates should not access db objects directly - they should do all access via authz module giving username. They are handed by a query that has already been filtered by the packages they are authorized to read. (Additional idea to be discussed: When they request a package object, they are handed an copy of the db object - disconnected from the database - so it the db object can't be changed.) A couple of tests can be reenabled when this is done: ckan.tests.functional.test_authz.TestUsage?.test_admin_list_deleted ckan.tests.functional.test_authz.TestUsage?.test_search_deleted |
1253886136000000 | 1267719162000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#131 | enhancement | dread | dread | v0.10 | closed | fixed | Groups REST interface |
Controlling Groups through a REST interface. |
1254307959000000 | 1254308115000000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#132 | defect | rgrp | dread | closed | fixed | Security hole - read package/group list (REST) |
Using REST interface you can list packages and groups without authorization being checked. Can be fixed using more advanced query to check authz. |
1254389493000000 | 1273254514000000 |