cancel
Showing results for 
Search instead for 
Did you mean: 

Constraining content types within a given space...

oofdachile
Champ in-the-making
Champ in-the-making
Hi, folks –

  My snazzy new content model defines a cool content type named "xyz:ConsentForm".  I would like to create a new space in which only items of this type can reside.  As it is, when uploading a document into the new space, one can select any of several content types, besides the intended one.

  I found some old-ish posts asking about this requirement, but the answers were of the "gee, you'd probably have to hack the source code" ilk.

  My guess is that one would create a new "space type" called, say, "xyz:ContentFormSpace" that inherits from the default space type, and set some constraint on the content types to be offered therein, but I haven't found a way to do this latter part as yet.

  What's the current (ie, 4.2.c) thinking behind restricting the content types available within a given space?

Thanks!

Don
5 REPLIES 5

kaynezhang
World-Class Innovator
World-Class Innovator
Alfresco has no constraint on what kind of child node can reside in a workspace in model definition(as jcr does),by default any node type can reside in a workspace.
You can customize Alfresco Share to implement this function.

kaynezhang
World-Class Innovator
World-Class Innovator
visit Alfresco Community Documentation at here
http://docs.alfresco.com/4.2/index.jsp
to get reference on  how Customizie Alfresco Share

Browse to Alfresco Documentation > For Developers > Customizing Explorer and Share > Customizing Alfresco Share in the left panel

Thanks, Kaynezhang, for taking the time to reply to my question.  Since we would like to prevent Share and web services and Explorer from being able to place content of "the wrong type" in a given space, we need to find a more systematic solution.

How would one educate or customize Alfresco itself to prevent users from placing documents of a type contrary to a given space's business model into that space?

Don

kaynezhang
World-Class Innovator
World-Class Innovator
In my opinion,you can cusmozie repository level and user interface level to meet your requirement.
On repository level ,you can develop custom behaviour onCreateNode/OnCreateChildAssociationPolicy policy to enforce type check,Here is the reference to custom behaviour http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fcontent-beh....
On user interface level,you can customize share/explorer to make sure that only "right" type can add into specified space.

Thanks as always, Kaynezhang, for taking the time to reply.  I think what you're saying is that one can provide an implementation of a behavior with methods that perform the desired business logic – setting the content type of documents in a given space to a specific value.  Let me know if I've misunderstood you.

I wasn't very successful at finding the document to which the link above points, but the best example that I think illustrates your point is this one:

http://standardoperationprocedure.blogspot.com/2012/08/alfresco-custom-behavior.html

… whose code is in English and whose text is in Spanish, but Google Translate (and my eighth grade Spanish teacher) did a good job.

By the way, this article contains a link to another article that is a must-read for new Alfresco folks like me:  how to control content stores using space rules – HUGE!

http://standardoperationprocedure.blogspot.com.es/2012/04/content-store-selector.html

Don