Change codebase to query or create correct User model
The code base had many references to User.username and other specific to LocalUser attributes as that was the way it use to exist. This updates those to query on the generic User model but filtering by attributes on the LocalUser.
This commit is contained in:
parent
283e6d8b9f
commit
d88fcb03e2
@ -15,7 +15,6 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
from mediagoblin.db.models import User
|
|
||||||
from mediagoblin.decorators import require_active_login
|
from mediagoblin.decorators import require_active_login
|
||||||
from mediagoblin.tools.response import json_response
|
from mediagoblin.tools.response import json_response
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ from werkzeug.datastructures import FileStorage
|
|||||||
|
|
||||||
from mediagoblin.decorators import oauth_required, require_active_login
|
from mediagoblin.decorators import oauth_required, require_active_login
|
||||||
from mediagoblin.api.decorators import user_has_privilege
|
from mediagoblin.api.decorators import user_has_privilege
|
||||||
from mediagoblin.db.models import User, MediaEntry, MediaComment, Activity
|
from mediagoblin.db.models import User, LocalUser, MediaEntry, MediaComment, Activity
|
||||||
from mediagoblin.tools.federation import create_activity, create_generator
|
from mediagoblin.tools.federation import create_activity, create_generator
|
||||||
from mediagoblin.tools.routing import extract_url_arguments
|
from mediagoblin.tools.routing import extract_url_arguments
|
||||||
from mediagoblin.tools.response import redirect, json_response, json_error, \
|
from mediagoblin.tools.response import redirect, json_response, json_error, \
|
||||||
@ -45,7 +45,7 @@ def get_profile(request):
|
|||||||
can be found then this function returns a (None, None).
|
can be found then this function returns a (None, None).
|
||||||
"""
|
"""
|
||||||
username = request.matchdict["username"]
|
username = request.matchdict["username"]
|
||||||
user = User.query.filter_by(username=username).first()
|
user = User.query.filter(LocalUser.username==username).first()
|
||||||
|
|
||||||
if user is None:
|
if user is None:
|
||||||
return None, None
|
return None, None
|
||||||
@ -94,7 +94,7 @@ def user_endpoint(request):
|
|||||||
def uploads_endpoint(request):
|
def uploads_endpoint(request):
|
||||||
""" Endpoint for file uploads """
|
""" Endpoint for file uploads """
|
||||||
username = request.matchdict["username"]
|
username = request.matchdict["username"]
|
||||||
requested_user = User.query.filter_by(username=username).first()
|
requested_user = User.query.filter(LocalUser.username==username).first()
|
||||||
|
|
||||||
if requested_user is None:
|
if requested_user is None:
|
||||||
return json_error("No such 'user' with id '{0}'".format(username), 404)
|
return json_error("No such 'user' with id '{0}'".format(username), 404)
|
||||||
@ -142,7 +142,7 @@ def inbox_endpoint(request, inbox=None):
|
|||||||
inbox: allows you to pass a query in to limit inbox scope
|
inbox: allows you to pass a query in to limit inbox scope
|
||||||
"""
|
"""
|
||||||
username = request.matchdict["username"]
|
username = request.matchdict["username"]
|
||||||
user = User.query.filter_by(username=username).first()
|
user = User.query.filter(LocalUser.username==username).first()
|
||||||
|
|
||||||
if user is None:
|
if user is None:
|
||||||
return json_error("No such 'user' with id '{0}'".format(username), 404)
|
return json_error("No such 'user' with id '{0}'".format(username), 404)
|
||||||
@ -225,7 +225,7 @@ def inbox_major_endpoint(request):
|
|||||||
def feed_endpoint(request, outbox=None):
|
def feed_endpoint(request, outbox=None):
|
||||||
""" Handles the user's outbox - /api/user/<username>/feed """
|
""" Handles the user's outbox - /api/user/<username>/feed """
|
||||||
username = request.matchdict["username"]
|
username = request.matchdict["username"]
|
||||||
requested_user = User.query.filter_by(username=username).first()
|
requested_user = User.query.filter(LocalUser.username==username).first()
|
||||||
|
|
||||||
# check if the user exists
|
# check if the user exists
|
||||||
if requested_user is None:
|
if requested_user is None:
|
||||||
@ -747,7 +747,7 @@ def lrdd_lookup(request):
|
|||||||
username, host = resource.split("@", 1)
|
username, host = resource.split("@", 1)
|
||||||
|
|
||||||
# Now lookup the user
|
# Now lookup the user
|
||||||
user = User.query.filter_by(username=username).first()
|
user = User.query.filter(LocalUser.username==username).first()
|
||||||
|
|
||||||
if user is None:
|
if user is None:
|
||||||
return json_error(
|
return json_error(
|
||||||
|
@ -23,7 +23,7 @@ from sqlalchemy import or_
|
|||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.tools.crypto import get_timed_signer_url
|
from mediagoblin.tools.crypto import get_timed_signer_url
|
||||||
from mediagoblin.db.models import User, Privilege
|
from mediagoblin.db.models import LocalUser, Privilege
|
||||||
from mediagoblin.tools.mail import (normalize_email, send_email,
|
from mediagoblin.tools.mail import (normalize_email, send_email,
|
||||||
email_debug_message)
|
email_debug_message)
|
||||||
from mediagoblin.tools.template import render_template
|
from mediagoblin.tools.template import render_template
|
||||||
@ -106,9 +106,9 @@ def send_verification_email(user, request, email=None,
|
|||||||
|
|
||||||
|
|
||||||
def basic_extra_validation(register_form, *args):
|
def basic_extra_validation(register_form, *args):
|
||||||
users_with_username = User.query.filter_by(
|
users_with_username = LocalUser.query.filter_by(
|
||||||
username=register_form.username.data).count()
|
username=register_form.username.data).count()
|
||||||
users_with_email = User.query.filter_by(
|
users_with_email = LocalUser.query.filter_by(
|
||||||
email=register_form.email.data).count()
|
email=register_form.email.data).count()
|
||||||
|
|
||||||
extra_validation_passes = True
|
extra_validation_passes = True
|
||||||
@ -190,7 +190,7 @@ def no_auth_logout(request):
|
|||||||
|
|
||||||
|
|
||||||
def create_basic_user(form):
|
def create_basic_user(form):
|
||||||
user = User()
|
user = LocalUser()
|
||||||
user.username = form.username.data
|
user.username = form.username.data
|
||||||
user.email = form.email.data
|
user.email = form.email.data
|
||||||
user.save()
|
user.save()
|
||||||
|
@ -1305,6 +1305,7 @@ def migrate_data_foreign_keys(db):
|
|||||||
use the old ActivityIntermediator to the new temparay fields which use the
|
use the old ActivityIntermediator to the new temparay fields which use the
|
||||||
new GenericForeignKey.
|
new GenericForeignKey.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
metadata = MetaData(bind=db.bind)
|
metadata = MetaData(bind=db.bind)
|
||||||
activity_table = inspect_table(metadata, "core__activities")
|
activity_table = inspect_table(metadata, "core__activities")
|
||||||
ai_table = inspect_table(metadata, "core__activity_intermediators")
|
ai_table = inspect_table(metadata, "core__activity_intermediators")
|
||||||
|
@ -23,7 +23,7 @@ from six.moves.urllib.parse import urljoin
|
|||||||
|
|
||||||
from mediagoblin import mg_globals as mgg
|
from mediagoblin import mg_globals as mgg
|
||||||
from mediagoblin import messages
|
from mediagoblin import messages
|
||||||
from mediagoblin.db.models import MediaEntry, User, MediaComment, AccessToken
|
from mediagoblin.db.models import MediaEntry, LocalUser, MediaComment, AccessToken
|
||||||
from mediagoblin.tools.response import (
|
from mediagoblin.tools.response import (
|
||||||
redirect, render_404,
|
redirect, render_404,
|
||||||
render_user_banned, json_response)
|
render_user_banned, json_response)
|
||||||
@ -106,12 +106,12 @@ def user_has_privilege(privilege_name, allow_admin=True):
|
|||||||
|
|
||||||
|
|
||||||
def active_user_from_url(controller):
|
def active_user_from_url(controller):
|
||||||
"""Retrieve User() from <user> URL pattern and pass in as url_user=...
|
"""Retrieve LocalUser() from <user> URL pattern and pass in as url_user=...
|
||||||
|
|
||||||
Returns a 404 if no such active user has been found"""
|
Returns a 404 if no such active user has been found"""
|
||||||
@wraps(controller)
|
@wraps(controller)
|
||||||
def wrapper(request, *args, **kwargs):
|
def wrapper(request, *args, **kwargs):
|
||||||
user = User.query.filter_by(username=request.matchdict['user']).first()
|
user = LocalUser.query.filter_by(username=request.matchdict['user']).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ def user_may_alter_collection(controller):
|
|||||||
"""
|
"""
|
||||||
@wraps(controller)
|
@wraps(controller)
|
||||||
def wrapper(request, *args, **kwargs):
|
def wrapper(request, *args, **kwargs):
|
||||||
creator_id = request.db.User.query.filter_by(
|
creator_id = request.db.LocalUser.query.filter_by(
|
||||||
username=request.matchdict['user']).first().id
|
username=request.matchdict['user']).first().id
|
||||||
if not (request.user.has_privilege(u'admin') or
|
if not (request.user.has_privilege(u'admin') or
|
||||||
request.user.id == creator_id):
|
request.user.id == creator_id):
|
||||||
@ -177,7 +177,7 @@ def get_user_media_entry(controller):
|
|||||||
"""
|
"""
|
||||||
@wraps(controller)
|
@wraps(controller)
|
||||||
def wrapper(request, *args, **kwargs):
|
def wrapper(request, *args, **kwargs):
|
||||||
user = User.query.filter_by(username=request.matchdict['user']).first()
|
user = LocalUser.query.filter_by(username=request.matchdict['user']).first()
|
||||||
if not user:
|
if not user:
|
||||||
raise NotFound()
|
raise NotFound()
|
||||||
|
|
||||||
@ -217,7 +217,7 @@ def get_user_collection(controller):
|
|||||||
"""
|
"""
|
||||||
@wraps(controller)
|
@wraps(controller)
|
||||||
def wrapper(request, *args, **kwargs):
|
def wrapper(request, *args, **kwargs):
|
||||||
user = request.db.User.query.filter_by(
|
user = request.db.LocalUser.query.filter_by(
|
||||||
username=request.matchdict['user']).first()
|
username=request.matchdict['user']).first()
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
@ -242,7 +242,7 @@ def get_user_collection_item(controller):
|
|||||||
"""
|
"""
|
||||||
@wraps(controller)
|
@wraps(controller)
|
||||||
def wrapper(request, *args, **kwargs):
|
def wrapper(request, *args, **kwargs):
|
||||||
user = request.db.User.query.filter_by(
|
user = request.db.LocalUser.query.filter_by(
|
||||||
username=request.matchdict['user']).first()
|
username=request.matchdict['user']).first()
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
@ -422,7 +422,7 @@ def oauth_required(controller):
|
|||||||
request.access_token = AccessToken.query.filter_by(token=token).first()
|
request.access_token = AccessToken.query.filter_by(token=token).first()
|
||||||
if request.access_token is not None and request.user is None:
|
if request.access_token is not None and request.user is None:
|
||||||
user_id = request.access_token.user
|
user_id = request.access_token.user
|
||||||
request.user = User.query.filter_by(id=user_id).first()
|
request.user = LocalUser.query.filter_by(id=user_id).first()
|
||||||
|
|
||||||
return controller(request, *args, **kwargs)
|
return controller(request, *args, **kwargs)
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ from mediagoblin.tools.text import (
|
|||||||
convert_to_tag_list_of_dicts, media_tags_as_string)
|
convert_to_tag_list_of_dicts, media_tags_as_string)
|
||||||
from mediagoblin.tools.url import slugify
|
from mediagoblin.tools.url import slugify
|
||||||
from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used
|
from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used
|
||||||
from mediagoblin.db.models import User, Client, AccessToken, Location
|
from mediagoblin.db.models import User, LocalUser, Client, AccessToken, Location
|
||||||
|
|
||||||
import mimetypes
|
import mimetypes
|
||||||
|
|
||||||
@ -444,8 +444,9 @@ def change_email(request):
|
|||||||
|
|
||||||
if request.method == 'POST' and form.validate():
|
if request.method == 'POST' and form.validate():
|
||||||
new_email = form.new_email.data
|
new_email = form.new_email.data
|
||||||
users_with_email = User.query.filter_by(
|
users_with_email = User.query.filter(
|
||||||
email=new_email).count()
|
LocalUser.email==new_email
|
||||||
|
).count()
|
||||||
|
|
||||||
if users_with_email:
|
if users_with_email:
|
||||||
form.new_email.errors.append(
|
form.new_email.errors.append(
|
||||||
|
@ -20,6 +20,7 @@ import os
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
from mediagoblin.db.models import LocalUser
|
||||||
from mediagoblin.gmg_commands import util as commands_util
|
from mediagoblin.gmg_commands import util as commands_util
|
||||||
from mediagoblin.submit.lib import (
|
from mediagoblin.submit.lib import (
|
||||||
submit_media, get_upload_file_limits,
|
submit_media, get_upload_file_limits,
|
||||||
@ -70,7 +71,9 @@ def addmedia(args):
|
|||||||
app = commands_util.setup_app(args)
|
app = commands_util.setup_app(args)
|
||||||
|
|
||||||
# get the user
|
# get the user
|
||||||
user = app.db.User.query.filter_by(username=args.username.lower()).first()
|
user = app.db.User.query.filter(
|
||||||
|
LocalUser.username==args.username.lower()
|
||||||
|
).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
print("Sorry, no user by username '%s'" % args.username)
|
print("Sorry, no user by username '%s'" % args.username)
|
||||||
return
|
return
|
||||||
|
@ -25,6 +25,7 @@ import six
|
|||||||
|
|
||||||
from six.moves.urllib.parse import urlparse
|
from six.moves.urllib.parse import urlparse
|
||||||
|
|
||||||
|
from mediagoblin.db.models import LocalUser
|
||||||
from mediagoblin.gmg_commands import util as commands_util
|
from mediagoblin.gmg_commands import util as commands_util
|
||||||
from mediagoblin.submit.lib import (
|
from mediagoblin.submit.lib import (
|
||||||
submit_media, get_upload_file_limits,
|
submit_media, get_upload_file_limits,
|
||||||
@ -64,7 +65,9 @@ def batchaddmedia(args):
|
|||||||
files_uploaded, files_attempted = 0, 0
|
files_uploaded, files_attempted = 0, 0
|
||||||
|
|
||||||
# get the user
|
# get the user
|
||||||
user = app.db.User.query.filter_by(username=args.username.lower()).first()
|
user = app.db.User.query.filter(
|
||||||
|
LocalUser.username==args.username.lower()
|
||||||
|
).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
print(_(u"Sorry, no user by username '{username}' exists".format(
|
print(_(u"Sorry, no user by username '{username}' exists".format(
|
||||||
username=args.username)))
|
username=args.username)))
|
||||||
|
@ -20,6 +20,7 @@ import sys
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
from mediagoblin.db.models import LocalUser
|
||||||
from mediagoblin.gmg_commands import util as commands_util
|
from mediagoblin.gmg_commands import util as commands_util
|
||||||
from mediagoblin import auth
|
from mediagoblin import auth
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
@ -46,8 +47,8 @@ def adduser(args):
|
|||||||
|
|
||||||
db = mg_globals.database
|
db = mg_globals.database
|
||||||
users_with_username = \
|
users_with_username = \
|
||||||
db.User.query.filter_by(
|
db.User.query.filter(
|
||||||
username=args.username.lower()
|
LocalUser.username==args.username.lower()
|
||||||
).count()
|
).count()
|
||||||
|
|
||||||
if users_with_username:
|
if users_with_username:
|
||||||
@ -56,7 +57,7 @@ def adduser(args):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
# Create the user
|
# Create the user
|
||||||
entry = db.User()
|
entry = db.LocalUser()
|
||||||
entry.username = six.text_type(args.username.lower())
|
entry.username = six.text_type(args.username.lower())
|
||||||
entry.email = six.text_type(args.email)
|
entry.email = six.text_type(args.email)
|
||||||
entry.pw_hash = auth.gen_password_hash(args.password)
|
entry.pw_hash = auth.gen_password_hash(args.password)
|
||||||
@ -87,8 +88,9 @@ def makeadmin(args):
|
|||||||
|
|
||||||
db = mg_globals.database
|
db = mg_globals.database
|
||||||
|
|
||||||
user = db.User.query.filter_by(
|
user = db.User.query.filter(
|
||||||
username=six.text_type(args.username.lower())).one()
|
LocalUser.username==six.text_type(args.username.lower())
|
||||||
|
).one()
|
||||||
if user:
|
if user:
|
||||||
user.all_privileges.append(
|
user.all_privileges.append(
|
||||||
db.Privilege.query.filter(
|
db.Privilege.query.filter(
|
||||||
@ -115,8 +117,9 @@ def changepw(args):
|
|||||||
|
|
||||||
db = mg_globals.database
|
db = mg_globals.database
|
||||||
|
|
||||||
user = db.User.query.filter_by(
|
user = db.User.query.filter(
|
||||||
username=six.text_type(args.username.lower())).one()
|
LocalUser.username==six.text_type(args.username.lower())
|
||||||
|
).one()
|
||||||
if user:
|
if user:
|
||||||
user.pw_hash = auth.gen_password_hash(args.password)
|
user.pw_hash = auth.gen_password_hash(args.password)
|
||||||
user.save()
|
user.save()
|
||||||
@ -138,7 +141,9 @@ def deleteuser(args):
|
|||||||
|
|
||||||
db = mg_globals.database
|
db = mg_globals.database
|
||||||
|
|
||||||
user = db.User.query.filter_by(username=args.username.lower()).first()
|
user = db.User.query.filter(
|
||||||
|
LocalUser.username==args.username.lower()
|
||||||
|
).first()
|
||||||
if user:
|
if user:
|
||||||
user.delete()
|
user.delete()
|
||||||
print('The user %s has been deleted' % args.username)
|
print('The user %s has been deleted' % args.username)
|
||||||
|
@ -46,7 +46,7 @@ from mediagoblin.tools.text import (
|
|||||||
cleaned_markdown_conversion)
|
cleaned_markdown_conversion)
|
||||||
|
|
||||||
from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used
|
from mediagoblin.db.util import check_media_slug_used, check_collection_slug_used
|
||||||
from mediagoblin.db.models import User, Collection, MediaEntry
|
from mediagoblin.db.models import User, Collection, MediaEntry, LocalUser
|
||||||
|
|
||||||
from mediagoblin.notifications import add_comment_subscription
|
from mediagoblin.notifications import add_comment_subscription
|
||||||
|
|
||||||
@ -306,7 +306,9 @@ def blog_delete(request, **kwargs):
|
|||||||
Deletes a blog and media entries, tags associated with it.
|
Deletes a blog and media entries, tags associated with it.
|
||||||
"""
|
"""
|
||||||
url_user = request.matchdict.get('user')
|
url_user = request.matchdict.get('user')
|
||||||
owner_user = request.db.User.query.filter_by(username=url_user).first()
|
owner_user = request.db.User.query.filter(
|
||||||
|
LocalUser.username==url_user
|
||||||
|
).first()
|
||||||
|
|
||||||
blog_slug = request.matchdict.get('blog_slug', None)
|
blog_slug = request.matchdict.get('blog_slug', None)
|
||||||
blog = get_blog_by_slug(request, blog_slug, author=owner_user.id)
|
blog = get_blog_by_slug(request, blog_slug, author=owner_user.id)
|
||||||
@ -355,7 +357,9 @@ def blog_about_view(request):
|
|||||||
blog_slug = request.matchdict.get('blog_slug', None)
|
blog_slug = request.matchdict.get('blog_slug', None)
|
||||||
url_user = request.matchdict.get('user', None)
|
url_user = request.matchdict.get('user', None)
|
||||||
|
|
||||||
user = request.db.User.query.filter_by(username=url_user).first()
|
user = request.db.User.query.filter(
|
||||||
|
LocalUser.username=url_user
|
||||||
|
).first()
|
||||||
blog = get_blog_by_slug(request, blog_slug, author=user.id)
|
blog = get_blog_by_slug(request, blog_slug, author=user.id)
|
||||||
|
|
||||||
if not user or not blog:
|
if not user or not blog:
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
import six
|
import six
|
||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.models import User, Privilege, UserBan
|
from mediagoblin.db.models import User, Privilege, UserBan, LocalUser
|
||||||
from mediagoblin.db.base import Session
|
from mediagoblin.db.base import Session
|
||||||
from mediagoblin.tools.mail import send_email
|
from mediagoblin.tools.mail import send_email
|
||||||
from mediagoblin.tools.response import redirect
|
from mediagoblin.tools.response import redirect
|
||||||
@ -123,7 +123,8 @@ def take_away_privileges(user,*privileges):
|
|||||||
privilege = Privilege.query.filter(
|
privilege = Privilege.query.filter(
|
||||||
Privilege.privilege_name==privileges[0]).first()
|
Privilege.privilege_name==privileges[0]).first()
|
||||||
user = User.query.filter(
|
user = User.query.filter(
|
||||||
User.username==user).first()
|
LocalUser.username==user
|
||||||
|
).first()
|
||||||
if privilege in user.all_privileges:
|
if privilege in user.all_privileges:
|
||||||
user.all_privileges.remove(privilege)
|
user.all_privileges.remove(privilege)
|
||||||
return True
|
return True
|
||||||
@ -155,7 +156,8 @@ def give_privileges(user,*privileges):
|
|||||||
privilege = Privilege.query.filter(
|
privilege = Privilege.query.filter(
|
||||||
Privilege.privilege_name==privileges[0]).first()
|
Privilege.privilege_name==privileges[0]).first()
|
||||||
user = User.query.filter(
|
user = User.query.filter(
|
||||||
User.username==user).first()
|
LoclUser.username==user
|
||||||
|
).first()
|
||||||
if privilege not in user.all_privileges:
|
if privilege not in user.all_privileges:
|
||||||
user.all_privileges.append(privilege)
|
user.all_privileges.append(privilege)
|
||||||
return True
|
return True
|
||||||
|
@ -15,8 +15,8 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
from mediagoblin.db.models import (MediaEntry, User,ReportBase, Privilege,
|
from mediagoblin.db.models import (MediaEntry, User, ReportBase, Privilege,
|
||||||
UserBan)
|
UserBan, LocalUser)
|
||||||
from mediagoblin.decorators import (require_admin_or_moderator_login,
|
from mediagoblin.decorators import (require_admin_or_moderator_login,
|
||||||
active_user_from_url, user_has_privilege,
|
active_user_from_url, user_has_privilege,
|
||||||
allow_reporting)
|
allow_reporting)
|
||||||
@ -79,7 +79,9 @@ def moderation_users_detail(request):
|
|||||||
'''
|
'''
|
||||||
Shows details about a particular user.
|
Shows details about a particular user.
|
||||||
'''
|
'''
|
||||||
user = User.query.filter_by(username=request.matchdict['user']).first()
|
user = User.query.filter(
|
||||||
|
LocalUser.username==request.matchdict['user']
|
||||||
|
).first()
|
||||||
active_reports = user.reports_filed_on.filter(
|
active_reports = user.reports_filed_on.filter(
|
||||||
ReportBase.resolved==None).limit(5)
|
ReportBase.resolved==None).limit(5)
|
||||||
closed_reports = user.reports_filed_on.filter(
|
closed_reports = user.reports_filed_on.filter(
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from mediagoblin.db.models import MediaEntry, User
|
from mediagoblin.db.models import MediaEntry, User, LocalUser
|
||||||
from mediagoblin.plugins.archivalook.models import FeaturedMedia
|
from mediagoblin.plugins.archivalook.models import FeaturedMedia
|
||||||
from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
|
from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
|
||||||
from mediagoblin.plugins.archivalook.models import FeaturedMedia
|
from mediagoblin.plugins.archivalook.models import FeaturedMedia
|
||||||
@ -36,10 +36,11 @@ def get_media_entry_from_uploader_slug(uploader_username, slug):
|
|||||||
matches the specifications.
|
matches the specifications.
|
||||||
"""
|
"""
|
||||||
uploader = User.query.filter(
|
uploader = User.query.filter(
|
||||||
User.username == uploader_username).first()
|
LocalUser.username==uploader_username
|
||||||
|
).first()
|
||||||
media = MediaEntry.query.filter(
|
media = MediaEntry.query.filter(
|
||||||
MediaEntry.get_uploader == uploader ).filter(
|
MediaEntry.get_uploader == uploader ).filter(
|
||||||
MediaEntry.slug == slug).first()
|
MediaEntry.slug == slug).first()
|
||||||
return media
|
return media
|
||||||
|
|
||||||
|
|
||||||
@ -292,4 +293,3 @@ def demote_feature(media_entry):
|
|||||||
elif target_feature.display_type == u'primary':
|
elif target_feature.display_type == u'primary':
|
||||||
target_feature.display_type = u'secondary'
|
target_feature.display_type = u'secondary'
|
||||||
target_feature.save()
|
target_feature.save()
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ import os
|
|||||||
from mediagoblin.plugins.basic_auth import forms as auth_forms
|
from mediagoblin.plugins.basic_auth import forms as auth_forms
|
||||||
from mediagoblin.plugins.basic_auth import tools as auth_tools
|
from mediagoblin.plugins.basic_auth import tools as auth_tools
|
||||||
from mediagoblin.auth.tools import create_basic_user
|
from mediagoblin.auth.tools import create_basic_user
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import LocalUser
|
||||||
from mediagoblin.tools import pluginapi
|
from mediagoblin.tools import pluginapi
|
||||||
from sqlalchemy import or_
|
from sqlalchemy import or_
|
||||||
from mediagoblin.tools.staticdirect import PluginStatic
|
from mediagoblin.tools.staticdirect import PluginStatic
|
||||||
@ -56,10 +56,10 @@ def setup_plugin():
|
|||||||
def get_user(**kwargs):
|
def get_user(**kwargs):
|
||||||
username = kwargs.pop('username', None)
|
username = kwargs.pop('username', None)
|
||||||
if username:
|
if username:
|
||||||
user = User.query.filter(
|
user = LocalUser.query.filter(
|
||||||
or_(
|
or_(
|
||||||
User.username == username,
|
LocalUser.username == username,
|
||||||
User.email == username,
|
LocalUser.email == username,
|
||||||
)).first()
|
)).first()
|
||||||
return user
|
return user
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
from itsdangerous import BadSignature
|
from itsdangerous import BadSignature
|
||||||
|
|
||||||
from mediagoblin import messages
|
from mediagoblin import messages
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import LocalUser
|
||||||
from mediagoblin.decorators import require_active_login
|
from mediagoblin.decorators import require_active_login
|
||||||
from mediagoblin.plugins.basic_auth import forms, tools
|
from mediagoblin.plugins.basic_auth import forms, tools
|
||||||
from mediagoblin.tools.crypto import get_timed_signer_url
|
from mediagoblin.tools.crypto import get_timed_signer_url
|
||||||
@ -48,7 +48,7 @@ def forgot_password(request):
|
|||||||
found_by_email = '@' in fp_form.username.data
|
found_by_email = '@' in fp_form.username.data
|
||||||
|
|
||||||
if found_by_email:
|
if found_by_email:
|
||||||
user = User.query.filter_by(
|
user = LocalUser.query.filter_by(
|
||||||
email=fp_form.username.data).first()
|
email=fp_form.username.data).first()
|
||||||
# Don't reveal success in case the lookup happened by email address.
|
# Don't reveal success in case the lookup happened by email address.
|
||||||
success_message = _("If that email address (case sensitive!) is "
|
success_message = _("If that email address (case sensitive!) is "
|
||||||
@ -56,7 +56,7 @@ def forgot_password(request):
|
|||||||
"instructions on how to change your password.")
|
"instructions on how to change your password.")
|
||||||
|
|
||||||
else: # found by username
|
else: # found by username
|
||||||
user = User.query.filter_by(
|
user = LocalUser.query.filter_by(
|
||||||
username=fp_form.username.data).first()
|
username=fp_form.username.data).first()
|
||||||
|
|
||||||
if user is None:
|
if user is None:
|
||||||
@ -114,7 +114,7 @@ def verify_forgot_password(request):
|
|||||||
'index')
|
'index')
|
||||||
|
|
||||||
# check if it's a valid user id
|
# check if it's a valid user id
|
||||||
user = User.query.filter_by(id=int(token)).first()
|
user = LocalUser.query.filter_by(id=int(token)).first()
|
||||||
|
|
||||||
# no user in db
|
# no user in db
|
||||||
if not user:
|
if not user:
|
||||||
|
@ -18,7 +18,7 @@ import six
|
|||||||
|
|
||||||
from mediagoblin import mg_globals, messages
|
from mediagoblin import mg_globals, messages
|
||||||
from mediagoblin.auth.tools import register_user
|
from mediagoblin.auth.tools import register_user
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import User, LocalUser
|
||||||
from mediagoblin.decorators import allow_registration, auth_enabled
|
from mediagoblin.decorators import allow_registration, auth_enabled
|
||||||
from mediagoblin.plugins.ldap import forms
|
from mediagoblin.plugins.ldap import forms
|
||||||
from mediagoblin.plugins.ldap.tools import LDAP
|
from mediagoblin.plugins.ldap.tools import LDAP
|
||||||
@ -38,8 +38,9 @@ def login(request):
|
|||||||
login_form.password.data)
|
login_form.password.data)
|
||||||
|
|
||||||
if username:
|
if username:
|
||||||
user = User.query.filter_by(
|
user = User.query.filter(
|
||||||
username=username).first()
|
LocalUser.username==username
|
||||||
|
).first()
|
||||||
|
|
||||||
if user:
|
if user:
|
||||||
# set up login in session
|
# set up login in session
|
||||||
|
@ -19,7 +19,7 @@ import uuid
|
|||||||
from sqlalchemy import or_
|
from sqlalchemy import or_
|
||||||
|
|
||||||
from mediagoblin.auth.tools import create_basic_user
|
from mediagoblin.auth.tools import create_basic_user
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import User, LocalUser
|
||||||
from mediagoblin.plugins.openid.models import OpenIDUserURL
|
from mediagoblin.plugins.openid.models import OpenIDUserURL
|
||||||
from mediagoblin.tools import pluginapi
|
from mediagoblin.tools import pluginapi
|
||||||
from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
|
from mediagoblin.tools.translate import lazy_pass_to_ugettext as _
|
||||||
@ -67,8 +67,8 @@ def create_user(register_form):
|
|||||||
username = register_form.username.data
|
username = register_form.username.data
|
||||||
user = User.query.filter(
|
user = User.query.filter(
|
||||||
or_(
|
or_(
|
||||||
User.username == username,
|
LocalUser.username == username,
|
||||||
User.email == username,
|
LocalUser.email == username,
|
||||||
)).first()
|
)).first()
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
|
@ -19,7 +19,7 @@ import os
|
|||||||
from sqlalchemy import or_
|
from sqlalchemy import or_
|
||||||
|
|
||||||
from mediagoblin.auth.tools import create_basic_user
|
from mediagoblin.auth.tools import create_basic_user
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import User, LocalUser
|
||||||
from mediagoblin.plugins.persona.models import PersonaUserEmails
|
from mediagoblin.plugins.persona.models import PersonaUserEmails
|
||||||
from mediagoblin.tools import pluginapi
|
from mediagoblin.tools import pluginapi
|
||||||
from mediagoblin.tools.staticdirect import PluginStatic
|
from mediagoblin.tools.staticdirect import PluginStatic
|
||||||
@ -60,8 +60,8 @@ def create_user(register_form):
|
|||||||
username = register_form.username.data
|
username = register_form.username.data
|
||||||
user = User.query.filter(
|
user = User.query.filter(
|
||||||
or_(
|
or_(
|
||||||
User.username == username,
|
LocalUser.username == username,
|
||||||
User.email == username,
|
LocalUser.email == username,
|
||||||
)).first()
|
)).first()
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import User, LocalUser
|
||||||
from mediagoblin.tests.tools import fixture_add_user
|
from mediagoblin.tests.tools import fixture_add_user
|
||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ class MGClientTestCase:
|
|||||||
fixture_add_user(username, **options)
|
fixture_add_user(username, **options)
|
||||||
|
|
||||||
def user(self, username):
|
def user(self, username):
|
||||||
return User.query.filter(User.username == username).first()
|
return User.query.filter(LocalUser.username==username).first()
|
||||||
|
|
||||||
def _do_request(self, url, *context_keys, **kwargs):
|
def _do_request(self, url, *context_keys, **kwargs):
|
||||||
template.clear_test_template_context()
|
template.clear_test_template_context()
|
||||||
|
@ -23,7 +23,7 @@ import six
|
|||||||
import six.moves.urllib.parse as urlparse
|
import six.moves.urllib.parse as urlparse
|
||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import User, LocalUser
|
||||||
from mediagoblin.tests.tools import get_app, fixture_add_user
|
from mediagoblin.tests.tools import get_app, fixture_add_user
|
||||||
from mediagoblin.tools import template, mail
|
from mediagoblin.tools import template, mail
|
||||||
from mediagoblin.auth import tools as auth_tools
|
from mediagoblin.auth import tools as auth_tools
|
||||||
@ -98,8 +98,9 @@ def test_register_views(test_app):
|
|||||||
assert 'mediagoblin/user_pages/user_nonactive.html' in template.TEMPLATE_TEST_CONTEXT
|
assert 'mediagoblin/user_pages/user_nonactive.html' in template.TEMPLATE_TEST_CONTEXT
|
||||||
|
|
||||||
## Make sure user is in place
|
## Make sure user is in place
|
||||||
new_user = mg_globals.database.User.query.filter_by(
|
new_user = mg_globals.database.User.query.filter(
|
||||||
username=u'angrygirl').first()
|
LocalUser.usrname==u'angrygirl'
|
||||||
|
).first()
|
||||||
assert new_user
|
assert new_user
|
||||||
|
|
||||||
## Make sure that the proper privileges are granted on registration
|
## Make sure that the proper privileges are granted on registration
|
||||||
@ -137,8 +138,9 @@ def test_register_views(test_app):
|
|||||||
|
|
||||||
# assert context['verification_successful'] == True
|
# assert context['verification_successful'] == True
|
||||||
# TODO: Would be good to test messages here when we can do so...
|
# TODO: Would be good to test messages here when we can do so...
|
||||||
new_user = mg_globals.database.User.query.filter_by(
|
new_user = mg_globals.database.User.query.filter(
|
||||||
username=u'angrygirl').first()
|
LocalUser.username==u'angrygirl'
|
||||||
|
).first()
|
||||||
assert new_user
|
assert new_user
|
||||||
|
|
||||||
## Verify the email activation works
|
## Verify the email activation works
|
||||||
@ -149,8 +151,9 @@ def test_register_views(test_app):
|
|||||||
'mediagoblin/user_pages/user.html']
|
'mediagoblin/user_pages/user.html']
|
||||||
# assert context['verification_successful'] == True
|
# assert context['verification_successful'] == True
|
||||||
# TODO: Would be good to test messages here when we can do so...
|
# TODO: Would be good to test messages here when we can do so...
|
||||||
new_user = mg_globals.database.User.query.filter_by(
|
new_user = mg_globals.database.User.query.filter(
|
||||||
username=u'angrygirl').first()
|
LocalUser.username==u'angrygirl'
|
||||||
|
).first()
|
||||||
assert new_user
|
assert new_user
|
||||||
|
|
||||||
# Uniqueness checks
|
# Uniqueness checks
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
import six.moves.urllib.parse as urlparse
|
import six.moves.urllib.parse as urlparse
|
||||||
|
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import User, LocalUser
|
||||||
from mediagoblin.plugins.basic_auth import tools as auth_tools
|
from mediagoblin.plugins.basic_auth import tools as auth_tools
|
||||||
from mediagoblin.tests.tools import fixture_add_user
|
from mediagoblin.tests.tools import fixture_add_user
|
||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
@ -88,7 +88,7 @@ def test_change_password(test_app):
|
|||||||
assert urlparse.urlsplit(res.location)[2] == '/edit/account/'
|
assert urlparse.urlsplit(res.location)[2] == '/edit/account/'
|
||||||
|
|
||||||
# test_user has to be fetched again in order to have the current values
|
# test_user has to be fetched again in order to have the current values
|
||||||
test_user = User.query.filter_by(username=u'chris').first()
|
test_user = User.query.filter(LocalUser.username==u'chris').first()
|
||||||
assert auth_tools.bcrypt_check_password('123456', test_user.pw_hash)
|
assert auth_tools.bcrypt_check_password('123456', test_user.pw_hash)
|
||||||
|
|
||||||
# test that the password cannot be changed if the given
|
# test that the password cannot be changed if the given
|
||||||
@ -100,5 +100,5 @@ def test_change_password(test_app):
|
|||||||
'new_password': '098765',
|
'new_password': '098765',
|
||||||
})
|
})
|
||||||
|
|
||||||
test_user = User.query.filter_by(username=u'chris').first()
|
test_user = User.query.filter(LocalUser.username==u'chris').first()
|
||||||
assert not auth_tools.bcrypt_check_password('098765', test_user.pw_hash)
|
assert not auth_tools.bcrypt_check_password('098765', test_user.pw_hash)
|
||||||
|
@ -19,7 +19,7 @@ import six.moves.urllib.parse as urlparse
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.models import User, MediaEntry
|
from mediagoblin.db.models import User, LocalUser, MediaEntry
|
||||||
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry
|
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry
|
||||||
from mediagoblin import auth
|
from mediagoblin import auth
|
||||||
from mediagoblin.tools import template, mail
|
from mediagoblin.tools import template, mail
|
||||||
@ -44,12 +44,12 @@ class TestUserEdit(object):
|
|||||||
self.login(test_app)
|
self.login(test_app)
|
||||||
|
|
||||||
# Make sure user exists
|
# Make sure user exists
|
||||||
assert User.query.filter_by(username=u'chris').first()
|
assert User.query.filter(LocalUser.username=u'chris').first()
|
||||||
|
|
||||||
res = test_app.post('/edit/account/delete/', {'confirmed': 'y'})
|
res = test_app.post('/edit/account/delete/', {'confirmed': 'y'})
|
||||||
|
|
||||||
# Make sure user has been deleted
|
# Make sure user has been deleted
|
||||||
assert User.query.filter_by(username=u'chris').first() == None
|
assert User.query.filter(LocalUser.username==u'chris').first() == None
|
||||||
|
|
||||||
#TODO: make sure all corresponding items comments etc have been
|
#TODO: make sure all corresponding items comments etc have been
|
||||||
# deleted too. Perhaps in submission test?
|
# deleted too. Perhaps in submission test?
|
||||||
@ -79,7 +79,7 @@ class TestUserEdit(object):
|
|||||||
'bio': u'I love toast!',
|
'bio': u'I love toast!',
|
||||||
'url': u'http://dustycloud.org/'})
|
'url': u'http://dustycloud.org/'})
|
||||||
|
|
||||||
test_user = User.query.filter_by(username=u'chris').first()
|
test_user = User.query.filter(LocalUser.username==u'chris').first()
|
||||||
assert test_user.bio == u'I love toast!'
|
assert test_user.bio == u'I love toast!'
|
||||||
assert test_user.url == u'http://dustycloud.org/'
|
assert test_user.url == u'http://dustycloud.org/'
|
||||||
|
|
||||||
@ -159,9 +159,10 @@ class TestUserEdit(object):
|
|||||||
assert urlparse.urlsplit(res.location)[2] == '/'
|
assert urlparse.urlsplit(res.location)[2] == '/'
|
||||||
|
|
||||||
# Email shouldn't be saved
|
# Email shouldn't be saved
|
||||||
email_in_db = mg_globals.database.User.query.filter_by(
|
email_in_db = mg_globals.database.User.query.filter(
|
||||||
email='new@example.com').first()
|
LocalUser.email=='new@example.com'
|
||||||
email = User.query.filter_by(username='chris').first().email
|
).first()
|
||||||
|
email = User.query.filter(LocalUser.username=='chris').first().email
|
||||||
assert email_in_db is None
|
assert email_in_db is None
|
||||||
assert email == 'chris@example.com'
|
assert email == 'chris@example.com'
|
||||||
|
|
||||||
@ -172,7 +173,7 @@ class TestUserEdit(object):
|
|||||||
res.follow()
|
res.follow()
|
||||||
|
|
||||||
# New email saved?
|
# New email saved?
|
||||||
email = User.query.filter_by(username='chris').first().email
|
email = User.query.filter(LocalUser.username=='chris').first().email
|
||||||
assert email == 'new@example.com'
|
assert email == 'new@example.com'
|
||||||
# test changing the url inproperly
|
# test changing the url inproperly
|
||||||
|
|
||||||
@ -181,8 +182,10 @@ class TestMetaDataEdit:
|
|||||||
def setup(self, test_app):
|
def setup(self, test_app):
|
||||||
# set up new user
|
# set up new user
|
||||||
self.user_password = u'toast'
|
self.user_password = u'toast'
|
||||||
self.user = fixture_add_user(password = self.user_password,
|
self.user = fixture_add_user(
|
||||||
privileges=[u'active',u'admin'])
|
password = self.user_password,
|
||||||
|
privileges=[u'active',u'admin']
|
||||||
|
)
|
||||||
self.test_app = test_app
|
self.test_app = test_app
|
||||||
|
|
||||||
def login(self, test_app):
|
def login(self, test_app):
|
||||||
|
@ -26,6 +26,7 @@ import six.moves.urllib.parse as urlparse
|
|||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.base import Session
|
from mediagoblin.db.base import Session
|
||||||
|
from mediagoblin.db.models import LocalUser
|
||||||
from mediagoblin.tests.tools import get_app
|
from mediagoblin.tests.tools import get_app
|
||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
|
|
||||||
@ -114,8 +115,9 @@ def test_ldap_plugin(ldap_plugin_app):
|
|||||||
ldap_plugin_app.get('/auth/logout/')
|
ldap_plugin_app.get('/auth/logout/')
|
||||||
|
|
||||||
# Get user and detach from session
|
# Get user and detach from session
|
||||||
test_user = mg_globals.database.User.query.filter_by(
|
test_user = mg_globals.database.User.query.filter(
|
||||||
username=u'chris').first()
|
LocalUser.username==u'chris'
|
||||||
|
).first()
|
||||||
Session.expunge(test_user)
|
Session.expunge(test_user)
|
||||||
|
|
||||||
# Log back in
|
# Log back in
|
||||||
|
@ -20,8 +20,8 @@
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
|
|
||||||
from mediagoblin.db.base import Session
|
from mediagoblin.db.base import Session
|
||||||
from mediagoblin.db.models import MediaEntry, User, Privilege, Activity, \
|
from mediagoblin.db.models import MediaEntry, User, LocalUser, Privilege, \
|
||||||
Generator
|
Activity, Generator
|
||||||
|
|
||||||
from mediagoblin.tests import MGClientTestCase
|
from mediagoblin.tests import MGClientTestCase
|
||||||
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry, \
|
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry, \
|
||||||
@ -169,9 +169,9 @@ class TestUserHasPrivilege:
|
|||||||
fixture_add_user(u'aeva',
|
fixture_add_user(u'aeva',
|
||||||
privileges=[u'moderator',u'active'])
|
privileges=[u'moderator',u'active'])
|
||||||
self.natalie_user = User.query.filter(
|
self.natalie_user = User.query.filter(
|
||||||
User.username==u'natalie').first()
|
LocalUser.username==u'natalie').first()
|
||||||
self.aeva_user = User.query.filter(
|
self.aeva_user = User.query.filter(
|
||||||
User.username==u'aeva').first()
|
LocalUser.username==u'aeva').first()
|
||||||
|
|
||||||
def test_privilege_added_correctly(self, test_app):
|
def test_privilege_added_correctly(self, test_app):
|
||||||
self._setup()
|
self._setup()
|
||||||
|
@ -18,7 +18,7 @@ import pytest
|
|||||||
|
|
||||||
from mediagoblin.tests.tools import (fixture_add_user,
|
from mediagoblin.tests.tools import (fixture_add_user,
|
||||||
fixture_add_comment_report, fixture_add_comment)
|
fixture_add_comment_report, fixture_add_comment)
|
||||||
from mediagoblin.db.models import User, CommentReport, MediaComment, UserBan
|
from mediagoblin.db.models import User, LocalUser, CommentReport, MediaComment, UserBan
|
||||||
from mediagoblin.tools import template, mail
|
from mediagoblin.tools import template, mail
|
||||||
from webtest import AppError
|
from webtest import AppError
|
||||||
|
|
||||||
@ -47,9 +47,9 @@ class TestModerationViews:
|
|||||||
self.query_for_users()
|
self.query_for_users()
|
||||||
|
|
||||||
def query_for_users(self):
|
def query_for_users(self):
|
||||||
self.admin_user = User.query.filter(User.username==u'admin').first()
|
self.admin_user = User.query.filter(LocalUser.username==u'admin').first()
|
||||||
self.mod_user = User.query.filter(User.username==u'moderator').first()
|
self.mod_user = User.query.filter(LocalUser.username==u'moderator').first()
|
||||||
self.user = User.query.filter(User.username==u'regular').first()
|
self.user = User.query.filter(LocalUser.username==u'regular').first()
|
||||||
|
|
||||||
def do_post(self, data, *context_keys, **kwargs):
|
def do_post(self, data, *context_keys, **kwargs):
|
||||||
url = kwargs.pop('url', '/submit/')
|
url = kwargs.pop('url', '/submit/')
|
||||||
|
@ -28,7 +28,7 @@ openid_consumer = pytest.importorskip(
|
|||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.base import Session
|
from mediagoblin.db.base import Session
|
||||||
from mediagoblin.db.models import User
|
from mediagoblin.db.models import User, LocalUser
|
||||||
from mediagoblin.plugins.openid.models import OpenIDUserURL
|
from mediagoblin.plugins.openid.models import OpenIDUserURL
|
||||||
from mediagoblin.tests.tools import get_app, fixture_add_user
|
from mediagoblin.tests.tools import get_app, fixture_add_user
|
||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
@ -192,8 +192,9 @@ class TestOpenIDPlugin(object):
|
|||||||
openid_plugin_app.get('/auth/logout')
|
openid_plugin_app.get('/auth/logout')
|
||||||
|
|
||||||
# Get user and detach from session
|
# Get user and detach from session
|
||||||
test_user = mg_globals.database.User.query.filter_by(
|
test_user = mg_globals.database.User.query.filter(
|
||||||
username=u'chris').first()
|
LocalUser.username==u'chris'
|
||||||
|
).first()
|
||||||
Session.expunge(test_user)
|
Session.expunge(test_user)
|
||||||
|
|
||||||
# Log back in
|
# Log back in
|
||||||
|
@ -27,7 +27,7 @@ import six.moves.urllib.parse as urlparse
|
|||||||
pytest.importorskip("requests")
|
pytest.importorskip("requests")
|
||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.base import Session
|
from mediagoblin.db.base import Session, LocalUser
|
||||||
from mediagoblin.db.models import Privilege
|
from mediagoblin.db.models import Privilege
|
||||||
from mediagoblin.tests.tools import get_app
|
from mediagoblin.tests.tools import get_app
|
||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
@ -117,14 +117,16 @@ class TestPersonaPlugin(object):
|
|||||||
persona_plugin_app.get('/auth/logout/')
|
persona_plugin_app.get('/auth/logout/')
|
||||||
|
|
||||||
# Get user and detach from session
|
# Get user and detach from session
|
||||||
test_user = mg_globals.database.User.query.filter_by(
|
test_user = mg_globals.database.User.query.filter(
|
||||||
username=u'chris').first()
|
LocalUser.username==u'chris'
|
||||||
|
).first()
|
||||||
active_privilege = Privilege.query.filter(
|
active_privilege = Privilege.query.filter(
|
||||||
Privilege.privilege_name==u'active').first()
|
Privilege.privilege_name==u'active').first()
|
||||||
test_user.all_privileges.append(active_privilege)
|
test_user.all_privileges.append(active_privilege)
|
||||||
test_user.save()
|
test_user.save()
|
||||||
test_user = mg_globals.database.User.query.filter_by(
|
test_user = mg_globals.database.User.query.filter(
|
||||||
username=u'chris').first()
|
LocalUser.username==u'chris'
|
||||||
|
).first()
|
||||||
Session.expunge(test_user)
|
Session.expunge(test_user)
|
||||||
|
|
||||||
# Add another user for _test_edit_persona
|
# Add another user for _test_edit_persona
|
||||||
|
@ -21,7 +21,7 @@ from webtest import AppError
|
|||||||
|
|
||||||
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry
|
from mediagoblin.tests.tools import fixture_add_user, fixture_media_entry
|
||||||
|
|
||||||
from mediagoblin.db.models import User, UserBan
|
from mediagoblin.db.models import User, LocalUser, UserBan
|
||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
|
|
||||||
from .resources import GOOD_JPG
|
from .resources import GOOD_JPG
|
||||||
@ -64,9 +64,9 @@ class TestPrivilegeFunctionality:
|
|||||||
return response, context_data
|
return response, context_data
|
||||||
|
|
||||||
def query_for_users(self):
|
def query_for_users(self):
|
||||||
self.admin_user = User.query.filter(User.username==u'alex').first()
|
self.admin_user = User.query.filter(LocalUser.username==u'alex').first()
|
||||||
self.mod_user = User.query.filter(User.username==u'meow').first()
|
self.mod_user = User.query.filter(LocalUser.username==u'meow').first()
|
||||||
self.user = User.query.filter(User.username==u'natalie').first()
|
self.user = User.query.filter(LocalUser.username==u'natalie').first()
|
||||||
|
|
||||||
def testUserBanned(self):
|
def testUserBanned(self):
|
||||||
self.login(u'natalie')
|
self.login(u'natalie')
|
||||||
|
@ -20,7 +20,7 @@ import six
|
|||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
from mediagoblin.tests.tools import (fixture_add_user, fixture_media_entry,
|
from mediagoblin.tests.tools import (fixture_add_user, fixture_media_entry,
|
||||||
fixture_add_comment, fixture_add_comment_report)
|
fixture_add_comment, fixture_add_comment_report)
|
||||||
from mediagoblin.db.models import (MediaReport, CommentReport, User,
|
from mediagoblin.db.models import (MediaReport, CommentReport, User, LocalUser
|
||||||
MediaComment)
|
MediaComment)
|
||||||
|
|
||||||
|
|
||||||
@ -56,8 +56,8 @@ class TestReportFiling:
|
|||||||
return response, context_data
|
return response, context_data
|
||||||
|
|
||||||
def query_for_users(self):
|
def query_for_users(self):
|
||||||
return (User.query.filter(User.username==u'allie').first(),
|
return (User.query.filter(LocalUser.username==u'allie').first(),
|
||||||
User.query.filter(User.username==u'natalie').first())
|
User.query.filter(LocalUser.username==u'natalie').first())
|
||||||
|
|
||||||
def testMediaReports(self):
|
def testMediaReports(self):
|
||||||
self.login(u'allie')
|
self.login(u'allie')
|
||||||
|
@ -35,7 +35,7 @@ Gst.init(None)
|
|||||||
from mediagoblin.tests.tools import fixture_add_user
|
from mediagoblin.tests.tools import fixture_add_user
|
||||||
from .media_tools import create_av
|
from .media_tools import create_av
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.models import MediaEntry, User
|
from mediagoblin.db.models import MediaEntry, User, LocalUser
|
||||||
from mediagoblin.db.base import Session
|
from mediagoblin.db.base import Session
|
||||||
from mediagoblin.tools import template
|
from mediagoblin.tools import template
|
||||||
from mediagoblin.media_types.image import ImageMediaManager
|
from mediagoblin.media_types.image import ImageMediaManager
|
||||||
@ -72,7 +72,7 @@ class TestSubmission:
|
|||||||
#### totally stupid.
|
#### totally stupid.
|
||||||
#### Also if we found a way to make this run it should be a
|
#### Also if we found a way to make this run it should be a
|
||||||
#### property.
|
#### property.
|
||||||
return User.query.filter(User.username==u'chris').first()
|
return User.query.filter(LocalUser.username==u'chris').first()
|
||||||
|
|
||||||
def login(self):
|
def login(self):
|
||||||
self.test_app.post(
|
self.test_app.post(
|
||||||
|
@ -25,7 +25,7 @@ from paste.deploy import loadapp
|
|||||||
from webtest import TestApp
|
from webtest import TestApp
|
||||||
|
|
||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.models import User, MediaEntry, Collection, MediaComment, \
|
from mediagoblin.db.models import User, LocalUser, MediaEntry, Collection, MediaComment, \
|
||||||
CommentSubscription, CommentNotification, Privilege, CommentReport, Client, \
|
CommentSubscription, CommentNotification, Privilege, CommentReport, Client, \
|
||||||
RequestToken, AccessToken, Activity, Generator
|
RequestToken, AccessToken, Activity, Generator
|
||||||
from mediagoblin.tools import testing
|
from mediagoblin.tools import testing
|
||||||
@ -176,9 +176,9 @@ def assert_db_meets_expected(db, expected):
|
|||||||
def fixture_add_user(username=u'chris', password=u'toast',
|
def fixture_add_user(username=u'chris', password=u'toast',
|
||||||
privileges=[], wants_comment_notification=True):
|
privileges=[], wants_comment_notification=True):
|
||||||
# Reuse existing user or create a new one
|
# Reuse existing user or create a new one
|
||||||
test_user = User.query.filter_by(username=username).first()
|
test_user = User.query.filter(LocalUser.username==username).first()
|
||||||
if test_user is None:
|
if test_user is None:
|
||||||
test_user = User()
|
test_user = LocalUser()
|
||||||
test_user.username = username
|
test_user.username = username
|
||||||
test_user.email = username + u'@example.com'
|
test_user.email = username + u'@example.com'
|
||||||
if password is not None:
|
if password is not None:
|
||||||
@ -191,7 +191,7 @@ def fixture_add_user(username=u'chris', password=u'toast',
|
|||||||
|
|
||||||
test_user.save()
|
test_user.save()
|
||||||
# Reload
|
# Reload
|
||||||
test_user = User.query.filter_by(username=username).first()
|
test_user = User.query.filter(LocalUser.username==username).first()
|
||||||
|
|
||||||
# ... and detach from session:
|
# ... and detach from session:
|
||||||
Session.expunge(test_user)
|
Session.expunge(test_user)
|
||||||
|
@ -83,7 +83,6 @@ def create_activity(verb, obj, actor, target=None, generator=None):
|
|||||||
|
|
||||||
# If they've set it override the actor from the obj.
|
# If they've set it override the actor from the obj.
|
||||||
activity.actor = actor.id if isinstance(actor, User) else actor
|
activity.actor = actor.id if isinstance(actor, User) else actor
|
||||||
|
|
||||||
activity.generator = generator.id
|
activity.generator = generator.id
|
||||||
activity.save()
|
activity.save()
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ import six
|
|||||||
|
|
||||||
from mediagoblin import messages, mg_globals
|
from mediagoblin import messages, mg_globals
|
||||||
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
|
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
|
||||||
CollectionItem, User, Activity)
|
CollectionItem, LocalUser, Activity)
|
||||||
from mediagoblin.tools.response import render_to_response, render_404, \
|
from mediagoblin.tools.response import render_to_response, render_404, \
|
||||||
redirect, redirect_obj
|
redirect, redirect_obj
|
||||||
from mediagoblin.tools.text import cleaned_markdown_conversion
|
from mediagoblin.tools.text import cleaned_markdown_conversion
|
||||||
@ -53,8 +53,8 @@ _log.setLevel(logging.DEBUG)
|
|||||||
@user_not_banned
|
@user_not_banned
|
||||||
@uses_pagination
|
@uses_pagination
|
||||||
def user_home(request, page):
|
def user_home(request, page):
|
||||||
"""'Homepage' of a User()"""
|
"""'Homepage' of a LocalUser()"""
|
||||||
user = User.query.filter_by(username=request.matchdict['user']).first()
|
user = LocalUser.query.filter_by(username=request.matchdict['user']).first()
|
||||||
if not user:
|
if not user:
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
elif not user.has_privilege(u'active'):
|
elif not user.has_privilege(u'active'):
|
||||||
@ -90,7 +90,7 @@ def user_home(request, page):
|
|||||||
@active_user_from_url
|
@active_user_from_url
|
||||||
@uses_pagination
|
@uses_pagination
|
||||||
def user_gallery(request, page, url_user=None):
|
def user_gallery(request, page, url_user=None):
|
||||||
"""'Gallery' of a User()"""
|
"""'Gallery' of a LocalUser()"""
|
||||||
tag = request.matchdict.get('tag', None)
|
tag = request.matchdict.get('tag', None)
|
||||||
cursor = MediaEntry.query.filter_by(
|
cursor = MediaEntry.query.filter_by(
|
||||||
uploader=url_user.id,
|
uploader=url_user.id,
|
||||||
@ -485,7 +485,7 @@ def atom_feed(request):
|
|||||||
"""
|
"""
|
||||||
generates the atom feed with the newest images
|
generates the atom feed with the newest images
|
||||||
"""
|
"""
|
||||||
user = User.query.filter_by(
|
user = LocalUser.query.filter_by(
|
||||||
username = request.matchdict['user']).first()
|
username = request.matchdict['user']).first()
|
||||||
if not user or not user.has_privilege(u'active'):
|
if not user or not user.has_privilege(u'active'):
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
@ -547,7 +547,7 @@ def collection_atom_feed(request):
|
|||||||
"""
|
"""
|
||||||
generates the atom feed with the newest images from a collection
|
generates the atom feed with the newest images from a collection
|
||||||
"""
|
"""
|
||||||
user = User.query.filter_by(
|
user = LocalUser.query.filter_by(
|
||||||
username = request.matchdict['user']).first()
|
username = request.matchdict['user']).first()
|
||||||
if not user or not user.has_privilege(u'active'):
|
if not user or not user.has_privilege(u'active'):
|
||||||
return render_404(request)
|
return render_404(request)
|
||||||
@ -617,7 +617,7 @@ def processing_panel(request):
|
|||||||
Show to the user what media is still in conversion/processing...
|
Show to the user what media is still in conversion/processing...
|
||||||
and what failed, and why!
|
and what failed, and why!
|
||||||
"""
|
"""
|
||||||
user = User.query.filter_by(username=request.matchdict['user']).first()
|
user = LocalUser.query.filter_by(username=request.matchdict['user']).first()
|
||||||
# TODO: XXX: Should this be a decorator?
|
# TODO: XXX: Should this be a decorator?
|
||||||
#
|
#
|
||||||
# Make sure we have permission to access this user's panel. Only
|
# Make sure we have permission to access this user's panel. Only
|
||||||
@ -705,7 +705,7 @@ def activity_view(request):
|
|||||||
"""
|
"""
|
||||||
# Get the user object.
|
# Get the user object.
|
||||||
username = request.matchdict["username"]
|
username = request.matchdict["username"]
|
||||||
user = User.query.filter_by(username=username).first()
|
user = LocalUser.query.filter_by(username=username).first()
|
||||||
|
|
||||||
activity_id = request.matchdict["id"]
|
activity_id = request.matchdict["id"]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user