{22} Trac tickets (2647 matches)

Results (1 - 100 of 2647)

1 2 3 4 5 6 7 8 9 10 11
Id Type Owner Reporter Milestone Status Resolution Summary Description Posixtime Modifiedtime
#2 enhancement somebody johnbywater milestone1 closed fixed Register as user on the service

As a

Visitor

I want to

Be able to register as a user on the service

So that

One can login and be an authenticated user and perform the actions that only authenticated users can perform

Notes

  • Registration involves the provisional of a minimal set of user details, namely:
    1. username (unique in lifetime of the service)
    2. fullname
    3. email
    4. password
1152549635000000 1152553157000000
#3 enhancement somebody johnbywater milestone1 closed fixed Login to the service

As a

Visitor

I want to

Login to the service

So that

I am now an authenticated user and may perform the actions that only authenticated users may perform

Notes

  • Login by providing username and password
  • Login screen should also include a link or information about registration
  • If username do not match (or the username does not exist) a login failure is noted and the visitor is re-presented with the login screen as well as information on how to register
1152549717000000 1152553322000000
#9 enhancement somebody johnbywater milestone1 closed fixed Register new package

As a

Authenticated User

I want to

Create/register a package

So that

The package will be listed in the system and visible to users

Notes

  • Full package registration process may be broken down into:
    1. Creating a package by provision of minimal attributes:
      1. name: unique and web-usable
      2. auto-generation of default values such as:
        1. date-registered (today's date)
        2. first owner (one owner should be created corresponding to the authenticated user performing this action)
      3. (?) auto-generate a default release
    2. updating the created package -> ../UseCase12
1152550171000000 1152555104000000
#26 enhancement somebody johnbywater closed duplicate A registered person creates their own tags for a package 1152551351000000 1152555283000000
#11 enhancement johnbywater johnbywater milestone16 closed fixed Delete package

As a

Authenticated user

I want to

Delete a package

So that

So that the package is no longer displayed for visitors of the site

Notes

  • The permissions for this action are the same as for updating the package details (see ticket:10)
  • When a package is deleted it is put in an inactive state and is invisible to users and vistors of the service. However its name remains reserved and it may be undeleted or purged by the service administrator
1152550328000000 1157371568000000
#1 enhancement somebody rgrp milestone1 closed fixed Visitor visits service

Title

Visitor visits service

As a

Visitor (general web user)

I want to

Visit the website of the service (frontpage)

So that

  • See the front page and discover information about the service
  • Perform various activities related to the service such as registering and finding packages, registering as a user and logging in
1152549417000000 1183636342000000
#10 enhancement johnbywater johnbywater milestone15 closed worksforme Update package

As a

Authenticated user

I want to

Update the attributes of a package and add/remove releases

So that

The package attributes are changed. Package attributes are:

  • A title
  • A description (short or long)
  • Date added
  • Project url
  • package license(s)
  • download url
  • A list of releases with their dates and a summary line
  • a list of owners (referencing authenticated users)

I would also like to be able to add comments

Notes

  • Only an authenticated user is one of owners of a package may update it
  • Any authenticated user may add comments (but visitors may not)
  • can break down into:
    • Update a package by changing simple package attributes (value: 8)
    • Update a package by adding or removing an owner (value: 5)
    • Update a package by adding or removing comments (value: 7)
1152550243000000 1183648150000000
#29 enhancement rgrp rgrp milestone16 closed fixed Improve installation process
  1. install documentation (currently source:trunk/INSTALL is empty)
  2. improve ckan-admin as necessary
  3. create default data (such as licenses)
1152553638000000 1183648166000000
#6 enhancement somebody johnbywater milestone1 closed fixed View a package

As a

Visitor

I want to

View the details of an individual package

So that

I know more about the package. Attributes available are detailed in updating a package (../UseCase12)

1152549960000000 1183648175000000
#36 enhancement rgrp rgrp v0.4 closed fixed Edit package page should support previews

When editing a package one would like to be able to preview one's changes before saving.

1177007112000000 1185470035000000
#35 defect rgrp rgrp v0.4 closed fixed IP Address for non-logged in users is always 127.0.0.1 when deployed behind a proxy (e.g. on ckan.net)

When IP address is used to identify non-logged in users (for example on create and editing of packages) it is always 127.0.0.1 when using a reverse proxy (standard deployment configuration on a production machine and used e.g. on http://www.ckan.net).

This could be corrected by using HTTP_X_FORWARDED_FOR when available.

1177006633000000 1185471537000000
#31 enhancement somebody rgrp closed wontfix Add a comment to a package

As a

Registered user

I want to

Add a comment to a package

Notes

  • The comment should be tagged with the username of the person making the comment
  • Should we allow comments per release as well as per package? No for the time being.
  • Comments will be 'flat' and not threaded (at least for the present)
  • Comments should be plain text and so html should be escaped (in the future we might look to use some kind of formatter such as markdown)
1157374505000000 1185472236000000
#30 enhancement zool rgrp v0.3 closed fixed Tags are added to a package by package owner

As A

Site User

I Want To

Create/Edit/Update/Delete? tags associated with my package

Notes

  • Tags are service-wide and not package specific
  • Tags should not allow spaces (but allow everything else e.g. ':')
  • web interface details
    • should provide a text box where users can add space separated tags (a la delicious).
    • tag creation should be seemless (so if a tag does not already tag exists it should automatically be created in the background)
    • would like to provide a list of relevant existing tags. For time being could just list all existing tags below entry box but in long run would like auto-updating/auto-suggesting listing a la delicious
1155905753000000 1185472559000000
#32 enhancement rgrp rgrp v0.3 closed fixed View a tag

As a

Visitor

I want to

View a tag's page which should list all packages associated with that tag (or link to a page containing that list).

Notes

  • The tags should have a nice primary url such as /tag/<tag-name> (could also use the plural i.e. /tag/<tag-name>)
1157375968000000 1185472746000000
#20 enhancement johnbywater johnbywater v0.3 closed fixed Purge a package

As A

Administrator

I want to

Purge a deleted package

Notes

  • this need only be possible via the admin interface
1152550910000000 1185473187000000
#5 enhancement johnbywater johnbywater v0.3 closed fixed Browse list of packages and select one to view

As a

Visitor

I want to

Browse a list of packages resulting from a search or browse request (see other use cases)

So that

I can select one of the packages to view in more detail (-> viewing an individual package ticket:6)

Notes

  • When browsing a list of packages you should be able to see summary information about the package such as title (though this may be shortened in order to conveniently fit the list
  • The list should be broken up into pages so that the number of packages per page should be kept to a reasonable number (<= 50). Response time should be kept reasonable
1152549884000000 1185473622000000
#37 enhancement rgrp rgrp v0.5 closed fixed Purge a Revision (i.e. purge all changes associated with that revision)

Spam entries have started to occur on ckan.net in the last few months. It would be useful to be able to purge these revisions -- that is permanently delete all changes to domain objects associated with those revision (one might also permanently delete that revision -- or alternatively simply mark it as purged).

In addition to providing this facility from the shell it would also be useful to be able to do this from the web interface (with associated restrictions on usage via an authorization controller of some sort).

1192650660000000 1199786536000000
#23 enhancement somebody johnbywater closed invalid Request new password (or a reminder) if old has been lost 1152551256000000 1199786799000000
#22 enhancement somebody johnbywater closed invalid Update person attributes 1152551014000000 1199787243000000
#18 enhancement somebody johnbywater closed invalid Purge a user (registered person) 1152550871000000 1199787607000000
#19 enhancement somebody rgrp closed invalid Undelete a user (registered person) 1152550881000000 1199787631000000
#41 task rgrp rgrp v0.5 closed fixed Upgrade to Latest Version of Pylons (0.9.6.*) and Deploy on Production Machine

Should do this sooner rather than later to avoid 'clear water' opening up and need to deploy then asap onto production machine to avoid 'clear water' between trunk and production (which then prevents pushing from trunk to production).

1199786854000000 1199787967000000
#33 enhancement rgrp rgrp v0.5 closed fixed List and search tags

As a

Visitor

I want to

View a list of the tags on the system and search for a tag by name

Notes

  • As for a search of packages should search for tags that contains a given search string (or could use a glob approach allowing wildcards).
1157375983000000 1199788094000000
#28 enhancement somebody johnbywater closed wontfix Provide a dump of all packages listed on the system in XML 1152551416000000 1200902911000000
#38 enhancement rgrp rgrp v0.5 closed fixed Make data available in machine-usable form

Currently all data is only available via the web interface which makes it difficult to obtain in bulk. Data should be provided in other more convenient, machine usable forms:

  • DB Dump
  • JSON for each package page (maybe Atom as well)
1194521614000000 1200903004000000
#40 defect rgrp rgrp v0.5 closed fixed Reserved html characters (such as &) in urls mean package does not render for read view

A url such as: http://someurl.com/xyz?x=1&VERSION=1.1&Service=WFS when set as url or download_url breaks the rendering of the package with an error like:

There was an error rendering the package: not well-formed (invalid token): line 1, column 181

Have checked that removing the & stuff makes the error go away so this looks like an issue with escaping urls when displaying them ...

1195565228000000 1200993319000000
#25 enhancement johnbywater johnbywater v0.6 closed fixed Autocompletion (and suggestion) of package tags when adding tags to a package

Notes

  • Currently have a text box where users can add space separated tags
  • Tags should auto-complete in a manner similar to delicious
  • would also be good to have a list of suggested tags. This could either be:
    • [simpler] a list below the tag box chosen by existing popularity or
    • [more complex] a list of suggestions that updates as you add tags (based again on popularity but 'filtered/reranked' to reflect choices so far).
    • For first attempt to should probably just go for the simpler option.
1152551313000000 1204131522000000
#42 enhancement rgrp rgrp v0.6 closed fixed In WUI where List of Items to Display is Large Results should be Paged

As A

Visitor

I Want To

View lists of items but not have too many on a page (as this leads to slow page loads and difficulty navigating the list). Where there are more items in the results of my action that can be fit on a single page the results should be 'paged' in some manner.

Details

Main place this issue arises:

  • List of tags
  • List of packages
  • Repository history (/revision)

Should probably have no more than 50 (or so) items on a page. Obvious solution is for actions that return lists to have some kind of pageno parameter and then use this in controller to select what to display.

1199787162000000 1204133257000000
#45 enhancement rgrp johnbywater v0.6 closed fixed Immunity to SQL injection attacks 1201110894000000 1204133342000000
#12 enhancement johnbywater johnbywater closed invalid Create a release associated with a package

As a

Authenticated user

I want to

Create a release associated with a package

So that

The package has a new release

Notes

  • Permissions are as for updating a package ticket:10
  • for details of release attributes see: updating a release ticket:14
1152550407000000 1204135071000000
#14 enhancement johnbywater johnbywater closed invalid Update a release

As a

Authenticated user

I want to

Update a release

So that

The release details are amended. Attributes of a release are:

  • name (may include '.' and '-'
  • nickname
  • date
  • description

Notes

  • permissions: as for updating a package (ticket:10)
1152550712000000 1204136163000000
#7 enhancement johnbywater johnbywater closed invalid View a release associated with a package

See Update a release (ticket 14) for more information on what should be shown.

1152550022000000 1204136209000000
#47 enhancement rgrp johnbywater v0.6 closed fixed Return OpenID signin pages that look and feel like normal pages 1201183920000000 1215543616000000
#27 enhancement johnbywater johnbywater v0.6 closed fixed Register/Update a package via a web-api

As A

User

I want To

Create/register and update a package via a web api.

1152551379000000 1215543933000000
#13 enhancement somebody rgrp closed invalid Delete a release 1152550611000000 1218545330000000
#44 enhancement johnbywater rgrp v0.7 closed fixed Provide RSS/Atom Feed of Repository History

As A

Visitor

I Want To

Get an RSS/Atom Feed of the Repository History to use in my feed reader (or elsewhere).

Details

  • Preference for Atom.
  • should just add parameter to /revision/list/ (or /revision/) to select atom format e.g. ?format=atom.
  • should have a 'days' attribute specifying number of days back to go e.g. &days=30

Cost

Low

1199788457000000 1223390660000000
#51 enhancement rgrp rgrp v0.7 closed fixed Upgrade CKAN to use sqlalchemy and vdm v0.2

Move CKAN codebase to use sqlalchemy (rather than sqlobject) along with vdm v0.2.

NB: the upgrade itself should not be too hard, the work will be in providing a satisfactory migration script to convert existing data on ckan.net service.

1220900438000000 1223908230000000
#39 enhancement johnbywater rgrp v0.7 closed fixed When listing packages show more information than just name.

When a package listing is shown (as on http://ckan.net/package/list) more information than just name should be shown. For example package titles should be shown as well as names (could also list tags and other stuff but simplest is just title).

Cost: 1

1194608920000000 1223908298000000
#4 enhancement somebody johnbywater v0.7 closed fixed Find a package

As a

Visitor

I want to

Locate packages that I am, or might be, interested in

So that

I know what packages exist and can read the information associated with those packages

Notes

Find a package by searching by (or some combination thereof):

  1. tag
  2. string contained in title or description
  3. license
1152549820000000 1223908381000000
#52 enhancement rgrp rgrp v0.7 closed invalid Paginated results sets should be customizable across domain objects
  1. Tag results could/should show number of associated packages
  2. Package results should show title (and be in list)
  3. Pagination should be able to be applied to other result sets than simply register listing (e.g. search results ...)
  4. Revisions should be listed in a table with full details
1223549648000000 1223908425000000
#55 enhancement rgrp rgrp v0.7 closed fixed Code to migrate data from v0.6 to v0.7 using dump and load

Associated to ticket:51 (upgrade CKAN to new vdm) and ticket:54 (dump/load) need to convert v0.6 data for v0.7.

Obvious way to do this is via alteration to data load method.

1223908240000000 1223909891000000
#54 enhancement johnbywater rgrp v0.7 closed fixed Support dump and load of CKAN data to JSON

As a

Sysadmin

I want to

Dump (serialize) CKAN data to a simple transport format (e.g. JSON) and be able to load it again.

Details

  • Already have simple db dump. However dumping to JSON has various advantages, particularly where changes to the data need to be made upon reloading (e.g. during a migration).
  • Dump should include *all* CKAN data (i.e. all the data in the CKAN db tables)
1223907883000000 1230211256000000
#57 enhancement rgrp rgrp v0.8 closed fixed Basic datapkg integration with CKAN

Using datapkg a user can:

  • list packages on CKAN
  • get info about package on CKAN
  • register and update a package on CKAN
1238750826000000 1239018717000000
#56 enhancement rgrp rgrp v0.8 closed fixed Show icons indicating package openness

As A

User or Visitor

I Want To

See simple icons (e.g. tick/cross) next to packages (in lists or on main page) indicating openness status of package.

So That

It is easy to see the openness status of a package.

Details

  • Suggested by Liz Turner
  • Openness = open license at present (no easy way to determine whether accessible)
  • Have separate tick for downloadability (i.e. existence of download url)
  • Could do more stuff in future (e.g. money where tag price- exists, etc etc)
1230211123000000 1239018857000000
#53 enhancement rgrp rgrp v0.8 closed fixed View Information about Package history (i.e. package revisions)

As A

Visitor/User?

I want to

View information about a package history, i.e. what revisions it has.

Details

  • History info should be available at package/history/pkg-name
  • Most basic info is just info from revision (when it occurred, author etc)
  • More sophisticated would be to have diff support to see differences between revisions
1223552139000000 1239133021000000
#58 enhancement rgrp rgrp v0.9 closed fixed Make bookmarklet to enable easy package registration on CKAN

Make bookmarklet to enable easy package registration on CKAN

Details

  1. This requires redoing web interface to allow 1-step package creation/editing (as opposed to name then everything else approach at the moment)
1239018517000000 1239974365000000
#63 defect rgrp rgrp v0.9 closed fixed Purge is broken after upgrade of vdm

Since we upgraded to new vdm (v0.4) which has built in purge support existing purge support looks to be broken. Should be reasonably easy to fix this.

Cost: 1h

1245148623000000 1245656000000000
#68 enhancement rgrp rgrp v0.9 closed fixed Show affected packages in revision list view

When listing revisions (at /revision/ or in atom feed) show affected packages. Minor but v. useful UI improvement.

Cost: 1h

1245656153000000 1245697554000000
#64 enhancement rgrp rgrp v0.10 closed fixed Switch to repoze.who for authentication

Switch to repoze.who + openid plugin for authentication from authkit.

Already did this in microfacts so should be fairly easy.

1245168853000000 1246127063000000
#65 enhancement rgrp rgrp v0.9 closed fixed Add version attribute to package

It is essential packages have a version attribute to assist in tracking releases etc (and to allow compatibility with other packaging systems e.g. distutils which is being used by datapkg).

cost: 2h

1245262864000000 1246434569000000
#60 enhancement rgrp rgrp v0.9 closed fixed Front page usability improvements
  1. List in sidebar 3 latest created/updated packages.
  1. Put package search box on front page (might also want to move some of front page content into an about page).
  1. Similarly might want package creation box on front page.
1239094266000000 1246434921000000
#69 enhancement rgrp rgrp v0.9 closed fixed Change to text-only license field and use external license repo

Switch from license domain object to a simple license field and use license list from new centralised license repo:

<http://knowledgeforge.net/okfn/licenses/>

  • This will require a migration

Cost: 4h (plus migration ...)

1245687449000000 1246437494000000
#24 enhancement somebody johnbywater v0.9 closed fixed View list of most recently registered or updated packages on front page 1152551291000000 1246441366000000
#70 enhancement rgrp rgrp v0.9 closed fixed Convert from py.test to nosetests

Cost: 1h

1246434753000000 1247827053000000
#86 enhancement rgrp rgrp closed fixed Support for stateful dict-like collections

Already support stateful list-like collections and should extend this to dict-like collections.

(This is prerequisite for implementing versioned "extra" (key/value) attributes on packages in CKAN and elsewhere).

1248430798000000 1249050202000000
#71 enhancement rgrp rgrp v0.10 closed fixed Upgrade to Pylons 0.9.7

Cost: 2h

1246435041000000 1250181211000000
#62 enhancement dread rgrp v0.10 closed fixed Change tags to contain any character (other than space)

Requires us to url encode the tag names when displaying them ...

1240585095000000 1250181376000000
#74 enhancement dread rgrp v0.10 closed fixed Add Is It Open links to package pages

On each package page in the openness field if the package is not open provide a link to is it open create enquiry page.

Details:

  • may want to add to the url a query parameter indicating which package this relates to e.g. ?ckan-package=...
  • http://isitopen.ckan.net/enquiry/create/?ckan-package=...
  • do we provide link even if package is open (e.g. so that people can make enquiries about e.g. adding open data/content buttons ...)

Cost: 0.5h

1247828218000000 1250182938000000
#94 enhancement dread rgrp v0.10 closed fixed Use sqlalchemy-migrate to handle db/model upgrades

Details of how to go about this here <http://www.rufuspollock.org/2009/07/27/sqlalchemy-migrate-with-pylons/>

Cost: 2h

1249134185000000 1250604808000000
#15 enhancement johnbywater johnbywater closed invalid Create a file

As a

Authenticated user

I want to

Create a file associated with a release

So that

The release has a new file associated with it

Notes

  • Permissions are as for package updating (see ticket:10)
  • file attributes are described in file updating: ticket:16)
    • there are no attributes that are required to be supplied to create a file
1152550770000000 1250619139000000
#8 enhancement johnbywater johnbywater closed invalid View file

As a

Visitor

I want to

View the files associated with a package.

Notes

  • See also ticket:16 (updating a file).
  • Files should either be listed on the same page as a release or there should be a link from the release page to a page listing all the files associated with the release. See also ticket:14 (update a release)

1152550057000000 1250619147000000
#16 enhancement johnbywater rgrp closed invalid Update a file

As a

Authenticated user

I want to

Update a file associated with a release

So that

The file attributes are changed. File attributes are:

  • (internal) id
  • description
  • source: (url usually)

Notes

  • Permissions are as for package updating
1152550796000000 1250619162000000
#17 enhancement johnbywater johnbywater closed invalid Delete a file

See ticket:16 (update a file)

1152550822000000 1250619180000000
#67 enhancement rgrp rgrp v0.10 closed fixed List all of a user's recent edits on their home page

Additional feature related to ticket:66.

cost: 2h

1245263731000000 1250785122000000
#66 enhancement rgrp rgrp v0.10 closed fixed Improve user account UI
  1. Link at top should say "Your Account" when you are logged in
    • when not logged in should say: "Log in via openid"
    • Open Id info on /account/ should move to /account/login/ or be deleted
    • Going to /account/ when not logged in should redirect to /account/login/
  1. When logged in the basic account index page should not give generic information but should reflect fact you are logged in by:
  • Saying something like: "You are logged in as: ..."
  • Showing your apikey or a link to apikey
  • Giving you a logout link

We can think of a bunch of other stuff that could go on their (recent edits, packages you own etc) but these will be separate tickets.

1245263685000000 1250785405000000
#91 enhancement dread rgrp v0.10 closed fixed Add author and maintainer attributes to package

Add the following attributes to package:

  • author, author_email
  • maintainer, maintainer_email

Gives us full compatibility to: http://docs.python.org/distutils/setupscript.html#additional-meta-data

Column ordering - should come after name, title, url, download_url.

1249049780000000 1250864156000000
#76 enhancement dread rgrp v0.10 closed fixed Convert to use formalchemy for all forms

Current form stuff is not very good (uses formencode). Switch to formalchemy would improve this, especially on validation.

As an extra we could utilize the formalchemy pylons admin interface (pretty much for free).

Cost: 12h

Details

  1. Replace htmlfill and formencode extract in controllers/templates with formalchemy
    1. Crude and simple
    2. Suppress unwanted fields (revision, state, all revisions) and sort out ordering to be similar to before.
    3. Sort out tag field with a special renderer
  2. Validation - testing definitely required.
  3. Fix up description and pretty css etc
1247829041000000 1251301765000000
#72 enhancement rgrp rgrp v0.10 closed fixed Integrate new logo

Integrate new logo from http://wiki.okfn.org/ckan/logo into site:

  • In title

Also can do favicon (separate ticket:48)

Cost: 1h

1246441021000000 1251451954000000
#95 enhancement rgrp rgrp closed fixed Add manifest support

Support for listing files (manifest) contained within a package.

Traditional manifests just list the files. Suggest in addition we have support for optional metadata in form of key, value pairs.

1249981842000000 1251454716000000
#111 enhancement rgrp dread v0.10 closed fixed Create user object

Object properties:

  • id (uuid)
  • apikey (uuid) -- migrated from the apikey table
  • name (username = openid)

/account is being renamed to /user in the wui.

1252315994000000 1252331626000000
#108 enhancement dread rgrp v0.10 closed fixed Package search in the REST API

Add package search facility in the rest api at /api/search

Queries can be provided as for the normal package search either by posting to that url or by performing a get with a query string.

E.g. .../api/search/package?q=xyz

Query parameters:

  • q is keyword string (searches name, title, tags by default)
    • split by words and ANDed
  • additional parameters for specific fields
  • qjson is alternative to q for Searching by specific fields (in addition to keyword string). Payload to json is a JSON-encoded dict which is a dictionary with a q field for free text (keywords) and additional key/value pairs for specific fields
    • if q and qjson specified ignore q and just process qjson value

Additional parameters in addition to query ("q" or "qjson") are:

  • limit
  • offset
  • fullinfo=0/1 - return full record for each result (default=0)
  • order_by=field_name
  • search_notes=0/1 (default 0) do we search notes field in a keyword search

Return value is json encoded dictionary with keys:

  • 'results': list of results
  • 'count': total number of results

Extras (for the future)

  • Prioritisation is not part of this ticket (requires fulltext support in DB or in external app such as Xapian)
1251915845000000 1252340511000000
#105 enhancement dread rgrp v0.10 closed fixed Package groups (view)

As a user I want to be able to create groups of packages.

This functionality is different from tags:

  • The ability to add a package to a given group is restricted whereas anyone can add a given tag to a package
  • Specifically groups have owners and only the owners can add a package to that group

Group properties

  • id (primarykey, uuid style)
  • name (restricted content - same rules as package)
  • title (no restrictions)
  • owners -- many:many with user object
  • description (markdown)
  • packages -- many:many with package object

Don't version groups for now.

Groups address in the WUI will be:

  • /group - browse list of groups (reuse list action)
  • /group/list - same thing for now
  • /group/<groupname> - display: group properties with links to packages. No links to user pages (yet).

Group editing and searching will be another ticket.

Cost: 3d

1251392282000000 1252488496000000
#110 enhancement dread dread v0.10 closed fixed Integrate groups into packages
  1. Package needs a groups property (backref Group.packages).
  2. Put groups in the search api.
  3. Display them on the package, but not editable. (Only editable from the group page.)

Follow up to ticket:105 (Groups).

Cost: 1d

1252315956000000 1252488660000000
#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

def is_allowed(name, action):

is_allowed(name, action, context=self)

class Group

def is_allowed(name, action):

is_allowed(name, action, context=self)

def is_allowed(name, action, context=None): name: string - a username or IP for 'visitor'

action: string - 'read', 'edit', 'delete', 'edit-permissions' context: object - a Group or a Package or None (which means system)

# look up user from name. # look up in user-roles table what roles this user has for this context. # for each roles, look up in roles table what actions are allowed. # return True if action is allowed, else False.

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
#93 enhancement rgrp rgrp v0.10 closed fixed Access control for packages

Should be able to limit ability to a user's ability to do things with packages (read, edit etc). This is a big ticket (it may required splitting) and full details are in separate wiki page: AccessControl.

Cost: 8d

1249055049000000 1253613274000000
#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
#43 enhancement rgrp rgrp v0.10 closed fixed Generic Attributes for Packages

As A

User

I Want To

Add arbitrary named attributes to packages (an attribute being a name, type, value triple).

Details

  • We will do this using a dedicated (versioned) table associated to Package
  • Do we allow multiple attributes of the same name?
    • For the present: No (since we will key by attribute name)
    • Could allow for single attribute but with multiple values using json list ...
  • What types do we allow or do we just rely on JSON to take care of this?

Questions (Original)

  • How complex is this to implement?
  • What would an arbitrary user be able to edit? Possibilities:
    1. 'create new attribute' and setting the value (so name and type would be chosen from predefined list).
    2. 'create', setting of name and value (but not type -- type already set in predefined list)
  • Could just use (machine) tags -- though this could be seen as a bit of a hack.
  • Would solve having to create special file/url attributes (though I think that perhaps file stuff is important enough to merit first class support in the domain model -- though, that said, since one won't want to have a file limit adding unlimited file support is very similar to unlimited attributes of arbitrary type).
1199788109000000 1253709802000000
#122 enhancement dread dread v0.10 closed fixed Add Group authz page 1253694842000000 1253716757000000
#121 enhancement dread dread v0.10 closed fixed Add 'Group' to main menu

And associated page to browse group.

1253694827000000 1253716782000000
#34 defect somebody zool closed worksforme Page Not Found - returns with 200 rather than 404 as it should 1163008961000000 1253781550000000
#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
#127 enhancement dread dread v0.10 closed fixed Minor form and UI improvements
  • group form: description field for needs to be a text area
  • group form: make title and name field wider
  • package view: need to move tags and license above notes
1253798659000000 1253868048000000
#131 enhancement dread dread v0.10 closed fixed Groups REST interface

Controlling Groups through a REST interface.

1254307959000000 1254308115000000
#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
#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:

  • search i/f
  • package WUI commit

Write holes are obviously much more significant to us than read holes.

1253529427000000 1254406544000000
#130 enhancement dread rgrp v0.10 closed fixed Create a New Group via the WUI

As a

User

I want to

Create a new group via the WUI

Details

  • locate at /group/new/
  • You must be logged in to create a group
  • Group creator is automatically given role of group admin
  • Edit screen is same as edit screen ...
1254130212000000 1254735501000000
#124 enhancement rgrp rgrp v1.0 closed fixed Display Generic Package Attributes in WUI

Split out from ticket:43

1253709702000000 1254735558000000
#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
#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).

  • Only Package Admins (and sysadmins) should be able to change state

Implementation Suggestions

  • 'delete' action should be renamed to 'change-state' (NB: this requires a db migration ...)
  • Have new package formalchemy form (created via inheritance?) to incorporate state attribute. Suggest this is rendered as a dropdown (and may be simple object rendering of state, i.e. do NOT need to change it to a single name such 'active').
  • This form should then be used when the user satisfies is_authorized(..., model.Action.CHANGE_STATE) instead of the usual fieldset
1253789571000000 1254740244000000
#137 enhancement rgrp dread closed duplicate User has editable home page
  • Generic text box for markdown about the user 'About'

Model's user table reflects these:

  • 'about' attribute
1254741703000000 1254741830000000
#141 task dread rgrp v0.11 closed fixed Search api docs

Write up search api documentation and put it in a template that shows up at api/search/.

Cost: 2h

1254903008000000 1255007583000000
#136 enhancement rgrp dread v0.11 closed fixed User has publicly viewable page

A user's 'home page' is at: user/<user.id> e.g. user/28394723982-03849472

Step 1:

  • Current user home page with recent edits

Step 2: Readonly

  • Number of edits
  • Number of Packages they are admin of

How do we do a nicer URL for the home page - can we use their openid login?

Follow on tickets: ticket:138 and ticket:142

1254741650000000 1255169466000000
#77 enhancement dread rgrp v0.11 closed fixed Rate packages

As a User or Visitor

I wish to rate a package in some way. On the package view, below Openness, there is a 'Rating' heading with the star rating which is selectable.

Rating out of 5. One user or IP, one vote.

package_rating table:

package | user | rating annakarenina | joe.bloggs.openid.com | 4 annakarenina | 154.2.5.47 | 1

1247829193000000 1255176732000000
#139 defect rgrp rgrp v0.11 closed worksforme Ensure you cannot add same tag twice to a package

Seems some package have ended up with same tag twice: http://www.ckan.net/package/fred2dot0

Check whether this is still possible and if it is fix it ...

Cost: 2h

1254768552000000 1255188974000000
#134 defect rgrp dread v0.11 closed fixed admin interface is only available to sysadmins 1254735314000000 1255430998000000
#147 enhancement dread dread v0.11 closed duplicate Parser and loader for esw.org data 1255440695000000 1255515162000000
#148 enhancement dread dread v0.11 closed fixed Parser and loader for esw.org data
  • parse like data4nr code

Follow up tickets: ticket:149 and ticket:150

1255440696000000 1255515222000000
#158 enhancement dread dread v0.11 closed fixed Add 'extras' to REST API
  • Ensure you can add/change/delete extra fields from packages using the REST API.
  • Update API docs to cover this.

On Package get, ensure separation of extra attributes from other attributes.

What is the meaning of posting an incomplete dictionary (updating a package)? Option 1 - if field not present, leave field alone

  • Delete field if field value is None

Option 2 - user must supply all fields

  • Delete field if field absent

Prefer option 1. Document this.

Follows on from ticket:152

1255703259000000 1255949818000000
1 2 3 4 5 6 7 8 9 10 11
Note: See TracReports for help on using and creating reports.