223 Commits

Author SHA1 Message Date
Rodney Ewing
6fc8aaf65f add reprocess_all function. still need to add code to reprocess all failed entries 2013-08-16 15:30:13 -07:00
Rodney Ewing
99b34c4ce6 Added a set_media_type function that has checks to only reprocess one media_type at a time 2013-08-16 15:30:13 -07:00
Rodney Ewing
c30714805b Beginnings of a reprocess command 2013-08-16 15:30:13 -07:00
Rodney Ewing
262c789754 Throw an error if there are unrecognized arguments 2013-08-16 15:30:13 -07:00
Rodney Ewing
aa387fc57e use parser.parse_known_args() instead of parser.parse_args() 2013-08-16 15:30:12 -07:00
tilly-Q
8394febbe1 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
2013-08-13 18:38:00 -04:00
Rodney Ewing
31de493e41 typo fix in foundations branch 2013-08-02 07:31:09 -07:00
tilly-Q
9d6e453f8f 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.
2013-07-31 20:11:26 -04:00
tilly-Q
52a355b275 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
2013-07-29 18:40:19 -04:00
tilly-Q
08cd10d84f 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.
2013-07-29 17:15:29 -04:00
tilly-Q
6bba33d7e6 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
2013-07-17 16:16:07 -04:00
Christopher Allan Webber
5305fee13b Merge branch 'rodney757-media_plugins'
Conflicts:
	mediagoblin.ini
	mediagoblin/tests/test_mgoblin_app.ini
2013-07-12 16:24:36 -05:00
Rodney Ewing
44082b12d8 Patch by Strum. Ticket #451 - Convert all mongokit style .find, .find_one, .one calls over to SQLAlchemy queries 2013-07-11 14:17:50 -07:00
Christopher Allan Webber
41a14c6efc Merge remote-tracking branch 'remotes/lotusecho/trac_711_test_speed' 2013-07-03 14:07:11 -05:00
tilly-Q
3fb96fc978 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.
2013-07-03 14:46:21 -04:00
Rodney Ewing
58a947578c modified gmg to use plugin media_types and converted image media_type to new plugin style 2013-07-02 07:21:44 -07:00
Emily O'Leary
6db23bd9b6 Updated comments for run_all_migrations and config_spec.ini. 2013-06-27 17:05:25 -04:00
Emily O'Leary
4a698535bc 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. 2013-06-25 20:57:50 -04:00
Rodney Ewing
9c2c9be79d moved bcrypt_gen_password_hash to basic_auth/tools and added gen_password_hash function to auth/__init__ 2013-05-24 16:52:48 -07:00
Christopher Allan Webber
9230968f7e Cleaning a bit: os.path.sep.join -> os.path.join 2013-05-23 13:33:08 -05:00
Christopher Allan Webber
247759caa7 docstring update: link theme... and plugins! 2013-05-23 13:33:08 -05:00
Christopher Allan Webber
6afc8364e0 Generalize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins
We've moved the module... probably I'll re-add theme just to give a
warning that this is deprecated.

This commit sponsored by Kevin Williams.  Thank you!
2013-05-23 13:33:08 -05:00
Christopher Allan Webber
df69695d9e Various fixes to plugin assetlinking command.
Actually trying to run the command helps figure out what needs to be
fixed :)

This commit sponsored by Justin Nichol.  Thank you!
2013-05-23 13:33:07 -05:00
Christopher Allan Webber
5ccb16ca20 Work towards getting plugin static linking/serving to work
- add link_plugin_assets.  For now, incorrectly running from
   ./bin/gmg theme assetlink... uh, will fix ;)
 - Update paste and config_spec.ini configs to handle the locations
   and serving of the plugins' static resources

This commit sponsored by Marko Dimjašević.  Thank you!
2013-05-23 13:33:07 -05:00
Christopher Allan Webber
0ae3829048 Fixing bug in dbupdate where it would explode on plugin that is missing MODELS or MIGRATIONS
The reason it blew up was because in the latter caught exception, it
wouldn't set models/migrations to an empty set, so it would actually
use the previous run's models/migrations!  That's what we get for
"leaky" variables on python for loops :)

This commit sponsored by Pascal Diogo Antunes.  Thank you!
2013-05-16 16:56:20 -05:00
Christopher Allan Webber
ea5fb2d9d4 Switch "sqlite_refcheck" keyword arg to "migrations" which Elrond thinks is cleaner
Also, if migrations is true, *explicitly* say that foreign key checking is off
2013-04-26 15:27:44 -05:00
Christopher Allan Webber
313b38f895 Don't turn on sqlite refcheck stuff during migrations 2013-04-26 15:09:03 -05:00
Christopher Allan Webber
a789b713f5 Switching non-forms back to using normal pass_to_ugettext 2013-04-24 16:40:30 -05:00
Aditi Mittal
665b9c420a Fix-bug-667-Use-lazy_pass_to_ugettext-for-forms. 2013-04-24 16:40:29 -05: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
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
Sebastian Spaeth
6eddc3b75e Move db.sql.open to db.open
Now that mongo has been ripped out and sqlalchemy is already providing
the database abstraction, there is no need to hide everything in the sql
module. Transition db.sql.open to db.open and adapt all direct importers.
2012-12-25 20:09:43 +01:00
Sebastian Spaeth
bc142abc55 RIP out mongo
Since sqlalchemy is providing our database abstraction and we have
moved away from Mongo as the underlying database, it is now time to
simplify things and rip out mongo. This provides the bulk of the
changes, and can stand on its own. There are some followup tasks
that can be done, such as removing now unneeded abstraction layers,
e.g. db.sql.fake.py
2012-12-25 20:06:03 +01:00
Elrond
b39d1f2351 Mongo removal: Remove the validate=True arg to obj.save()
all callers were forced to use validate=True anyway. So
remove this useless stuff.
2012-12-24 00:07:24 +01:00
Sebastian Spaeth
4d9b426ccf Try ipython-based shell first, falling back to plain shell
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2012-12-19 10:33:29 +01:00
Christopher Allan Webber
b28005984c makeadmin and changepasswd had swapped help text 2012-12-18 16:46:20 -06:00
Joar Wandborg
30520c92cc Fixed tests
- Adapt tests to new global_config arg for run_dbupdate
- Account for [plugins] not being set in config
2012-09-15 17:54:34 +02:00
Joar Wandborg
f46e2a4db9 Add OAuth models, plugin DB migrations, api_auth 2012-09-13 20:38:59 +02:00
Aleksej
9d3e56d500 replaced os.path.split()[0] with os.path.dirname() and corrected a couple of comments 2012-08-13 16:07:58 +04:00
Christopher Allan Webber
5257f5f554 Duplication of rstrip unnecessary in link_assets function
Thanks for catching AVRS!
2012-08-12 12:49:14 -04:00
Christopher Allan Webber
777908759c Setup the scaffolding for theme installing, but it doesn't work yet 2012-07-14 13:32:11 -05:00
Christopher Allan Webber
3da44aeba1 Break the asset linking code off into a reusable function
In the future, the install command should be able to use that as well.
2012-07-14 13:23:12 -05:00
Christopher Allan Webber
8a22617ffe asset linking command now works 2012-07-14 12:55:14 -05:00
Christopher Allan Webber
111a97524a Start of the ./bin/gmg theme assetlink command.
Mostly works but doesn't handle all the places it could break.
2012-07-14 12:55:14 -05:00
Brett Smith
a00ac32045 Make sure MigrationManagers always get Unicode names.
If we fail to do this, SQLAlchemy complains that we're binding a
non-Unicode value to a Unicode column.
2012-07-04 10:54:44 -04:00
Will Kahn-Greene
a855e92a98 Fix problems from pyflakes output 2012-06-03 15:53:34 -04:00
Christopher Allan Webber
088644a80b Deprecate ./bin/gmg migrate.
Keeping it around just in case someone manually wants to migrate
before running the convert thing or... something.  Probably silly.
2012-04-29 12:08:44 -05:00