Developing New Data Types with Plone

50 %
50 %
Information about Developing New Data Types with Plone

Published on February 14, 2008

Author: brighteyes

Source: slideshare.net

Description

Delivering New Data Types With Plone NWU

Delivering New Data Types With Plone: © Blackboard, Inc. © Northwestern University All rights reserved. A Building Block for Versatile Content Management Patricia Goldweic, Brian Nielsen Northwestern University

Abstract Northwestern University has developed a Blackboard Building Block that offers users a versatile open source content management system called Plone. Plone provides workflow capabilities and extensible content types to allow unique functionalities for Blackboard users. Using Plone as the image repository, an image zooming and annotation tool will be demonstrated.

Northwestern University has developed a Blackboard Building Block that offers users a versatile open source content management system called Plone. Plone provides workflow capabilities and extensible content types to allow unique functionalities for Blackboard users. Using Plone as the image repository, an image zooming and annotation tool will be demonstrated.

Session Overview Northwestern’s environment and history with Building Blocks The Problem: How many times will we have to do this? The Application Link Maker B 2 and Plone How does it work? Demonstration: Plone and Project Pad within Bb Q & A

Northwestern’s environment and history with Building Blocks

The Problem: How many times will we have to do this?

The Application Link Maker B 2 and Plone

How does it work?

Demonstration: Plone and Project Pad within Bb

Q & A

About Northwestern University Private research university with ~20,000 students, Bb customer since early 1999 Learning System, PeopleSoft integration, use of other Blocks, e.g. SafeAssignment, eLMS

Private research university with ~20,000 students,

Bb customer since early 1999

Learning System, PeopleSoft integration, use of other Blocks, e.g. SafeAssignment, eLMS

NU’s Earlier B 2 Development The “Depot” block: login integration with a local Xythos system , and document serving in content areas The RefWorks block: login integration and provision of bibliographies in content areas

The “Depot” block: login integration with a local Xythos system , and document serving in content areas

The RefWorks block: login integration and provision of bibliographies in content areas

NU’s Earlier B 2 Development The “Depot” block: login integration with a local Xythos system, and document serving in content areas The RefWorks block: login integration and provision of bibliographies in content areas

The “Depot” block: login integration with a local Xythos system, and document serving in content areas

The RefWorks block: login integration and provision of bibliographies in content areas

How Many Times Will We Have To Do This? Project Pad toolset in Sakai: http://projectpad.northwestern.edu

Project Pad toolset in Sakai: http://projectpad.northwestern.edu

Two Possible Solutions Link into a more general-purpose tool (but which? ) Make a more generalized linking mechanism for A VARIETY OF tools

Link into a more general-purpose tool (but which? )

Make a more generalized linking mechanism for A VARIETY OF tools

Our Answer: the Application Link Maker B 2 And . . .

Plone: http://plone.org An Open Source content management system In wide use Python-based Very flexible Well documented and with several service providers

An Open Source content management system

In wide use

Python-based

Very flexible

Well documented and with several service providers

Application Link Maker as A General Purpose Single sign-on Mechanism Application Link Maker B 2 provides 50% of the single sign-on functionality Other 50% is provided by a custom authentication ‘module’ (‘tweak’) in the external application that interprets parameters sent in an http request by the B 2 . A trust relationship

Application Link Maker B 2 provides 50% of the single sign-on functionality

Other 50% is provided by a custom authentication ‘module’ (‘tweak’) in the external application that interprets parameters sent in an http request by the B 2 .

A trust relationship

Exploring the Application Link Maker Side Creates secure links to external app carrying user info (user id, course id, etc.) plus a time-based encrypted token Encryption done through a Java class created for NU’s B 2 (EncryptionUtils) The same class (or an appropriate port in a different language) used for both the B 2 and the external application The Plone integration required porting this class to Python

Creates secure links to external app carrying user info (user id, course id, etc.) plus a time-based encrypted token

Encryption done through a Java class created for NU’s B 2 (EncryptionUtils)

The same class (or an appropriate port in a different language) used for both the B 2 and the external application

The Plone integration required porting this class to Python

EncryptionUtils.java class Important methods: EncryptionUtils (String pass, String id, String algorithm, int delta) - Used on both the building block and the external application public String encrypt () – Used only in building block public boolean verify (String given) – Used only in external application

Important methods:

EncryptionUtils (String pass, String id, String algorithm, int delta) - Used on both the building block and the external application

public String encrypt () – Used only in building block

public boolean verify (String given) – Used only in external application

http request resource location one-way encryption key user identity course identity timestamp any other parameters

Receiver Processing confirms valid encryption: (user identity and timestamp) logs user on places user in “course”

Package edu.northwestern.at.encryptionutils package edu.northwestern.at.encryptionutils; import java.security.*; import java.util.*; import edu.northwestern.at.utils.*; import edu.northwestern.at.ntp.NUClockSkewUtils; /** * * This class implements a simple encryption (hashing) algorithm as follows: * * It provides the ability to: * - Encrypt a (string) password given as additional inputs a user id string, and a MessageDigest algorithm * (method 'encrypt'). The encryption is time-based and it is done using the MessageDigest class in * the JSDK, and using as inputs the string, the user id and the current time. * - Verify whether a given (encrypted) string has been obtained using the previous mechanism and * passes the 'time' test (that is, whether the encryption and verification happen within a restricted * time frame). (method: 'verify). * * * @author Patricia Goldweic */ public class EncryptionUtil { /** This algorithm's password */ private String m_pass; . . . (available, site TBD)



Q & A

Add a comment

Related presentations

Related pages

Content types — Plone Documentation v5.0

Plone's content type subsystems and creating new content types ... specific Plone content types. ... organize & manipulate data with very ...
Read more

Chapter 3. Developing for Plone — Upfront Systems

Developing new content types for Plone requires an understanding of ... Name of the method that will be used for getting data out of ...
Read more

Developing for Plone — Plone Documentation v4.3

... Managing and Updating Plone; Developing for Plone. Developing ... Developing for Plone ... for people who are new to Plone or want to learn about ...
Read more

Developing for Plone using ArchGenXML / ArgoUML - Business

1.Developing for Plone using ArchGenXML ... Framework for developing Plone products • Automatically creates ... Developing New Data Types with Plone.
Read more

Developing for Plone - Plone Community

About the Developing for Plone category ... Why there are two binary content types (File, Image) in Plone? ... About the new Plone 5 "Related Items" widget
Read more

Professional Plone 4 Development: Developing a Site ...

Professional Plone 4 Development: Developing a Site Strategy written by ... Big Data & Business ... such as view registrations or new content types, ...
Read more

Archetypes Developers Guide — Plone CMS: Open Source ...

Archetypes is a framework for developing new content types in Plone. ... and not handled correctly coming out by Archetypes. When Archetypes gets the data ...
Read more

Find and Install Add-Ons that Expand Plone | PACKT Books

Find and Install Add-Ons that Expand Plone ... validate data, ... and has served as a canonical example for many of us developing new content types for Plone.
Read more