44 Commits

Author SHA1 Message Date
tilly-Q
dfd66b789c This was a big commit! I included lots of documentation below, but generally I
did a few things. I wrote many many many new tests, either in old test files or
in the three new test files I made. I also did some code-keeping work, deleting
trailing whitespace and deleting vestigial code. Lastly, I fixed the parts of
the code which I realized were broken thru the process of running tests.

===============================================================================
 Deleted trailing whitespace:
===============================================================================
--\  mediagoblin/decorators.py
--\  mediagoblin/auth/tools.py
--\  mediagoblin/db/migrations.py
--\  mediagoblin/db/models.py
--\  mediagoblin/gmg_commands/users.py
--\  mediagoblin/moderation/forms.py
--\  mediagoblin/moderation/tools.py
--\  mediagoblin/moderation/views.py
--\  mediagoblin/templates/mediagoblin/moderation/media_panel.html
--\  mediagoblin/templates/mediagoblin/moderation/report.html
--\  mediagoblin/templates/mediagoblin/moderation/report_panel.html
--\  mediagoblin/templates/mediagoblin/moderation/user.html
--\  mediagoblin/templates/mediagoblin/moderation/user_panel.html
--\  mediagoblin/templates/mediagoblin/user_pages/report.html
--\  mediagoblin/templates/mediagoblin/utils/report.html
--\  mediagoblin/user_pages/lib.py
--\  mediagoblin/user_pages/views.py
===============================================================================
 Deleted Vestigial Code
===============================================================================
--\  mediagoblin/db/util.py
--\  mediagoblin/tests/test_notifications.py
===============================================================================
 Modified the Code:
===============================================================================
--\  mediagoblin/moderation/tools.py
--| Encapsulated the code around giving/taking away privileges into two
  | funtions.

--\  mediagoblin/moderation/views.py
--| Imported and used the give/take away privilege functions
--| Replaced 'require_admin_or_moderator_login' with
  |'user_has_privilege(u"admin")' for adding/taking away privileges, only
  | admins are allowed to do this.

--\  mediagoblin/templates/mediagoblin/banned.html
--| Added relevant translation tags
--| Added ability to display indefinite banning

--\  mediagoblin/templates/mediagoblin/user_pages/media.html
--| Made sure the add comments button was only visible for users with the
  | `commenter` privilege

--\  mediagoblin/tests/test_submission.py
--| Paroneayea fixed a DetachedInstanceError I was having with the our_user
  | function

--\  mediagoblin/tests/tools.py
--| Added a fixture_add_comment_report function for testing.

--\  mediagoblin/tools/response.py
--| Fixed a minor error where a necessary return statement was missing
--| Fit the code within 80 columns

--\  mediagoblin/user_pages/views.py
--| Added a necessary decorator to ensure that only users with the 'commenter'
  | privilege can post comments
===============================================================================
 Wrote new tests for an old test file:
===============================================================================
--\  mediagoblin/tests/test_auth.py
--| Added a new test to make sure privilege granting on registration happens
  | correctly

--\  mediagoblin/tests/test_modelmethods.py*
--| Added a test to ensure the User method has_privilege works properly
===============================================================================
 Wrote entirely new files full of tests:
===============================================================================
--\  mediagoblin/tests/test_moderation.py
--\  mediagoblin/tests/test_privileges.py
--\  mediagoblin/tests/test_reporting.py
===============================================================================
===============================================================================
NOTE: Any files I've marked with a * in this commit report, were actually subm-
itted in my last commit. I made that committ to fix an error I was having, so
they weren't properly documented in that report.
===============================================================================
===============================================================================
2013-08-29 13:47:50 -04:00
tilly-Q
2c901db023 This commit was just to fix a few of the errors with the merging and to
make sure that all of the previous tests work fine.
2013-08-20 15:24:29 -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
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
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
6174169786 cleanup after merge 2013-06-25 13:43:33 -07: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
e4deacd9c8 changes after cwebb's review 2013-06-21 14:14:40 -07:00
Rodney Ewing
54ef2c408b moved authentication_disabled to config_spec 2013-06-15 12:32:20 -07:00
Rodney Ewing
5101c469d7 changed no_auth to authentication_disabled in config 2013-06-11 14:30:38 -07:00
Rodney Ewing
8ce8faaf5d fixed a bug that was deleting the messages 2013-06-04 11:30:56 -07:00
Rodney Ewing
69b888c22c cleanup after merge 2013-05-29 13:23:26 -07:00
Rodney Ewing
342f06f7bd modified verification emails to use itsdangerous tokens 2013-05-29 13:23:26 -07:00
Rodney Ewing
8087f56b07 Merge remote-tracking branch 'upstream/master' into change_email
Conflicts:
	mediagoblin/auth/lib.py
2013-05-28 10:46:46 -07:00
Rodney Ewing
d90f44d2a4 cleanup 2013-05-28 09:28:59 -07:00
Rodney Ewing
bd7fe0c252 Merge remote-tracking branch 'upstream/master' into basic_auth
Conflicts:
	mediagoblin/auth/tools.py
	mediagoblin/auth/views.py
	mediagoblin/plugins/basic_auth/tools.py
2013-05-28 09:20:35 -07:00
Rodney Ewing
b85d9e9567 cleanup 2013-05-28 09:05:05 -07:00
Rodney Ewing
0578d8b31b Conflicts:
mediagoblin/auth/tools.py
	mediagoblin/auth/views.py
	mediagoblin/plugins/basic_auth/tools.py
2013-05-27 19:34:49 -07:00
Rodney Ewing
f9e032212d added a register_user function
cherry picked from rodney757 and fixed for out of order
picking.
2013-05-28 01:22:19 +02:00
Rodney Ewing
75fc93686d created a check_login_simple function
cherry-picked from rodney757, fixed few conflicts due to
out of order cherry-picking. Thanks to rodney757 for making
my idea even better.
2013-05-28 00:11:36 +02:00
Rodney Ewing
97aebda7de moved send_verification_email to auth/tools 2013-05-27 23:29:39 +02:00
Rodney Ewing
b1e02e0a70 modified get_user function to take kwargs instead of username 2013-05-27 11:14:08 -07:00
Rodney Ewing
f81206df31 no need for user might be email kwarg in check_login_simple 2013-05-27 10:38:43 -07:00
Rodney Ewing
0ccc722ddc Merge branch 'pre-auth' into basic_auth
Conflicts:
	mediagoblin/auth/tools.py
	mediagoblin/auth/views.py
	mediagoblin/plugins/basic_auth/tools.py
2013-05-27 09:04:53 -07:00
Rodney Ewing
f855efff87 moved fp_verification_email to auth/tools 2013-05-27 08:58:09 -07:00
Rodney Ewing
117a27a3aa created a check_login_simple function 2013-05-27 08:58:09 -07:00
Rodney Ewing
68cc79eb4a added a register_user function 2013-05-27 08:58:09 -07:00
Rodney Ewing
c6e46c6bd9 moved send_verification_email to auth/tools 2013-05-27 08:58:09 -07:00
Rodney Ewing
3b8c733b98 no need for check_login with the new check_login_simple function 2013-05-27 08:54:25 -07:00
Rodney Ewing
3bcdc49088 renamed lib to tools 2013-05-27 08:43:12 -07:00
Rodney Ewing
cdc6b571e3 cleanup after merge 2013-05-27 08:39:34 -07:00
Rodney Ewing
bcd10ad663 Merge branch 'pre-auth' into basic_auth
Conflicts:
	mediagoblin/auth/tools.py
	mediagoblin/auth/views.py
	mediagoblin/db/migrations.py
	mediagoblin/plugins/basic_auth/lib.py
	mediagoblin/plugins/httpapiauth/__init__.py
	mediagoblin/plugins/piwigo/views.py
2013-05-27 08:25:22 -07:00
Rodney Ewing
1d321f1c71 created a check_login_simple function 2013-05-25 07:59:03 -07:00
Rodney Ewing
310a44d57c added a register_user function 2013-05-24 18:16:53 -07:00
Rodney Ewing
92783bc1fd moved send_verification_email to auth/tools 2013-05-24 18:16:53 -07:00
Rodney Ewing
f339b76a4e moving forgot_password views back to gmg/auth and cleanup 2013-05-24 18:09:57 -07:00
Rodney Ewing
569873d8f0 changed occurances of form.data['whatever'] to form.whatever.data
Conflicts:
	mediagoblin/plugins/basic_auth/__init__.py
	mediagoblin/plugins/openid/__init__.py
2013-05-24 16:52:49 -07:00
Rodney Ewing
5784c12d79 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. 2013-05-24 16:52:49 -07:00
Rodney Ewing
c3e3882e39 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. 2013-05-24 16:52:49 -07:00
Rodney Ewing
c9dec8b3cc log a previously logged in user when switched to no_auth mode 2013-05-24 16:52:49 -07:00
Rodney Ewing
f644293ea8 changed from sys.exit() to raise AuthError for handling no_auth=false in config and no auth plugin present 2013-05-24 16:52:48 -07:00
Rodney Ewing
f65615eaf9 renamed hook as to no conflict with existing hook names 2013-05-24 16:52:48 -07:00
Rodney Ewing
744f1c83b9 add a check for authentication plugin on startup and respond according to no_auth config option. allows instance to be run w/o authentication 2013-05-24 16:52:48 -07:00
Rodney Ewing
7cb7653c64 moved normalize_user_or_email_field to auth/tools.py from auth/forms.py 2013-05-23 14:29:19 -07:00