Skip to content
Snippets Groups Projects
user.py 1.58 KiB
Newer Older
  • Learn to ignore specific revisions
  • import ckan.plugins.toolkit as toolkit
    import ckan.authz as authz
    from ckan.common import g
    
    import ckan.lib.authenticator as authenticator
    from flask import Blueprint, request, Response                                                                                                                           
    
    import ckan.views.user as ckan_user_view
    import logging
    
    log = logging.getLogger(__name__)
    
    blueprint = Blueprint('odsh_user', __name__)
    
    
    def index():
    
        log.debug("views.user::index")
    
        is_sysadmin = authz.is_sysadmin(g.user)
    
        if not is_sysadmin:
            toolkit.abort(403)
        return ckan_user_view.index()
    
    
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    # def register():
    
    #     log.debug("views.user::register")
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    #     is_sysadmin = authz.is_sysadmin(g.user)
    
    Thorge Petersen's avatar
    Thorge Petersen committed
    #     if not is_sysadmin:
    #         toolkit.abort(403)
    #     return ckan_user_view.RegisterView.as_view(str(u'register'))
    
        log.debug("views.user::read")
    
        if not g.user:
            return ckan_user_view.login()
        return ckan_user_view.read(id)
    
    
    
    def auth():
        auth = request.authorization
        if not auth:
            return Response('Unauthorized', 401, {'WWW-Authenticate': 'Basic realm="Login Required"'})
    
        username = auth.username
        password = auth.password
    
        if _authenticate(username, password):
            return Response('Authorized', 200)
        else:
            return Response('Unauthorized', 401, {'WWW-Authenticate': 'Basic realm="Login Required"'})
    
    
    def _authenticate(username, password):
        identity = {'login': username, 'password': password}
        user = authenticator.ckan_authenticator(identity)
    
        if user:
            return user
        return None