History | View | Annotate | Download (65.9 kB)
astakos: Fix typo
astakos: Display auth provider identifier in user-show command
astakos: Prevent erroneus race conditions in simultaneous signups
Refs: #4966
astakos: Handle third party unverified user change password form submition
astakos: Revoke access granted to resource
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: 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: 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: 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
Merge branch 'master' into develop
Conflicts: Changelog astakosclient/astakosclient/keypath.py ci/utils.py docs/admin-guide.rst snf-astakos-app/astakos/im/cookie.py snf-astakos-app/astakos/im/functions.py snf-astakos-app/astakos/im/quotas.py snf-astakos-app/astakos/im/views/projects.py...
astakos: Fix logging issues
astakos: Handle quota for accepted users
A user is accepted if moderated=True and is_rejected=False. Onlyaccepted users have entries in the quotaholder.
astakos: pep8 fix
astakos: Remove custom ForUpdateManager
Remove custom manager that implemented select_for_update(), since thisis already implemented in Django 1.4.
astakos: Handle quota for moderated users only
At some points, verified users where mistakenly assumed.
Merge branch 'hotfix-0.14.8' into develop
Merge hotfix-0.14.8 which ports Synnefo to wheezy and Django 1.4.5
Conflicts: ci/ci_squeeze.conf ci/ci_wheezy.conf ci/schemas/one_node_squeeze/packages.conf ci/schemas/one_node_squeeze/squeeze.conf ci/schemas/one_node_squeeze/wheezy.conf...
astakos: Store base URL in component
Deployer should provide it when adding a new component. Service endpointsoriginating from a component are expected to match its base URL; otherwise,a warning is issued during service registration. Re-registration with...
Fix a python syntax error
In python 2 we cannot have keyword-only arguments (PEP 3102).And even if we could, this was not the right way todeclare a python function.
astakos: Fix `save() got unexpected argument'
From Django documentation:""" It’s also important that you pass through the arguments that can bepassed to the model method – that’s what the *args, **kwargs bit does.Django will, from time to time, extend the capabilities of built-in...
astakos: Fix enroll when already requested
Enrolling a user sets its membership state directly to ACCEPTED, alsoin case of REQUESTED.
astakos: Describe and implement API for projects
astakos: Simplify project schema
Applications now point to a project (rather than an extra model Chain).A Project is created upon submitting an application; it always points toa single `reference' application.
Model Chain is kept as a sequence to generate project ids.
astakos: Remove precursor_application field
Submit a project modification by specifying a project id rather thanan application
astakos: Change project membership schema
Replace ProjectMembershipHistory with ProjectMembershipLog, whichrecords every state transition. Never delete any ProjectMembershipentry; set it instead to an appropriate state.
astakos: Adapt UI to new project schema
Base tables on projects rather than applications; update templates.
astakos: Set project-wise resource limit in new app
astakos: Refactor membership checks for conciseness
astakos: Add log info in membership actions
Record user who performed the action and optional reason.
astakos: Improve logging for Projects and Applications
Introduce model ProjectLog as well as fields in ProjectApplicationin order to record all actions.
astakos: Lock globally when approving application
We need to make sure that the name to be approved is uniqueamong all non-terminated projects. We thus acquire a globallock before approving.
astakos: Remove unused ExtendedManager
astakos: Use units common code in the UI
astakos: Fix some issues pointed out by pyflakes
astakos: Enhance project tables rendering
Prefetch data in bulk queries in order to avoid continuously queryingthe database.
Merge branch 'hotfix-0.14.3' into develop
Conflicts: Changelog snf-astakos-app/astakos/im/messages.py snf-pithos-app/pithos/api/manage_accounts/__init__.py snf-pithos-app/pithos/api/management/commands/reconcile-resources-pithos.py snf-pithos-app/pithos/api/settings.py...
astakos: Resume a deactivated project upon approval
When approving a modification, automatically set the project to active,if it has been deactivated.
Merge branch 'hotfix-0.14.2' into develop
Conflicts: snf-astakos-app/astakos/im/views/projects.py snf-cyclades-app/synnefo/logic/backend.py snf-django-lib/snf_django/lib/astakos.py version
astakos: Fix listing of approved members
Include leave requested and suspended members in the list of approved.
astakos: Generate tokens without trailing equal signs
Strip padding ("=") introduced during the base64 encoding.Update token examples in docs.
astakos: Record the service originating a resource
Add field service_origin in model Resource as well as in theresource definitions, indicating the service where the resourcecomes from. It is not a foreign key, in order to allow deletinga component/service, without affecting registered resources and...
astakos: Extend component URL to size 1024
astakos: Generate tokens randomly
Token is now random 256 bits encoded as a base64 string.Increase the auth_token database fields to accommodate it.
astakos: Lift old-style services to components
Add model Component and migrate services along with their tokenand UI URL to this new model. Rename service to component whereneeded.
Add field service_type in Resource and fill it based on the nameof the service that used to own the resource.
astakos: Add new-style services with endpoints
Drop old Service model and add models Service, Endpoint, and EndpointData.Remove Resource's reference to Service.
astakos: Impose uniqueness on auth_token
Add uniqueness constraint in AstakosUser and Component models.Before that, invalidate (set to None) any duplicate tokens.
When renewing a token, retry a couple of times, if generated tokenis in use.
Merge branch 'develop' into feature-projects-ux
Conflicts: snf-astakos-app/astakos/im/templates/im/projects/intro.html snf-astakos-app/astakos/im/templatetags/astakos_tags.py snf-astakos-app/astakos/im/urls.py snf-astakos-app/astakos/im/views.py
astakos: Update user-add command
removed activate option. User status can be changed using additionaluser-modify commands (--verify, --accept etc.)
astakos: provide get_endpoints api call
astakos: Strengthen authentication in user_from_token
All user-related API calls make use of this decorator to authenticatethe user. Previously it used to check only for the existence of the token;now it makes all checks previously found in the `authenticate' API call....
astakos: unified settings handling
Import astakos settings module instead of importing specific settings
astakos: Add AstakosUser status_display property
the property provides a status outline of the current user status.
astakos: remove unused imports
astakos: reorganize views
astakos: Remove code handling UserSetting
Keep UserSetting model; to be removed in a future version.
astakos: Remove some unused imports
Also add a missing import in quotas.py
astakos: Lock chain for projects, user for syncing
Lock project's chain for every operation affecting either a project oran application. Subsequently, lock user when needing to sync or to issuecommission to update pending_app quota.
In views, replace locking qh_add_pending_app with check_pending_app_quota,...
astakos: replace CookieAuthenticationMiddleware with a view decorator
reverse commits ab30f5f163a13dfc7f9bec4d263208dd35f09d16 &1439d6383113b151b6a3316e320a0418fa30d421
decorate also ``django.contrib.auth.views`` utilized byastakos
astakos: User activation flow improvements
Major refactoring on user email verification/activation process---------------------------------------------------------------Activation logic moved from dispersed code in functions/view modules toActivationBackend methods. All user activation handling code in astakos views...
astakos: Remove deprecated AstakosUser fields
astakos: Remove membership policy settings
Available join and leave policies are internally defined and shouldnot be changed by settings. Move policy descriptions to presentation.py.
Do not convert to string the lookup key in templatetags/filters.py
astakos: Remove command user-set-initial-quota
To change base quota for a specified user: snf-manage user-modify user --set-base-quota resource limit
To import base quota in batch from a file: snf-manage astakos-quota --import-base-quota filename
Rename `initial' to `base quota' in command output....
astakos: Use DateTimeField for enhanced precision
Refs #3717
Replace instances of DateField in ProjectMembership andProjectMembershipHistory.
astakos: remove astakos.im.api module
Replace all AstakosCallpoint references
astakos: Remove deprecated Project methods
add_member, remove_member were not used.
astakos: Exclude non existing services form Service.catalog
Always return services that exist in database. If a known service existsuse the predefined presentation data as base dict upon which we build upthe returned info by merging the data stored in service model and the...
astakos: Add reason for all actions on applications
For cancel and dismiss, it is for now just a placeholder.
astakos: Cleanup some project methods
astakos: Cleanup input of submit_application
Form passes only a tuple (name, limit) for each selected resource,omitting presentational data.
astakos: Resources metadata improvements
- Allow admin to overwrite default resources presentation data using ASTAKOS_RESROUCES_META setting. dict_merge is used to accomodate admin from declaring all available metadata parameters.- Enforce allow_in_projects resource policy in project application...
astakos: Control exposing resources in projects
Add attribute `allow_in_projects' in Resource model (True by default).Set this flag for astakos.pending_app to False in the descriptionof astakos resources.
Astakos: Checkboxes for members actions (project members page)
astakos: Initial tests for project views
astakos: Reintroduce foreign key from Resource to Service
Also merge all migrations from 0026 to 0032.
Service catalog fix
also include services for which no existing presentation data exist.Admin can use ASTAKOS_SERVICE_META setting to customize the servicepresentation metadata.
Store service access url in database
Move intdecimalfield.py to snf_django package
Rename it to fields.py and update all migrations that reference the field.
Move managers.py to snf_django package
astakos: Remove obsolete ProjectResourceGrant fields
astakos: Remove obsolete fields of AstakosUserQuota
Remove quantity, import_limit, export_limit.Update user-set-initial-quota management command.
astakos: Remove obsolete project-related model fields
Several fields of models Project and ProjectMembership were relatedto the external syncing to quotaholder and have become obsolete sincethe inclusion of quotaholder in astakos.
Move resource data away from astakos settings
UI-related presentation data go to presentation.py.Remove load_service_resources call and related astakos-initmanagement command.
Make resource name independent of service name
Also remove unused ResourceMetadata model.
Import resources from definition and config files
Register a service's resources giving option --json <file>.The json file is expected to represent a dictionary with keys"service" and "resources".
Currently the default base quota (uplimit) for each resource is read...
Remove resource/service model dependencies
- Remove foreign key dependency between Service/Resource model. Replace it with a service CharField to keep track of the service identifier that the resource was registered from.- Remove all references to resource service name in resource lookups
Use updated resource models in projects views
Services api/presentation logic cleanup
- Remove presentation information from Service model (order, icon)- To access the list of services filled with both presentation and api data use Service.catalog(). The method fills a dict with service identifiers and service metadata through the following steps...
Astakos missing Service model migrations
Cleanup obsolete quota code
API call for resources
Do not register resources in quotaholder
Adjust astakos to new holding design
Simplifications due to removal of quantity and merging capacity into holding.Also make sure that holders and resources are represented as strings inquotaholder calls.
Compute and show quotas by source
Adjust astakos code to the new nested dict structure of quotas.
Move quota-related code out of models.py
Intention is to collect all quota-related code to a single file.
Sync to quotaholder by recomputing user quotas
On a user joining/leaving a project or on a project definition change,we used to compute quota diffs for affected users and add them upto existing values in quotaholder.
We now switch to recomputing all quotas for affected users and resetting...