mediagoblin.git
11 years agoThis was a very small update, I'm hoping to rebase after this to solve some
tilly-Q [Tue, 20 Aug 2013 16:02:20 +0000 (12:02 -0400)]
This was a very small update, I'm hoping to rebase after this to solve some
other problems. I started looking at the tests in this update. This update I
spent fixing the tests to work with my new code.

--\ mediagoblin/db/migration_tools.py
--| Merging from ticket 679

--\ mediagoblin/db/migrations.py
--| Added unique constraint to Privilege.privilege_name

--\ mediagoblin/db/models.py
--| Deleted vestigial Privilege.is_admin_or_moderator method

--\ mediagoblin/templates/mediagoblin/moderation/user.html
--| Add a `Ban User` / `UnBan User` for admin

--\ mediagoblin/test/test_api.py
--| Fixed test with my new changes

--\ mediagoblin/test/test_auth.py
--| Try to fix test, still having problems

--\ mediagoblin/test/test_modelmethods.py
--| Wrote my first test for the User.has_privilege method

--\ mediagoblin/test/test_modelmethods.py
--| Fixed test with my new changes

--\ mediagoblin/test/test_sqlmigrations.py
--| Merging from ticket 679

--\ mediagoblin/test/tools.py
--| Editted add_fixture_user to allow for privileges rather than active column

11 years agoThis has been an update to clean out the code a little bit. The primary change
tilly-Q [Tue, 13 Aug 2013 22:38:00 +0000 (18:38 -0400)]
This has been an update to clean out the code a little bit. The primary change
I made was I added the method has_privilege (which takes a variable amount of
unicode privilege names as an argument) to the User model. This method allowed
for much cleaner checks as to whether or not a user has a privilege. Other-
wise, I also made it impossible for moderators to punish admins. I created a
new url path and three new pages for Users to look at filed reports and the
code of conduct for the mg instance.

=== Made reports on admins not resolvable by moderators:
--\   mediagoblin/moderation/views.py
--\   mediagoblin/templates/mediagoblin/moderation/report.html

=== Created new files for the new pages:
--\   mediagoblin/meta/__init__.py
--\   mediagoblin/meta/routing.py
--\   mediagoblin/meta/views.py
--\   mediagoblin/templates/mediagoblin/meta/code_of_conduct.html
--\   mediagoblin/templates/mediagoblin/meta/reports_details.html
--\   mediagoblin/templates/mediagoblin/meta/reports_panel.html
--\   mediagoblin/routing.py
--\   mediagoblin/static/css/base.css

=== Replaced vestigial methods of checking a user's privilege with the more
====== effective method has_privilege(u'privilege_name'):
--\   mediagoblin/db/models.py
--|   Added in the has_privilege method to the User class

--\   mediagoblin/db/migrations.py
--\   mediagoblin/db/models.py
--\   mediagoblin/decorators.py
--\   mediagoblin/edit/lib.py
--\   mediagoblin/edit/views.py
--\   mediagoblin/gmg_commands/users.py
--\   mediagoblin/moderation/views.py
--\   mediagoblin/templates/mediagoblin/base.html
--\   mediagoblin/templates/mediagoblin/user_pages/collection.html
--\   mediagoblin/templates/mediagoblin/user_pages/media.html
--\   mediagoblin/templates/mediagoblin/user_pages/user.html
--\   mediagoblin/templates/mediagoblin/utils/collection_gallery.html
--\   mediagoblin/user_pages/views.py

=== Minor UI changes
--\   mediagoblin/templates/mediagoblin/moderation/report_panel.html
--\   mediagoblin/templates/mediagoblin/moderation/user.html

=== Other Bugs:
--\   mediagoblin/tools/response.py
--\   mediagoblin/db/migrations.py

11 years agoThis commit was the work I did fixing errors that cropped up from the merge.
tilly-Q [Tue, 30 Jul 2013 21:09:01 +0000 (17:09 -0400)]
This commit was the work I did fixing errors that cropped up from the merge.
There were a few errors because of the switch from sqlalchemy 0.7 to 0.8 but I
cleared them up.

11 years agoMerge branch 'ticket-679' into OPW-Moderation-Update
tilly-Q [Mon, 29 Jul 2013 22:40:19 +0000 (18:40 -0400)]
Merge branch 'ticket-679' into OPW-Moderation-Update

Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/db/migration_tools.py
mediagoblin/db/migrations.py
mediagoblin/db/models.py
mediagoblin/decorators.py
mediagoblin/user_pages/views.py

11 years agoI actually had to do a bit more work than I thought, because I needed to account
tilly-Q [Mon, 29 Jul 2013 21:15:29 +0000 (17:15 -0400)]
I actually had to do a bit more work than I thought, because I needed to account
for plugins. In this commit I changed the MigrationManager and DatabaseData ob-
jects to account for FOUNDATIONS in any plugin's (or main program's) models.py
file.

11 years agoThis was a very simple ticket actually. I created a list called FOUNDATIONS in
tilly-Q [Mon, 29 Jul 2013 20:36:06 +0000 (16:36 -0400)]
This was a very simple ticket actually. I created a list called FOUNDATIONS in
mediagoblin/db/models.py. This list holds all of the information about rows that
should be created at database initialization. Read the documentation near the
FOUNDATIONS list to understand the proper format for this list.

All of the work is done through a new method on MigrationManager in
mediagoblin/db/migrations_tools.py. This method, `populate_table_foundations`
parses the FOUNDATIONS list and creates the foundations based on the data incl-
uded. This only ever happens when the database is initialized. Migrations to
releases with new Foundations should be very easy just using the basic
database functionality.

11 years agoThis is a very small commit. All that I have done here is to clean up my code
tilly-Q [Mon, 29 Jul 2013 19:14:39 +0000 (15:14 -0400)]
This is a very small commit. All that I have done here is to clean up my code
a bit. I made it so that mediagoblin.user_pages.report recieves the report
form as part of it's context. I also made sure I used {% trans %} tags effect-
-ively.

11 years agobabel 1.0 doesn't have a localedata.list() method, so updated setup.py.
Rodney Ewing [Mon, 29 Jul 2013 18:25:34 +0000 (11:25 -0700)]
babel 1.0 doesn't have a localedata.list() method, so updated setup.py.

made "import crypto" fully qualified

11 years agoThis commit had some important milestones in it. The major update is that now I
tilly-Q [Sat, 27 Jul 2013 20:44:40 +0000 (16:44 -0400)]
This commit had some important milestones in it. The major update is that now I
have mostly completed the moderator punishment and resolution of reports. Along
with this, I have also added one last table to the database: one that holds ar-
-chived (or resolved) reports. This is some of the primary functionality of my
whole update, so this is a big step! The other changes I made this update are
primarily organizational. I refactored some of my code into functions and I cl-
eaned up many of my templates.

--\ mediagoblin/db/models.py
--| Created the new ArchivedReport table
--| Removed columns from BaseReport table that are only necessary for Archived
  |    reports

--\ mediagoblin/db/migrations.py
--| Created the new ArchivedReport table
--| Removed columns from BaseReport table that are only necessary for Archived
  |    reports

--\ mediagoblin/db/util.py
--| Created the user_privileges_to_dictionary function. This is useful for
  |    accessing a user's permissions from within a template.

--\ mediagoblin/moderation/forms.py
--| Expanded the disciplinary actions a moderator can take
--| Allowed the moderator to choose more than one disciplinary action at a time
  |    (It's now managed with a list of checkboxes rather than radio buttons)
----| Pulled a MultiCheckBox class from  a wtforms tutorial
--| Added various other form inputs for details of the moderator's disciplinary
  |    actions
--| Tried to ensure that every string is unicode and translated

--\ mediagoblin/moderation/tools.py
--| Created this file for holding useful moderation tools
--| Moved the penalizing code from views to the function take_punitive_actions
--| Added many more types of punitive actions
--| Added the archiving of old reports

--\ mediagoblin/moderation/views.py
--| Used the privileges_to_dictionary function for the Users Detail view to
  |   allow for different actions available to a moderator and an admin.
--| Added in functionality for ArchivedReports to the reports_detail and
  |   reports_panel views
--| Moved the punishments of repots_detail to tools.py (as mentioned above)

--\ mediagoblin/static/css/base.css
--| Added new styling for the User Detail page

--\ mediagoblin/static/images/icon_clipboard_alert.png
--| Added this image to represent unresolved reports

--\ mediagoblin/templates/mediagoblin/moderation/report.html
--| Added 'Return to Reports Panel' button
--| Fixed the spacing to be less that 80 columns wide
--| Added in display for Archived Reports

--\ mediagoblin/templates/mediagoblin/moderation/reports_panel.html
--| Changed the placement and columns of the tables
--| Fixed the spacing to be less that 80 columns wide
--| Added in display for Archived Reports

--\ mediagoblin/templates/mediagoblin/moderation/user.html
--| Fixed the spacing to be less that 80 columns wide
--| Took away the moderator's ability to add and remove privileges at will.
  |  Only the admin has this power now.

--\ mediagoblin/templates/mediagoblin/moderation/users_panel.html
--| Fixed the spacing to be less that 80 columns wide

--\ mediagoblin/tools/response.py
--| Added in code to remove a UserBan from a User if that user logs in after
  |  the expiration date

11 years agoMore up to date README
Christopher Allan Webber [Thu, 25 Jul 2013 19:05:50 +0000 (14:05 -0500)]
More up to date README

11 years agoMove the "cd mediagoblin" to the right line. Thanks usrnix!
Christopher Allan Webber [Wed, 24 Jul 2013 01:24:30 +0000 (20:24 -0500)]
Move the "cd mediagoblin" to the right line.  Thanks usrnix!

This commit sponsored by Kenneth Dombrowski.  Thanks!

11 years agoWhew. This is a big update. I did some significant keeping work. I moved all of
tilly-Q [Wed, 17 Jul 2013 20:16:07 +0000 (16:16 -0400)]
Whew. This is a big update. I did some significant keeping work. I moved all of
the folders and enpoints labeled 'admin' to the more accurate term of 'moderat-
ion.' I also created the ability for admins and moderators to add or remove pr-
ivileges or to ban a user in response to a report. This also meant implementing
the UserBan class in various places. I also had to add a column called result
to the ReportBase table. This allows the moderator/admin to leave comments when
they respond to a report, allowing for archiving of what responses they do/n't
take.

--\ mediagoblin/db/migrations.py
--| Added result column to ReportBase

--\ mediagoblin/db/models.py
--| Added result column to ReportBase
--| Added documentation to tables I had made previously

--\ mediagoblin/decorators.py
--| Editted the user_has_privilege decorator to check whether a user has been
  | banned or not
--| Created a seperate user_not_banned decorator to prevent banned users from
  | accessing any pages
--| Changed require_admin_login into require_admin_or_moderator login

--\ mediagoblin/gmg_commands/users.py
--| Made the gmg command `adduser` create a user w/ the appropriate privileges

--\ mediagoblin/moderation/routing.py  << formerly mediagoblin/admin/routing.py
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/routing.py
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/moderation/views.py << formerly mediagoblin/admin/views.py
--| Renamed all of the routes & functions from admin -> moderation
--| Expanded greatly on the moderation_reports_detail view and functionality
--| Added in the give_or_take_away_privilege form, however this might be a use-
  | -less function which I could remove (because privilege changes should happe-
  | n in response to a report so they can be archived and visible)

--\ mediagoblin/static/css/base.css
--| Added in a style for the reports_detail page

--\ mediagoblin/templates/mediagoblin/base.html
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/templates/mediagoblin/moderation/report.html
--| Added form to allow moderators and admins to respond to reports.

--\ mediagoblin/templates/mediagoblin/moderation/reports_panel.html
--| Fixed the table for closed reports

--\ mediagoblin/templates/mediagoblin/moderation/user.html
--| Added in a table w/ all of the user's privileges and the option to add or
  | remove them. Again, this is probably vestigial
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/templates/mediagoblin/moderation/user_panel.html
--| Renamed all of the routes from admin -> moderation

--\ mediagoblin/tools/response.py
--| Added function render_user_banned, this is the view function for the redir-
  | -ect that happens when a user tries to access the site whilst banned

--\ mediagoblin/user_pages/forms.py
--| Added important translate function where I had text

--\ mediagoblin/user_pages/lib.py
--| Renamed functiion for clarity

--\ mediagoblin/user_pages/views.py
--| Added the user_not_banned decorator to every view

--\ mediagoblin/views.py
--| Added the user_not_banned decorator

--\ mediagoblin/moderation/forms.py
--| Created this new file

--\ mediagoblin/templates/mediagoblin/banned.html
--| Created this new file
--| This is the page which people are redirected to when they access the site
  | while banned

11 years agoFixing docs: git submodule update, not git submodule fetch!
Christopher Allan Webber [Mon, 15 Jul 2013 02:05:01 +0000 (21:05 -0500)]
Fixing docs: git submodule update, not git submodule fetch!

This commit sponsored by Charles Combs.  Thank you!

11 years agoSkip the openid tests if the openid module is not installed.
Christopher Allan Webber [Sun, 14 Jul 2013 16:23:52 +0000 (11:23 -0500)]
Skip the openid tests if the openid module is not installed.

This commit sponsored by Brandon Smith.  Thank you!

11 years agoDocumenting the media_manager fetching hook
Christopher Allan Webber [Fri, 12 Jul 2013 22:13:48 +0000 (17:13 -0500)]
Documenting the media_manager fetching hook

This commit sponsored by Christian Corrodi.  Thank you!

11 years agoSwitching the hook 'get_media_manager' to a more "directed" tuple-hook
Christopher Allan Webber [Fri, 12 Jul 2013 22:04:08 +0000 (17:04 -0500)]
Switching the hook 'get_media_manager' to a more "directed" tuple-hook

By switching this to a tuple that includes the media type in the key
itself, this requires iteration and execution of functions that
"check" that they are the right type.

This commit sponsored by Greg Grossmeier.  Thanks buddy! :)

11 years agodocumenting the new media_type plugins and available hooks
Rodney Ewing [Fri, 12 Jul 2013 18:57:16 +0000 (11:57 -0700)]
documenting the new media_type plugins and available hooks

11 years agoMerge branch 'rodney757-media_plugins'
Christopher Allan Webber [Fri, 12 Jul 2013 21:24:36 +0000 (16:24 -0500)]
Merge branch 'rodney757-media_plugins'

Conflicts:
mediagoblin.ini
mediagoblin/tests/test_mgoblin_app.ini

11 years agoFix the last bit preventing all the unit tests from passing in media types->plugins
Christopher Allan Webber [Fri, 12 Jul 2013 20:52:20 +0000 (15:52 -0500)]
Fix the last bit preventing all the unit tests from passing in media types->plugins

The last commit was also small, so Jeff Moe gets... two!  Two sponsored commits!
Ah ah ah. </count_voice>

11 years agoSwitch the import of the image media manager over to the new class
Christopher Allan Webber [Fri, 12 Jul 2013 19:53:10 +0000 (14:53 -0500)]
Switch the import of the image media manager over to the new class

This helps resolve one of the remaining issues with the tests for the
media type pluginification.

This commit sponsored by Jeffrey Moe.  Thanks Jeff!  Lulzbot rocks!

11 years agoChanging the information spat out while printing from media types->plugins
Christopher Allan Webber [Fri, 12 Jul 2013 19:16:47 +0000 (14:16 -0500)]
Changing the information spat out while printing from media types->plugins

Previously it called even plugins media types.  Ha!

This commit sponsored by Jon Merkley.  Thank you!

11 years agoPatch by Strum. Remove redundent tool-tips from Stl media_type
Rodney Ewing [Fri, 12 Jul 2013 16:51:42 +0000 (09:51 -0700)]
Patch by Strum. Remove redundent tool-tips from Stl media_type

11 years agoPatch by pythonsnake. Make mediagoblin.ini comments more helpful.
Rodney Ewing [Fri, 12 Jul 2013 16:32:50 +0000 (09:32 -0700)]
Patch by pythonsnake. Make mediagoblin.ini comments more helpful.

11 years agomake change_pass page autofocus
Rodney Ewing [Thu, 11 Jul 2013 23:33:33 +0000 (16:33 -0700)]
make change_pass page autofocus

11 years agoforgot to render errors
Rodney Ewing [Thu, 11 Jul 2013 23:21:35 +0000 (16:21 -0700)]
forgot to render errors

11 years agochange to class instead of id to work with firefox
Rodney Ewing [Wed, 26 Jun 2013 15:45:59 +0000 (08:45 -0700)]
change to class instead of id to work with firefox

11 years agofix for boolean fields
Rodney Ewing [Wed, 26 Jun 2013 15:29:03 +0000 (08:29 -0700)]
fix for boolean fields

11 years agoupdated to new render_divs macro
Rodney Ewing [Tue, 25 Jun 2013 23:37:28 +0000 (16:37 -0700)]
updated to new render_divs macro

11 years agosave “stay_logged_in” in the session
Jakob Kramer [Wed, 22 May 2013 12:51:12 +0000 (14:51 +0200)]
save “stay_logged_in” in the session

Since sessions are rebuilt, e.g. when you try to post a blank
comment and therefore receive an error message, the session will
be overwritten without the old max_age.

11 years agoadd login option: stay_logged_in
Jakob Kramer [Thu, 9 May 2013 22:40:13 +0000 (00:40 +0200)]
add login option: stay_logged_in

As proposed in issue #354; it adds an attribute max_age
to mediagoblin.tools.session.Session  that is passed to
response.set_cookie;  max_age is set to 30  days if the
checkbox is selected

11 years agoPatch submitted by mrb.
Rodney Ewing [Thu, 11 Jul 2013 16:37:38 +0000 (09:37 -0700)]
Patch submitted by mrb.

Fix to link to the pubsub hub for atom_feed 'by tag'.

Added 'rel': 'alternate' and 'type': 'text/html' to 'atomlinks'

11 years agoPatch by Strum. Ticket #451 - Convert all mongokit style .find, .find_one, .one calls...
Rodney Ewing [Thu, 11 Jul 2013 21:17:50 +0000 (14:17 -0700)]
Patch by Strum. Ticket #451 - Convert all mongokit style .find, .find_one, .one calls over to SQLAlchemy queries

11 years agofixes the inability to upload non ascii filenames, werkzeug strips all non ascii...
dunkyp [Tue, 6 Nov 2012 17:47:48 +0000 (17:47 +0000)]
fixes the inability to upload non ascii filenames, werkzeug strips all non ascii chars and returns an empty string. This checks if the filename contains non asciis and if it does generates a uuid for filename. Also the request version of filename is used for generating alternative title for upload

cherry-picked from dunkyp. fixed conflicts and missing import.

11 years agoshould use media.slug_or_id incase a MediaEntry doesn't have a slug
Rodney Ewing [Thu, 11 Jul 2013 19:34:43 +0000 (12:34 -0700)]
should use media.slug_or_id incase a MediaEntry doesn't have a slug

11 years agoRevert "remove the list from response.vary. not sure why I was getting an error using...
Christopher Allan Webber [Wed, 10 Jul 2013 22:58:30 +0000 (17:58 -0500)]
Revert "remove the list from response.vary. not sure why I was getting an error using openid without it, but everything seems to be working fine now"

This reverts commit 05ceada051dad011bb9b3e1c93fb42b2d9875939.

It turns out the reason for this in the first place was werkzeug
backwards compatibility.

11 years agoMerge remote-tracking branch 'refs/remotes/rodney757/misc'
Christopher Allan Webber [Wed, 10 Jul 2013 22:50:14 +0000 (17:50 -0500)]
Merge remote-tracking branch 'refs/remotes/rodney757/misc'

11 years agoA few small formatting fixes on the release notes
Christopher Allan Webber [Wed, 10 Jul 2013 22:41:16 +0000 (17:41 -0500)]
A few small formatting fixes on the release notes

11 years agoMerge branch 'release-0.4.1'
Christopher Allan Webber [Wed, 10 Jul 2013 22:40:57 +0000 (17:40 -0500)]
Merge branch 'release-0.4.1'

Conflicts:
mediagoblin/_version.py

11 years agoUpdating docs regarding pulling in and fetching git submodules
Christopher Allan Webber [Wed, 10 Jul 2013 21:29:50 +0000 (16:29 -0500)]
Updating docs regarding pulling in and fetching git submodules

We use this for PDF.js now... we should reference that.

This commit sponsored by Bonnie King.  Thanks!

11 years agoFix by Rodney Ewing so render_http_exception works with newer Werkzeug versions.
Christopher Allan Webber [Sat, 22 Jun 2013 17:25:31 +0000 (12:25 -0500)]
Fix by Rodney Ewing so render_http_exception works with newer Werkzeug versions.

This commit back-cherry-picked from current master for the 0.4.1 fix release.

11 years agoPyTest needs to be >= 2.3.1
Christopher Allan Webber [Wed, 10 Jul 2013 18:34:49 +0000 (13:34 -0500)]
PyTest needs to be >= 2.3.1

11 years agoneed to use .get('messages') to not get a keyerror
Rodney Ewing [Wed, 10 Jul 2013 18:08:28 +0000 (11:08 -0700)]
need to use .get('messages') to not get a keyerror

11 years agoremove the list from response.vary. not sure why I was getting an error using openid...
Rodney Ewing [Wed, 10 Jul 2013 17:37:13 +0000 (10:37 -0700)]
remove the list from response.vary. not sure why I was getting an error using openid without it, but everything seems to be working fine now

11 years agoonly check password if there is a store_hash
Rodney Ewing [Mon, 8 Jul 2013 23:27:43 +0000 (16:27 -0700)]
only check password if there is a store_hash

11 years agoRelease notes v0.4.1 ... fixes serious issue with conversion via libreoffice.
Christopher Allan Webber [Wed, 10 Jul 2013 16:41:29 +0000 (11:41 -0500)]
Release notes v0.4.1 ... fixes serious issue with conversion via libreoffice.

This commit sponsored by William Linna.  Thank you!

11 years agoFixing bug that effectively broke document support in 0.4.0.. how embarassing :(
Christopher Allan Webber [Wed, 10 Jul 2013 13:45:18 +0000 (08:45 -0500)]
Fixing bug that effectively broke document support in 0.4.0.. how embarassing :(

This fix sponsored by Christophe Drevet.  Thank you!

11 years agoMention setup.py develop --upgrade also in release notes.
Christopher Allan Webber [Wed, 10 Jul 2013 00:40:04 +0000 (19:40 -0500)]
Mention setup.py develop --upgrade also in release notes.

This commit sponsored by Christoph Schumacher.  Thank you!

11 years agoI just added the attribution for the clipboard image to the code.
tilly-Q [Mon, 8 Jul 2013 18:31:28 +0000 (14:31 -0400)]
I just added the attribution for the clipboard image to the code.

11 years agoThis update I mostly did work on the templates for the admin pages. I did a co-
tilly-Q [Mon, 8 Jul 2013 18:20:28 +0000 (14:20 -0400)]
This update I mostly did work on the templates for the admin pages. I did a co-
-uple other small changes. I changed the information around the media processi-
ng panel to be more specific, since it was written when it was the only admin
page. Git didn't catch this, but I renamed the templates, so mediagoblin/templ-
ates/admin/user.html now referrs to the page which shows the details of a spec-
ific user. The list view pages are now named ELEMENT_panel.html(ie. user_panel)
I also added a column reported_user_id to the ReportBase table, and had to add
to Report filing to make sure that column gets created. Also I moved the report
media button (on a media page) to the sidebar, though it still needs some form-
atting

--\ mediagoblin/static/images/icon_clipboard.png
--| Added this image for use in template mediagoblin/admin/report.html.
--| Distributed by the GNOME project http://www.gnome.org
--| Under a GNU LGPL v.3 or Creative Commons BY-SA 3.0 license.
--| I'm still trying to figure out the appropriate way to attribute this in
  | the code

--\ mediagoblin/templates/mediagoblin/admin/media_panel.html
--| This template is actually the template formerly know as media.html. I
  | renamed it for clarity

--\ mediagoblin/templates/mediagoblin/admin/report_panel.html
--| This template is actually the template formerly know as report.html. I
  | renamed it for clarity

--\ mediagoblin/templates/mediagoblin/admin/user_panel.html
--| This template is actually the template formerly know as user.html. I renam-
  | -ed it for clarity

--\ mediagoblin/templates/mediagoblin/utils/report.html
--| This template is included in the media_home page. It is the report media
  | button. I figured I'd write it like this in case it got more complicated.

--\ mediagoblin/admin/routing.py
--| I changed the routing path /a/panel to /a/media for specificity

--\ mediagoblin/admin/views.py
--| I renamed admin_processing_panel to admin_media_processing_panel
--| I wrote a new view function admin_reports_detail
--| I wrote a new view function admin_users_detail

--\ mediagoblin/db/migrations.py
--| I added in the column reported_user_id to the ReportBase_v0 class

--\ mediagoblin/db/models.py
--| I added in the column reported_user_id to the ReportBase class

--\ mediagoblin/static/css/base.css
--| I added in css classes to display a report. Right now, they are just echo-
  | -ing the ways comments are displayed, but with the link in another color

--\ mediagoblin/templates/mediagoblin/admin/report.html
--| Created this new template (although git doesn't realize it) to show the de-
  | -tails of a specific report, indicated in the URL

--\ mediagoblin/templates/mediagoblin/admin/user.html
--| Created this new template (although git doesn't realize it) to show the de-
  | -tails of a specific user, indicated in the URL

--\ mediagoblin/templates/mediagoblin/base.html
--| Redirected the link from /a/panel to /a/media

--\ mediagoblin/templates/mediagoblin/user_pages/media.html
--| Moved the media report button to the sidebar

--\ mediagoblin/user_pages/lib.py
--| Changed the creation of reports, so that they also assign a column for rep-
  | -orted_user_id.

11 years agoMerge remote-tracking branch 'remotes/lotusecho/trac_711_test_speed'
Christopher Allan Webber [Wed, 3 Jul 2013 19:07:11 +0000 (14:07 -0500)]
Merge remote-tracking branch 'remotes/lotusecho/trac_711_test_speed'

11 years agoFix missing quote
Christopher Allan Webber [Wed, 3 Jul 2013 19:06:22 +0000 (14:06 -0500)]
Fix missing quote

11 years agochanged hook name to reuse with persona
Rodney Ewing [Wed, 3 Jul 2013 15:09:06 +0000 (08:09 -0700)]
changed hook name to reuse with persona

11 years agouse template hooks instead of hardcoding in templates
Rodney Ewing [Wed, 3 Jul 2013 14:16:31 +0000 (07:16 -0700)]
use template hooks instead of hardcoding in templates

11 years agoforgot to pass request.form into LoginForm class
Rodney Ewing [Wed, 26 Jun 2013 19:53:02 +0000 (12:53 -0700)]
forgot to pass request.form into LoginForm class

11 years agotypo
Rodney Ewing [Wed, 26 Jun 2013 19:44:37 +0000 (12:44 -0700)]
typo

11 years agofixed openid store cleanupAssociations
Rodney Ewing [Wed, 26 Jun 2013 19:43:12 +0000 (12:43 -0700)]
fixed openid store cleanupAssociations

11 years agoremoved openid/lib, since the get forms functions were not needed for persona plugin
Rodney Ewing [Wed, 26 Jun 2013 19:20:51 +0000 (12:20 -0700)]
removed openid/lib, since the get forms functions were not needed for persona plugin

11 years agomerge --squash openid branch to take care of a false merge commit in the
Rodney Ewing [Wed, 26 Jun 2013 18:20:50 +0000 (11:20 -0700)]
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

11 years agoThis was a simple commit. I changed all references to Groups into Privileges so
tilly-Q [Wed, 3 Jul 2013 18:46:21 +0000 (14:46 -0400)]
This was a simple commit. I changed all references to Groups into Privileges so
as to not conflict with the new federated groups which are also being written.
I also fixed up some of the code in the user_in_group/user_has_privilege decor-
ator. Users are now assigned the default privileges when they sign up, and ass-
iged active once they are activated. I updated the gmg command makeadmin to use
my groups as well. Lastly, I added the decorator to various views, requiring th-
at users belong to appropriate groups to access pages.

--\ mediagoblin/auth/tools.py
--| Added code to assign new users to default privileges

--\ mediagoblin/auth/views.py
--| Added code to assign users to u'active' privilege once the email
  | verification is complete

--\ mediagoblin/db/migrations.py
--| Renamed Group class to Privilege class

--\ mediagoblin/db/models.py
--| Renamed Group class to Privilege class

--\ mediagoblin/decorators.py
--| Renamed function based on the Group->Privilege change
--| Rewrote the function to be, ya know, functional

--\ mediagoblin/gmg_commands/users.py
--| Changed the 'makeadmin' command to add the target user to the admin
  | privilege group as well as affecting 'is_admin' column

--\ mediagoblin/submit/views.py
--| Added the requirement that a user has the 'uploader' privilege in order
  | to submit new media.

--\ mediagoblin/user_pages/views.py
--| Added the requirement that a user has the 'commenter' privilege in order
  | to make a comment.
--| Added the requirement that a user has the 'reporter' privilege in order
  | to submit new reports.
--| Got rid of some vestigial code in the file_a_report function.

11 years agofixing the config section we pull things out of for basic_auth
Christopher Allan Webber [Wed, 3 Jul 2013 13:09:48 +0000 (08:09 -0500)]
fixing the config section we pull things out of for basic_auth

11 years agoadded a warning for old media types
Rodney Ewing [Tue, 2 Jul 2013 16:26:12 +0000 (09:26 -0700)]
added a warning for old media types

11 years agoconverted video media_type to plugin
Rodney Ewing [Tue, 2 Jul 2013 15:57:10 +0000 (08:57 -0700)]
converted video media_type to plugin

11 years agoconverted stl media_type to plugin
Rodney Ewing [Tue, 2 Jul 2013 15:52:33 +0000 (08:52 -0700)]
converted stl media_type to plugin

11 years agoconverted pdf media_type to plugin
Rodney Ewing [Tue, 2 Jul 2013 15:48:47 +0000 (08:48 -0700)]
converted pdf media_type to plugin

11 years agoconverted audio media_type to plugin
Rodney Ewing [Tue, 2 Jul 2013 15:43:14 +0000 (08:43 -0700)]
converted audio media_type to plugin

11 years agotypo in image supported_filetypes
Rodney Ewing [Tue, 2 Jul 2013 15:14:40 +0000 (08:14 -0700)]
typo in image supported_filetypes

11 years agoconverted ascii media_type to plugin
Rodney Ewing [Tue, 2 Jul 2013 15:09:37 +0000 (08:09 -0700)]
converted ascii media_type to plugin

11 years agofixed some typos and enabled media_type plugins in tests
Rodney Ewing [Tue, 2 Jul 2013 14:54:38 +0000 (07:54 -0700)]
fixed some typos and enabled media_type plugins in tests

11 years agoremoved sniff_handler from Imange Media Manager class
Rodney Ewing [Tue, 2 Jul 2013 14:20:20 +0000 (07:20 -0700)]
removed sniff_handler from Imange Media Manager class

11 years agoremoved CompatMediaManager() since all core media_types are classes
Rodney Ewing [Tue, 2 Jul 2013 00:23:47 +0000 (17:23 -0700)]
removed CompatMediaManager() since all core media_types are classes

11 years agomodified gmg to use plugin media_types and converted image media_type to new plugin...
Rodney Ewing [Tue, 2 Jul 2013 00:19:22 +0000 (17:19 -0700)]
modified gmg to use plugin media_types and converted image media_type to new plugin style

11 years agoMore clarifications on what ./bin/gmg dbupdate does on each run.
Christopher Allan Webber [Fri, 28 Jun 2013 16:51:40 +0000 (11:51 -0500)]
More clarifications on what ./bin/gmg dbupdate does on each run.

This commit sponsored by Jessica Howard.  Thanks, sistah!

11 years agoSome documentation on how to write database migrations.
Christopher Allan Webber [Fri, 28 Jun 2013 15:27:06 +0000 (10:27 -0500)]
Some documentation on how to write database migrations.

This commit sponsored by Andrei Cristian Petcu.  Thanks!

11 years agoIn this commit, I have made a few changes and tightened up some of my models
tilly-Q [Thu, 27 Jun 2013 21:13:42 +0000 (14:13 -0700)]
In this commit, I have made a few changes and tightened up some of my models
code. I added in two major pieces of functionality: table foundations and a
decorator to confirm whether or not a user is a member of a certain group.

Table Foundations are default rows that should be present in a given table as
soon as the database is initialized. For example, I am using these to populate
the core__groups table with all of the necessary groups ('moderator', 'com-
menter', etc). Right now, this is achieved by adding a dictionary of parameters
(with the parameters as lists) to the constant FOUNDATIONS in
mediagoblin.db.models. The keys to this dictionary are uninstantiated classes.
The classes which require foundations also have must have a constructor so that
the list of parameters can be passed appropriately like so:
        Model(*parameters)
In order to implement these foundations, I added the method populate_table_fou-
-ndations to MigrationManager in mediagoblin.db.migration_tools.

The decorator, called user_in_group, accepts as a parameter a unicode string,
and then decides whether to redirect to 403 or let the user access the page. The
identifier is the Group.group_name string, because I believe that will allow for
the most readable code.

I also added in the simple decorator require_admin_login.

In terms of tightening up my code, I made many minor changes to my use of white
space and made a few small documentation additions. I removed a vestigial class
(ReportForm) from mediagoblin.user_pages.forms. I moved all of my migrations in-
to one registered Migration.

Setting up Foundations
==============================

--\ mediagoblin/db/migration_tools.py
--| created: MigrationManager.populate_table_foundations
--| modified: MigrationManager.init_or_migrate to run
  |     self.populate_table_foundations on init

--\ mediagoblin/db/models.py
--| created: FOUNDATIONS
----| created: group_foundations

Working With Permissions
==============================
--\ mediagoblin/decorators.py
--| created: user_in_group
--| created: require_admin_login

--\ mediagoblin/user_pages/views.py
--| modified: added decorator user_in_group to file_a_report

--\ mediagoblin/admin/views.py
--| modified: added decorator require_admin_login to all views functions

General Code Tidying
=============================

--/ mediagoblin/admin/views.py
--/ mediagoblin/user_pages/forms.py
--/ mediagoblin/db/models.py
--/ mediagoblin/user_pages/lib.py
--/ mediagoblin/user_pages/views.py
--/ mediagoblin/db/migrations.py

11 years agoUpdated comments for run_all_migrations and config_spec.ini.
Emily O'Leary [Thu, 27 Jun 2013 21:05:25 +0000 (17:05 -0400)]
Updated comments for run_all_migrations and config_spec.ini.

11 years agotypo
Rodney Ewing [Wed, 26 Jun 2013 14:39:17 +0000 (07:39 -0700)]
typo

11 years agodo the label thing only for boolean fields
Rodney Ewing [Wed, 26 Jun 2013 14:36:11 +0000 (07:36 -0700)]
do the label thing only for boolean fields

11 years agomade edit_account to autofocus on the first field
Rodney Ewing [Wed, 26 Jun 2013 13:45:36 +0000 (06:45 -0700)]
made edit_account to autofocus on the first field

11 years agoImproved test runtime from 352 seconds to 59 seconds by implementing an in-memory...
Emily O'Leary [Wed, 26 Jun 2013 00:57:50 +0000 (20:57 -0400)]
Improved test runtime from 352 seconds to 59 seconds by implementing an in-memory sqlite DB and including an option to run migrations on this newly created database by adding a config option called run_migrations to the config_spec and passing it along in app.py to the setup_database function.

11 years agoadded feature to render_divs where if field.label == '' then it will render form...
Rodney Ewing [Tue, 25 Jun 2013 22:50:31 +0000 (15:50 -0700)]
added feature to render_divs where if field.label == '' then it will render form.description the same a render_label

11 years agoExplain about sqlite dropping the constraint and why we're adding it back manually.
Christopher Allan Webber [Tue, 25 Jun 2013 22:12:33 +0000 (17:12 -0500)]
Explain about sqlite dropping the constraint and why we're adding it back manually.

11 years agocleanup after merge
Rodney Ewing [Tue, 25 Jun 2013 20:43:33 +0000 (13:43 -0700)]
cleanup after merge

11 years agoMerge remote-tracking branch 'upstream/master' into auth
Rodney Ewing [Tue, 25 Jun 2013 20:37:21 +0000 (13:37 -0700)]
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

11 years agotypo
Rodney Ewing [Tue, 25 Jun 2013 20:22:56 +0000 (13:22 -0700)]
typo

11 years agoAdd a bit more docs to plugin configuration
Christopher Allan Webber [Tue, 25 Jun 2013 18:25:25 +0000 (13:25 -0500)]
Add a bit more docs to plugin configuration

This commit sponsored by Michael Rauch.  Thank you!

11 years agoThis is the first stage of my project of implenting admin/moderator functiona-
tilly-Q [Mon, 24 Jun 2013 23:35:31 +0000 (16:35 -0700)]
This is the first stage of my project of implenting admin/moderator functiona-
lity. At this point, I have finished all the of basic work with the models! I
still need to do some tightening of their documentation, but they seem to be
working well.

Working with Models
========================================

--\ mediagoblin/db/models.py
--| Added in the Report model and table. This model is strictly a parent
----| Added in the CommentReport model which holds information about a report
    | filed against a comment. This class inherits from Report.
----| Added in the MediaReport model which holds information about a report f-
    | -iled against a media entry. This class inherits from Report.
--| Added in a UserBan model and table. This model is in a one to one relatio-
  | -nship with User. This object acts as a marker for whether a user is banned
  | or not.
--| Added in a Group model. These objects are in a many-to-many relationship
  | with User to explain which privileges a User has.
----| Added in GroupUserAssociation which is a table used to hold this many to
    | many relationship  between Group & User.

--\ mediagoblin/db/migrations.py
--| Added in the migrations for all of the additions to models
--| Added UserBan_v0
--| Added Report_v0
----| Added CommentReport_v0
----| Added MediaReport_v0
--| Added Group_v0
----| Added GroupUserAssociation_v0

Working with Templates, Views, and Routing
===============================================

>>> Reporting a Comment or a MediaEntry

--\ mediagoblin/user_pages/views.py
--| Added in the function file_a_report to allow user to file reports against
  | MediaEntries or Comments. Handles GET and POST requests.
--| Added in the function file_a_comment_report which uses file_a_report but
  | also catches appropriate information for comment_ids. I may be able to do
  | this more eloquently with decorators.

--\ mediagoblin/user_pages/routing.py
--| Added in route 'mediagoblin.user_pages.media_home.report_media'
  | (linked to address /u/<user>/m/<media>/report/ )
--| Added in route ''mediagoblin.user_pages.media_home.report_comment'
  | (linked to address /u/<user>/m/<media>/c/<comment>/report/ )

--\ mediagoblin/templates/mediagoblin/user_pages/report.html
--| I created this file to handle the filing of a report.

--\ mediagoblin/templates/mediagoblin/user_pages/media.html
--| Modified this file to add in links allowing users to report either media
  | or comments.

--\ mediagoblin/user_pages/lib.py
--| Added in build_report_form which processes data as either a CommentReport or
  | a MediaReport depending on which parameters are present

--\ mediagoblin/user_pages/forms.py
--| Added in CommentReportForm
--| Added in MediaReportForm
--| note: ReportForm is vestigial to an earlier strategy I used and I'll remove it
  | promptly

--\ mediagoblin/decorators.py
--| Added in 'get_media_comment_by_id' for use in mediagoblin/user_pages/views.py

>>> New Admin Panels

--\ mediagoblin/admin/views.py
--| Added in the function admin_users_panel
--| Added in the function admin_reports_panel

--\ mediagoblin/admin/routing.py
--| Added in route 'mediagoblin.admin.users'
  | (linked to address '/a/users')
--| Added in route 'mediagoblin.admin.reports'
  | (linked to address '/a/reports/')

--\ mediagoblin/templates/admin/user.html
--| Created this file as a template for monitoring users

--\ mediagoblin/templates/admin/report.html
--| Created this file as a template for monitoring reports filed against media or
  | comments

11 years agoReverting "No more of this find_packages nonsense."
Christopher Allan Webber [Mon, 24 Jun 2013 14:10:48 +0000 (09:10 -0500)]
Reverting "No more of this find_packages nonsense."

This reverts commit b75eb88fabdac4a9fdc863969ec9472110732607.

11 years agoAdding a docstring to fixture_media_entry
Christopher Allan Webber [Sat, 22 Jun 2013 22:40:12 +0000 (17:40 -0500)]
Adding a docstring to fixture_media_entry

It's not complete, but it makes clearer how to avoid errors with
fake_upload :)

This commit sponsored by Harper Sanford.  Thank you!

11 years agoFix the data integrity bug in test_misc.
Christopher Allan Webber [Sat, 22 Jun 2013 22:37:30 +0000 (17:37 -0500)]
Fix the data integrity bug in test_misc.

It turns out this has to do with some additions to the fixture adding
of media entries.  Since the new fake_upload field is True by default,
adding multiple entries that have media_files at once meant that
multiple additions of FileKeynames would be added at once if they were
not saved at the same time.  Tricky!

Thankfully, Elrond helped us figure this one out.  Thanks, Elrond :)

And thanks also to Aapo Rantalainen for sponsoring this commit!

11 years agoPadding on the header-dropdown area
Christopher Allan Webber [Sat, 22 Jun 2013 21:19:58 +0000 (16:19 -0500)]
Padding on the header-dropdown area

This helps make it a bit clearer that things are "contained inside"
the header dropdown area.

11 years agoMerge remote-tracking branch 'refs/remotes/joar/notifications'
Christopher Allan Webber [Sat, 22 Jun 2013 21:13:41 +0000 (16:13 -0500)]
Merge remote-tracking branch 'refs/remotes/joar/notifications'

Conflicts:
mediagoblin/db/migrations.py

11 years agoFix by Rodney Ewing so render_http_exception works with newer Werkzeug versions.
Christopher Allan Webber [Sat, 22 Jun 2013 17:25:31 +0000 (12:25 -0500)]
Fix by Rodney Ewing so render_http_exception works with newer Werkzeug versions.

11 years agoRemoving the "enter your password to change your email" bit.
Christopher Allan Webber [Fri, 21 Jun 2013 22:24:33 +0000 (17:24 -0500)]
Removing the "enter your password to change your email" bit.

A good idea, though it feels fairly clumsy in the form, and I think if
you're logged in you can already sabotage the user pretty well.

This commit sponsored by Sergey Matveev.  Thanks!

11 years agochanges after cwebb's review
Rodney Ewing [Fri, 21 Jun 2013 21:14:40 +0000 (14:14 -0700)]
changes after cwebb's review

11 years agoMerge remote-tracking branch 'refs/remotes/rodney757-github/mail'
Christopher Allan Webber [Fri, 21 Jun 2013 20:50:36 +0000 (15:50 -0500)]
Merge remote-tracking branch 'refs/remotes/rodney757-github/mail'

11 years agoIndenting some stuff in pdf.html and wrapping width and height parameters in quotes
Christopher Allan Webber [Thu, 20 Jun 2013 23:14:14 +0000 (18:14 -0500)]
Indenting some stuff in pdf.html and wrapping width and height parameters in quotes

11 years agopdf: remove two unused files (we use pdf.js in an iframe, no need for our own bastard...
Alon Levy [Thu, 20 Jun 2013 22:51:47 +0000 (01:51 +0300)]
pdf: remove two unused files (we use pdf.js in an iframe, no need for our own bastard copy)

Signed-off-by: Alon Levy <alevy@redhat.com>
11 years agoWhat is models_v0.py? An explaination!
Christopher Allan Webber [Thu, 20 Jun 2013 17:08:20 +0000 (12:08 -0500)]
What is models_v0.py?  An explaination!

This commit sponsored by Alex Hannan-Joyner.  Thanks!

11 years agoNow in dev mode on 0.4.1
Christopher Allan Webber [Tue, 18 Jun 2013 03:50:31 +0000 (22:50 -0500)]
Now in dev mode on 0.4.1

11 years agoMediaGoblin v0.4.0!
Christopher Allan Webber [Mon, 17 Jun 2013 01:32:28 +0000 (20:32 -0500)]
MediaGoblin v0.4.0!