3 | | For instance, when a user tries to upload a file we would check whether they were a paid user and then respond accordingly if they had gone over the criteria. The criteria in this case might be that unpaid users get 5Mb whilst paid users get unlimited space. |
| 3 | To provide a freemium service it is necessary to be able to provide differing __levels__ of functionality based on the '''type''' of user (see #2550). These levels can be specific to the data hub but may require overriding functionality from core to provide these checks. |
| 4 | |
| 5 | Initial implementation should focus on limiting access to datastore disk space. |
| 6 | |
| 7 | == Interface == |
| 8 | |
| 9 | These changes are currently only for the data hub and should be kept as much as possible within the data hub extension. |
| 10 | |
| 11 | |
| 12 | == User Stories == |
| 13 | |
| 14 | * As a system component I want to find out if the current user has access to a feature (i.e. storage) and if so to what extent (xMb, xGb or unlimited). |
| 15 | |
| 16 | * As a system administrator I don't expect to need to manage the levels of users '''or''' the features that this applies to. |
| 17 | |
| 18 | |
| 19 | == Tasks == |
| 20 | |
| 21 | [ ] Clarification of requirements |
| 22 | |
| 23 | [ ] Tests |
| 24 | |
| 25 | [ ] Code |
| 26 | |
| 27 | [ ] Model |
| 28 | |
| 29 | [ ] API |
| 30 | |
| 31 | [ ] UI |
| 32 | |
| 33 | [ ] Documentation |
| 34 | |
| 35 | |
| 36 | == Estimates == |