Skip to content

Commit

Permalink
more import cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Mar 29, 2012
1 parent 62113e1 commit 92bb334
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 26 deletions.
42 changes: 21 additions & 21 deletions ckan/model/authz.py
Expand Up @@ -342,26 +342,26 @@ def init_authz_const_data():
Session.remove()

## TODO: this should be in ckan/authz.py
def setup_user_roles(domain_object, visitor_roles, logged_in_roles, admins=[]):
def setup_user_roles(_domain_object, visitor_roles, logged_in_roles, admins=[]):
'''NB: leaves caller to commit change'''
assert type(admins) == type([])
admin_roles = [Role.ADMIN]
visitor = User.by_name(PSEUDO_USER__VISITOR)
assert visitor
for role in visitor_roles:
add_user_to_role(visitor, role, domain_object)
add_user_to_role(visitor, role, _domain_object)
logged_in = User.by_name(PSEUDO_USER__LOGGED_IN)
assert logged_in
for role in logged_in_roles:
add_user_to_role(logged_in, role, domain_object)
add_user_to_role(logged_in, role, _domain_object)
for admin in admins:
# not sure if admin would reasonably by None
if admin is not None:
assert isinstance(admin, User), admin
if admin.name in (PSEUDO_USER__LOGGED_IN, PSEUDO_USER__VISITOR):
raise NotRealUserException('Invalid user for domain object admin %r' % admin.name)
for role in admin_roles:
add_user_to_role(admin, role, domain_object)
add_user_to_role(admin, role, _domain_object)

def give_all_packages_default_user_roles():
# if this command gives an exception, you probably
Expand Down Expand Up @@ -401,11 +401,11 @@ def give_all_packages_default_user_roles():
global _default_user_roles_cache
_default_user_roles_cache = {}

def get_default_user_roles(domain_object):
def get_default_user_roles(_domain_object):
# TODO: Should this func go in lib rather than model now?
from ckan.lib.helpers import json
from pylons import config
def _get_default_user_roles(domain_object):
def _get_default_user_roles(_domain_object):
config_key = 'ckan.default_roles.%s' % obj_type
user_roles_json = config.get(config_key)
if user_roles_json is None:
Expand All @@ -414,37 +414,37 @@ def _get_default_user_roles(domain_object):
user_roles_str = json.loads(user_roles_json) if user_roles_json else {}
unknown_keys = set(user_roles_str.keys()) - set(('visitor', 'logged_in'))
assert not unknown_keys, 'Auth config for %r has unknown key %r' % \
(domain_object, unknown_keys)
(_domain_object, unknown_keys)
user_roles_ = {}
for user in ('visitor', 'logged_in'):
roles_str = user_roles_str.get(user, [])
user_roles_[user] = [getattr(Role, role_str.upper()) for role_str in roles_str]
return user_roles_
obj_type = domain_object.__class__.__name__
obj_type = _domain_object.__class__.__name__
global _default_user_roles_cache
if not _default_user_roles_cache.has_key(domain_object):
_default_user_roles_cache[domain_object] = _get_default_user_roles(domain_object)
return _default_user_roles_cache[domain_object]
if not _default_user_roles_cache.has_key(_domain_object):
_default_user_roles_cache[_domain_object] = _get_default_user_roles(_domain_object)
return _default_user_roles_cache[_domain_object]

def setup_default_user_roles(domain_object, admins=[]):
def setup_default_user_roles(_domain_object, admins=[]):
''' sets up roles for visitor, logged-in user and any admins provided
@param admins - a list of User objects
NB: leaves caller to commit change.
'''
assert isinstance(domain_object, (Package, Group, System, AuthorizationGroup)), domain_object
assert isinstance(_domain_object, (Package, Group, System, AuthorizationGroup)), _domain_object
assert isinstance(admins, list)
user_roles_ = get_default_user_roles(domain_object)
setup_user_roles(domain_object,
user_roles_ = get_default_user_roles(_domain_object)
setup_user_roles(_domain_object,
user_roles_['visitor'],
user_roles_['logged_in'],
admins)

def clear_user_roles(domain_object):
assert isinstance(domain_object, domain_object.DomainObject)
if isinstance(domain_object, Package):
q = Session.query(PackageRole).filter_by(package=domain_object)
elif isinstance(domain_object, Group):
q = Session.query(GroupRole).filter_by(group=domain_object)
def clear_user_roles(_domain_object):
assert isinstance(_domain_object, domain_object.DomainObject)
if isinstance(_domain_object, Package):
q = Session.query(PackageRole).filter_by(package=_domain_object)
elif isinstance(_domain_object, Group):
q = Session.query(GroupRole).filter_by(group=_domain_object)
else:
raise NotImplementedError()
user_roles = q.all()
Expand Down
3 changes: 2 additions & 1 deletion ckan/model/domain_object.py
@@ -1,5 +1,6 @@
import datetime

import sqlalchemy as sa
from sqlalchemy import orm
from sqlalchemy.util import OrderedDict

Expand Down Expand Up @@ -47,7 +48,7 @@ def text_search(cls, query, term):
q = None
for field in cls.text_search_fields:
attr = getattr(register, field)
q = or_(q, make_like(attr, term))
q = sa.or_(q, make_like(attr, term))
return query.filter(q)

@classmethod
Expand Down
9 changes: 5 additions & 4 deletions ckan/model/user.py
Expand Up @@ -2,21 +2,22 @@
import re
import os
from hashlib import sha1

from sqlalchemy.sql.expression import or_
from sqlalchemy.orm import synonym

from meta import *
from types import make_uuid
import types as _types
import domain_object

user_table = Table('user', metadata,
Column('id', UnicodeText, primary_key=True, default=make_uuid),
Column('id', UnicodeText, primary_key=True, default=_types.make_uuid),
Column('name', UnicodeText, nullable=False, unique=True),
Column('openid', UnicodeText),
Column('password', UnicodeText),
Column('fullname', UnicodeText),
Column('email', UnicodeText),
Column('apikey', UnicodeText, default=make_uuid),
Column('apikey', UnicodeText, default=_types.make_uuid),
Column('created', DateTime, default=datetime.datetime.now),
Column('reset_key', UnicodeText),
Column('about', UnicodeText),
Expand Down Expand Up @@ -128,7 +129,7 @@ def check_name_available(cls, name):
return cls.by_name(name) == None

def as_dict(self):
_dict = DomainObject.as_dict(self)
_dict = domain_object.DomainObject.as_dict(self)
del _dict['password']
return _dict

Expand Down

0 comments on commit 92bb334

Please sign in to comment.