astakos: A bit of refactoring of projects views
- Update project views to work with the updated projects logic- Use api.projects methods when applicable- Common project view decorator- Common view for app/project details
astakos: Display both summed up and per project quota in usage view
astakos: Make project-list a ListCommand
Use --filter-by to filter by owner and name.
Refs #5014
astakos: Adapt resource reconciliation
Assume base project when reconciling astakos resources.
astakos: Fix project notification recipients
Notify applicant on an application action; notify project owner on projectactions if owner exists.
astakos: Add command project-modify
Add a management command that directly modifies an initialized project.
astakos: Refactor resource-modify
Remove interactive operations, rename default-quota to base-default.
astakos: Modify resource project default
Add support in resource-modify for changing the project_default.
astakos: Get service related project quota
Add API call for a service to request the project quota for its ownresources.
astakos: Sync project-based quota
Update quota code to take into account the differentiated sources.There is no more need to lock the user when updating quota; lockingthe project is now adequate.
Update quota listing in management commands; introduce option --quota in...
astakos: Improve printing in quota-verify
Also add option to delete project and user holdings that do not correspondto actual astakos entities.
astakos: Disable setting user base quota
Remove functionality from management commands `quota' and `user-modify'for setting base quota. They will now be handled through projects.
astakos: Adapt to new project/app scheme
astakos: Make ProjectResourceGrant fields non null
Field project_capacity now requires a value; field project_applicationwas mistakenly set nullable.
astakos: Introduce base projects
Every user is associated with a special-purpose `base' project. Itsmission is to manage the user's base quota.
astakos: Make base project when creating user
Make base project along with the user with the same uuid. Enable theproject upon user acceptance.
astakos: Mark project membership as initialized
Add flag `initialized' on ProjectMembership. It is set to true once a useris accepted. It is used to distinguish users that have registeredproject quota (but may have been removed since then).
astakos: Fill grants' project_capacity
Each resource grant that a project provides is now also associated witha project-level limit. This is set by consulting the existing user-levellimit and the max members allowed. If the latter limit is not set, weconsider the project's current number of active members.
astakos: Add project default in resources
Add field `project_default' in resources. This will serve as a skeleton tofill project quota (both project-level and member-level limits) forresources not specified by the application.
The field is initialized by consulting the default base quota (field...
astakos: Make limit_on_members_number a bigint
We need bigint in order to represent infinite as 2**63-1.
astakos: Replace application None values
None will from now on denote a missing field of the application. Use emptystring for missing string and the conventional max int (2**63-1) for amissing limit.
astakos: Store all project info on the project model
A project entry will contain all information needed to operate a project.An application will store just the information provided by the applicant.
astakos: Identify projects with a uuid
Introduce field `uuid'; use it to refer to projects in the API and themanagement commands.
astakos: Typo fix
astakos: Reduce import clutter in functions.py
astakos: Refactor notification code
Introduce generic notify functions that consult a dict for a given action.
astakos: Remove unneeded argument
astakos: Introduce private projects
A private project can only be accessed by its owner and its members.No user can join the project; but the owner can enroll members.
common: Do not encode key paths as string
Handle explicitly key paths as lists of keys. This allows the keyto be any python object, as is the case in python dicts.
Provide utility unpack() to convert from a string representation toa list of keys. It assumes that a key is either a string or an integer...
astakos: Change contact form textarea size
astakos: Display auth provider identifier in user-show command
astakos: Prevent erroneus race conditions in simultaneous signups
Refs: #4966
cyclades: Improvements to Astakos stats
Improve the exposed stats from the Astakos API and the way they aredisplayed in 'stats-astakos' management command.
astakos: Handle pending third party provider validation issues
skip validation errors and reset invalid field values for received usermetadata.
Catch EOF in astakos/quota commands
Abort operation when raw_input raises an EOFError.
Fix stdout/stderr write in astakos/quota commands
Write actual command output and user prompts to stdout; error and progressmessages to stderr.
astakos: Filter for project-list table
astakos: Table manipulation using DataTables.js
Pagination, filtering and sorting of tables in projects-listand members-list view is done client-side using DataTables.js
astakos: Table manipulation style improvments
astakos: Fix members list table checkbox bug
astakos: Extend form.innerlabels cookie bug fix
astakos: Django 1.4.1 compatibility
astakos: Handle invalid provider ids
astakos: Update tests
astakos: Fix add members url in project details view
astakos: Disallow deletion of accepted users
astakos: Accept users with non-zero quota usage
Due to a non-handled case during the introduction of the user moderationframework, there can exist non-accepted users with non-zero quota usage.This can have happened if a user was set inactive before that migration....
astakos: List quota for accepted users only
Don't attempt to show quota for non-accepted users, since they don't haveany.
astakos: Fix initial resource usage ordering
astakos: fix tests after verbal message changes
astakos: 'activation' -> 'verification'
Change all Astakos messages to reflect the new sign up procedure:
astakos: Update astakos tests
astakos: Handle third party unverified user change password form submition
astakos: Improved email validator
Custom EmailValidator class backported from django 1.6
astakos: Existing third party identifier handling in signup
remove both existing third party authentication and unverified user entrieswhen the third party identifier gets used.
astakos: Prerender password input value in profile form
astakos: Improve invalid activation code handling
display error message instead of returning a 404 response
astakos: Auth provider presentation fix
prevent encoding errors
astakos: style fix for sortable tables thead
astakos: Hide empty project list in view
astakos: Set initial signup values if available
prefill third party signup form with initial values (first name, last name,email) if available in the third party provider response.
Conflicts:
snf-astakos-app/astakos/im/views/target/shibboleth.py
astakos: Shibboleth EPPN migration functionality
Prior to this commit astakos used the mod_shib2 EPPN header value as theunique identifier for associating shibboleth idp users to astakos user entries.
This commit alters this behaviour and from now on astakos resloves unique...
astakos: Log shibboleth exception and merge fixes
astakos: Fix test
astakos: Revoke access granted to resource
astakos: Minor improvements in validate token api call
Add tests for validate access token endpoint
astakos: Additional tests for validating access token
astakos: Configure oa2 app
astakos: Extend oa2 app
snf_django: Change error status code if request method is not valid
Return 405 (NotAllowed) instead of 400 (BadRequest)Add Allow header in the response containing the list of valid methods
Add some missing Copyright notices
Also add 2013 in package COPYRIGHT files.
astakos: Cache endpoints in POST /tokens
Since endpoints are rarely altered, we speed up POST /tokens by cachingthem.
astakos: Cache visible resources in GET /quotas
Speed up GET /quotas by caching the list of API visible resources.For consistency, apply the cache in GET /resources, too.
astakos: Associate only accepted users with projects
Allow project enrollment and ownership only for users that are accepted,not just email_verified.
Also change base quota only for accepted users.
astakos: Refactor user creation
Provide auth.make_user() as the single way to create a new user. Thisfunction is responsible to set all automatically generated fields, such asusername, uuid, and token. Clean up AstakosUser.save(), that used toupdate these fields, and remove AstakosUser.__init__(). Remove trigger...
astakos: Make user uuid field non-null
Set a uuid to any user missing one and set the field null=False.
astakos: Lock user in im views
Make sure that views modifying users run in a transaction and lock usersbefore updating.
astakos: Reset user sign flags when adding new terms
When new terms are added, set has_signed_terms=False for all users, forcingthem to accept the new terms. If there are no terms, a new user is createdwith has_signed_terms=True.
With this change we can skip querying the terms when authenticating a user,...
astakos: Use TestCase instead of TransactionTestCase
We need to be sure that code runs in a transaction (provided by TestCase).If we need in some case to test the transactional behavior itself,we could there use TransactionTestCase.
astakos: Remove unused user creation forms
InvitedLocalUserCreationForm, InvitedThirdPartyUserCreationForm,ShibbolethUserCreationForm, and InvitedShibbolethUserCreationFormwere not used.
astakos: Correct realname splitting
If a realname splits in more than two parts, store the whole valueas last_name. Also use the util function rather than initializinga temporary AstakosUser, where needed.
astakos: Remove stack traceback
astakos: Preserve visibility flags on register
When re-registering an existing resource, do not override the visibilityflags. They may have been modified by the administrator.
Also fix field naming in resource-list.
astakos: Enhance quota listing
Enable filtering quota by resource, over limit status, usage andlimit values.
astakos: Modify base quota in bulk
Add option `--all' in command user-modify to support setting base quotafor all users. Exceptions can be specified with `--exclude'.
Also select user for update in user-modify.
astakos: Speed up setting quota for one resource
When registering a new resource or updating base quota for a singleresource, compute and set holdings just for this resource.
astakos: Speed up computing initial_quota
Restructure code to avoid an extra join and dict manipulations.
astakos: Revert moderation of non-verified users
Migration 0031 accepted users to whom activation email had been sent, evenif their email had not been verified. This is an inconsistent state. Weset moderated = False for inactive users. If there are any active users in...
astakos: Make limits possibly infinite
Register new resources with unlimited quota.
astakos: Rename --limit to --default-quota
Use a more descriptive name for this resource-modify option. Also changeresource-list column `limit' to `default_quota'.
astakos: Preserve existing quota on default change
View the resource defaults as a skeleton to be consulted when acceptinga new user. All users keep their quota in AstakosUserQuota.
Operate resource-modify in bulk, in order to avoiding updating thequotaholder separately for each resource.
astakos: Add resource visibility flags
Rename flag `allow_in_projects' to `ui_visible'. Add flag `api_visible'.The former entails the latter.
astakos: Restrict resource access in API
Make available in the API only resources with api_visible=True.
astakos: Split quota commands
Introduce quota-list and quota-verify.
Remove resource import/export commands
They have been subsumed by the respective service import/export commands.
astakos: Avoid multiple user lookups in quota sync
Also, remove unneeded param of astakos_users_quotas.
astakos: Recompute quota when updating a resource
Avoid stateful update of holdings when a resource limit changes; ratherrecompute and set all affected users' quota.
astakos: Replace decimal field with bigint
Any values that happen to be greater than the new max (2**63-1)are reduced to this value.
astakos: pep8 fixes