[ckan-dev] Disqus comments plugin SSO enhancement

Adrià Mercader adria.mercader at okfn.org
Fri Nov 14 11:03:23 UTC 2014


Hi Andrew,

To access properties in c you need to access them like `c.user`. This
gives you the user name.

Passing data in c to the templates is not the recommended method any
more. Passing variables as in here is recommended:

https://github.com/ckan/ckanext-disqus/blob/master/ckanext/disqus/plugin.py#L92:L96

These can be later accessed from the templates directly:

https://github.com/ckan/ckanext-disqus/blob/master/ckanext/disqus/templates/disqus_comments.html#L5:L6

In your case you need to call `user_show` to get all the extra details
you need, something like this should get you started:


    user_dict = p.toolkit.get_action('user_show')({'keep_email':
True}, {'id': c.name})

    data = {
        ...
       'user_id: user_dict['id'],
       'user_name': user_dict['name'],
       'user_email': user_dict['email'],
    }
return p.toolkit.render_snippet('disqus_comments.html', data)


Hope this helps,

Adrià


On 13 November 2014 19:02, Koebrick, Andrew (MNIT)
<andrew.koebrick at state.mn.us> wrote:
> I am trying to create a fork of the ckanext-disqus extension that makes use
> of the Single Sign On (SSO) which Disqus offers.  Rather than have users
> have to sign into the Disqus service, local user data is sent to Disqus.
> For more info see:
> https://help.disqus.com/customer/portal/articles/236206-integrating-single-sign-on
>
>
>
> However, I have having a difficult time accessing the ckan user model from
> the extension.  Could somebody with a better knowledge of CKAN and python
> give me  a pointer or two?  I seem to be unable to access to context object.
> I have been trying things like the below with no luck;
>
>
>
>     def disqus_comments(cls):
> #Original code
>
>         ''' Adds Disqus Comments to the page.'''
> #Original code
>
>         # we need to create an identifier
> #Original code
>
>         c = p.toolkit.c
> #Original code
>
>
>
>        user_name = c['user']
> #My addition … It fails.
>
>        user_name = context['user']
> #Another try. as seen in the extension tutorial… It fails.
>
>
>
>
>
> I need to access to user’s name, email, and Id.
>
>
>
> Thanks in advance for any pointers anyone can provide.  If I get SSO hooked
> up in my fork, I will happily share my code back to the main extension.
>
>
>
> Andrew Koebrick
>
>
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>



More information about the ckan-dev mailing list