55 Commits

Author SHA1 Message Date
Rodney Ewing
e002452f91 get and set metadata for a MediaFile 2013-08-21 14:44:13 -07:00
Jessica Tallon
8e3bf97821 Fix problem with migration - OAuth 2013-07-22 17:17:01 +01:00
xray7224
7271b06282 Moves first versions of the the models to migrations 2013-07-18 20:39:15 +01:00
xray7224
8ddd7769de Adds migration for OAuth1 tables 2013-07-18 20:24:35 +01:00
Rodney Ewing
5adb906a0a merge --squash openid branch to take care of a false merge commit in the
basic_auth branch that openid is forked from

Commits squashed together (in reverse chronological order):
 - do the label thing only for boolean fields
 - made edit_account to autofocus on the first field
 - added feature to render_divs where if field.label == '' then it
   will render form.description the same a render_label
 - added allow_registration check
 - refactored create_user
 - removed verification_key from create_user
 - removed get_user from openid
 - cleanup after removing openid from template_env.globals
 - fix for werkzueg 0.9.1
 - cleanup after merge
 - more tests
 - restored openid extra_validation just for safety
 - tests for openid
 - deleted openid extra_validation
 - passed next parameter in session for openid
 - fixed a bug that was deleting the messages
 - implemented openid store using sqlalchemy
 - ask openid provider for 'nickname' to prefill username in registration form
 - refactored delete openid url to work with generic urls such as
   google and to not allow a user to delete a url if it is there only
   one and they don't have a pw
 - refactored login to register user workflow, which fixed a problem
   where the 'or register with a password link' wasn't showing up when
   the finish_login view called the register view because there wasn't
   any redirect.
 - added the ability to remove openid's
 - added the ability to add openids to an existing account
 - refactored start_login and finish_login views
 - modified edit_account.html to use render_divs
 - modified gmg/edit/views to behave appropriatly if no password
   authentication is enabled. moved the update email stuff to it's own
   funtion to make edit_account view cleaner. edit_account now
   modifies the form depending on the plugins.
 - minor typos
 - added retrieving email from openid provider
 - moved allow_registration check to a decorator
 - moved check if auth is enabled to a decorator
 - changed openid user registration to go through login first
 - cleanup after merge
 - modified verification emails to use itsdangerous tokens
 - added error handling on bad token, fixed route, and added tests
 - added support for user to change email address
 - added link to login view openid/password in login template
 - updated openid get_user function
 - modified get_user function to take kwargs instead of username
 - no need for user might be email kwarg in check_login_simple
 - added gen_password_hash and check_password functions to auth/__init__
 - added focus to form input
 - made imports fully qualified
 - modified basic_auth.check_login to check that the user has a pw_hash first
 - changed occurances of form.data['whatever'] to form.whatever.data
 - convert tabs to spaces in register template, remove unsed
   templates, and fixed trans tags in templates
 - in process of openid login. it works, but needs major imporvements
 - make password field required in basic_auth form
 - check if password field present in basic_auth create_user
 - modified openid create_user function
 - modified models based on Elronds suggestions
 - changed register form action to a variable to be passed in by the
   view using the template
 - openid plugin v0, still need to authenticate via openid.
 - added a register_user function to be able to use in a plugin's
   register view, and modified auth/views.register to redirect to
   openid/register if appropriate.
 - Modified basic_auth plugin to work with modified auth plugin
   hooks. Added context variables. Removed basic_auth/tools which was
   previously renamed to basic_auth/lib.
 - modified auth/__init__ hooks to work better with multiple
   plugins. Removed auth/lib.py. And added a basic_extra_verification
   function that all plugins will use.
 - added models and migrations for openid plugin
2013-07-03 13:49:16 -05:00
Christopher Allan Webber
15db183151 Explain about sqlite dropping the constraint and why we're adding it back manually. 2013-06-25 17:12:33 -05:00
Rodney Ewing
af4414a85f Merge remote-tracking branch 'upstream/master' into auth
Conflicts:
	mediagoblin/app.py
	mediagoblin/auth/forms.py
	mediagoblin/auth/tools.py
	mediagoblin/db/migrations.py
	mediagoblin/db/models.py
	mediagoblin/edit/views.py
	mediagoblin/plugins/basic_auth/tools.py
	mediagoblin/tests/test_edit.py
2013-06-25 13:37:21 -07:00
Rodney Ewing
5a1be074c0 typo 2013-06-25 13:22:56 -07:00
Christopher Allan Webber
257b8ab62a Merge remote-tracking branch 'refs/remotes/joar/notifications'
Conflicts:
	mediagoblin/db/migrations.py
2013-06-22 16:13:41 -05:00
Rodney Ewing
e4deacd9c8 changes after cwebb's review 2013-06-21 14:14:40 -07:00
Joar Wandborg
2d7b6bdef9 New notifications
- Added request.notifications
- Email configuration fixes
  - Set config_spec default SMTP port to `0` and switch to SSL/non-SSL
    default if `port == 0`
  - Added email_smtp_use_ssl configuration setting
- Added migrations for notification tables
- Added __repr__ to MediaComment(Mixin)
- Added MediaComment.get_entry => MediaEntry
- Added CommentSubscription, CommentNotification, Notification,
  ProcessingNotification tables
- Added notifications.task to celery init
- Fixed a bug in the video transcoder where pygst would hijack the
  --help argument.
- Added notifications
  - views
    - silence
    - subscribe
  - routes
  - utility methods
  - celery task
- Added half-hearted .active comment CSS style
- Added quick JS to show header_dropdown
- Added fragment template to show notifications in header_dropdown
- Added fragment template to show subscribe/unsubscribe buttons on
  media/comment pages
- Updated celery setup tests with notifications.task
- Tried to fix test_misc tests that I broke
- Added notification tests
- Added and extended tests.tools fixtures
- Integrated new notifications into media_home, media_post_comment views
- Bumped SQLAlchemy dependency to >= 0.8.0 since we need polymorphic for
  the notifications to work
2013-06-09 21:18:37 +02:00
Rodney Ewing
342f06f7bd modified verification emails to use itsdangerous tokens 2013-05-29 13:23:26 -07:00
Rodney Ewing
8ad734afc6 changed User model pw_hash field to nullable and added migrations 2013-05-24 18:16:53 -07:00
Elrond
f96c284e0a Make uuid look like a uuid.
If we really have to create a visible uuid (for a slug in
this case), don't try to hide the fact that it is a uuid.
So format it like a uuid.
2013-04-27 17:02:37 +02:00
Rodney Ewing
34d8bc9820 Check for duplicate collection slugs and make them unique. Add unique constraint to collection.slug model 2013-04-24 14:31:51 -07:00
Christopher Allan Webber
aecd65b789 Simplifying the test for whether or not a user and slug combo exists.
Thanks to tchernobog for catching this (it was breaking on postgres)
and Elrond for the suggestion on how to fix it.

This commit sponsored by Caleb Cooper.  Thanks Caleb!
2013-02-27 09:56:56 -06:00
Christopher Allan Webber
ab1f65e6d7 Import sqlalchemy's and_ and use it in our select statement
This commit sponsored by Hans-Jörg Dollansky.  Thank you!
2013-02-26 10:15:26 -06:00
Christopher Allan Webber
0b7cdb6f3e And of course, we need to actually commit at the end of a migration.
This commit sponsored by Tamas Kemenczy.  Thanks, Tamas!
2013-02-26 09:58:25 -06:00
Christopher Allan Webber
0c6a34bf5c Dope'ily missed .count() on the query where we're counting
Thanks for catching, Elrond.

This commit sponsored by Graham King.  Thank you!
2013-02-25 16:35:05 -06:00
Christopher Allan Webber
e66431f4c3 Supplying migrations for a bold new era of mediagoblin entry slugs
Okay, that's a totally confusing statement, but the docstring of this
migration summarizes it well:

  Entries without slugs now display differently in the url like:
    /u/cwebber/m/id=251/

  ... because of this, we should back-convert:
   - entries without slugs should be converted to use the id, if possible, to
     make old urls still work
   - slugs with = (or also : which is now also not allowed) to have those
     stripped out (small possibility of breakage here sadly)

This commit sponsored by John Sullivan.  Thanks johnsu01! :)
2013-02-25 16:16:21 -06:00
Elrond
0c871f8122 Use inspect_table; default user license==None.
Use inspect_table in the new migration. Makes code more
readable, really.

And make the default for the preferred license be None.
This is a userspace thing, so we can even change the
migration here. Changing the migration means, that people
running the migration before this commit get a "" in
User.license_preference, while people running the migration
now get a None. Both values are okay.

None has been designated as "Use the site's default". We're
not actually having a site default right now. Which means
no license is selected in the dropdown.

While "" means "All rights reserved" being chosen by the
user.

Side note: Having no license being selected in the submit
dropdown is as "worse" as before and does not really hurt
much. MediaEntry.license==None means "All rights reserved"
as does "" also do.
2013-01-22 23:10:30 +01:00
Mark Holmquist
dc4dfbde35 Add a license preference field
This feature is absolutely necessary. Now a user can simply define
their default license and quickly go through a form, as opposed to
stopping to click on the select and choosing the same option over
and over again.

Also added DB migration for the field, so that's working now, too.

Rebased by Sebastian and made the default value to be unicode.

Reviewed-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2013-01-17 21:34:04 +01:00
Elrond
c130e3ee79 Move db.sql.migration_tools to db.migration_tools.
Follow the new trend.
2013-01-08 22:50:01 +01:00
Elrond
c4466cb4dc Add inspect_table.
In our current scheme of migrations, we reflect the current
sql schema into an SQLAlchemy schema. So let's have a tool
function for this.
2013-01-08 22:50:01 +01:00
Elrond
a050e776c6 Move all the migration tools into new migration_tools.py
Factor all the migration related stuff out into a new
.db.sql.migration_tools.
First we don't have to load this module for our normal
server.
Second it makes all the import dependencies a little more
cleaner.
2013-01-08 22:50:01 +01:00
Sebastian Spaeth
b0c8328e54 Move db.sql.models* to db.models* 2013-01-07 11:44:29 +01:00
Sebastian Spaeth
1e46dc2537 Move db.sql.util to db.util
Now that sqlalchemy is providing the database abstractions, there is no
need to hide everything in db.sql. sub-modules. It complicates the code
and provides a futher layer of indirection.

Move the db.sql.util.py to db.util.py and adapt the importers.
2013-01-07 11:31:56 +01:00
Sebastian Spaeth
9536988425 Move db.sql.migrations to db.migrations 2012-12-25 20:12:16 +01:00
Elrond
faf74067da Move db/migrations.py -> db/mongo/migrations.py
And change references.
2011-12-20 20:33:33 +01:00
Elrond
59bd06aabb Move db/util.py -> db/mongo/util.py
- Change some reference
- Provide a wrapper db/util.py
2011-12-20 19:35:47 +01:00
Joar Wandborg
b9e1fa280e Merge branch 'video_gstreamer-only'
Conflicts:
	mediagoblin/db/migrations.py
	mediagoblin/submit/views.py
2011-11-21 21:51:30 +01:00
Elrond
03d47730cd Factor out a add_table_field function
Migrations often just add a new field to some
table/collection. So just have a nice helper function for
this!
2011-10-21 22:17:16 +02:00
Aaron Williamson
152a3bfaa3 Finished splitting util.py into separate files. 2011-10-01 18:05:44 -04:00
Joar Wandborg
93bdab9daa Multimedia support - Commiting from a not yet finished state - Details below
* DONE Initially testing with arista
** DONE Video display templates
*** TODO Multi-browser support
** TODO Video thumbnails
** TODO Link to original video
** TODO Video cropping

Also contains a lot of "debug" print's
2011-09-23 02:35:57 +02:00
Christopher Allan Webber
f373599bd7 Merge branch 'gullydwarf-cfdv-f357_lost_password_functionality'
Conflicts:
	mediagoblin/auth/routing.py
2011-09-08 08:12:43 -05:00
Christopher Allan Webber
2db31581ed user_add_forgot_password_token_and_expires migration should set new fields to None/null 2011-09-07 20:18:17 -05:00
Will Kahn-Greene
12a100e4d8 508. Updates copyright/license information 2011-09-01 20:50:19 -04:00
Caleb Forbes Davis V
6503073508 oops, uses Alejandro's fp_verification_key. my bad. 2011-08-28 21:13:07 -05:00
Alejandro Villanueva
25ba955e20 Adding fotgot password functionality 2011-08-28 20:08:14 -05:00
Christopher Allan Webber
6c50c21068 Add fail_error and fail_metadata fields to MediaEntry and relevant migration 2011-08-13 07:48:34 -05:00
Christopher Allan Webber
fabdccd011 Missing multi=True closing this migration, oops :) 2011-08-12 13:14:35 -05:00
Christopher Allan Webber
ba4858c5b4 Merge branch 'master' into processing
Conflicts:
	mediagoblin/db/migrations.py
2011-08-11 22:54:11 -05:00
Caleb Forbes Davis V
84abd2bbc4 Bug #372 - MediaEntry.thumbnail_file not used
- deleted the thumbnail_file from the media_entries collection
- added a migration to remove the field from previous db versions
2011-08-10 12:48:23 -05:00
Christopher Allan Webber
6b9ee0ca13 Store the task id of a processing action in the database. 2011-07-24 23:12:46 -05:00
Christopher Allan Webber
fa92d52fa5 Migration for mediafiles main->original 2011-07-17 08:50:09 -05:00
Christopher Allan Webber
5ebe69e5a0 First migration: Add markdown bio! 2011-07-14 00:00:24 -05:00
Christopher Allan Webber
c2ddd85e4a Removing old style migrations... not in use anymore 2011-07-11 21:09:36 -05:00
Christopher Allan Webber
0c915735d5 Just making a note of where the new migrations will go! 2011-07-10 22:58:48 -05:00
Christopher Allan Webber
3208bea54c Merge remote branch 'refs/remotes/gullydwarf-cfdv/is315' 2011-06-21 23:22:16 -05:00
Christopher Allan Webber
a2c37d0a78 Only migrate to description_html if description also exists. 2011-06-20 21:02:46 -05:00