Fast switching users in Content Server demo site
In Content Server, some settings are applied at a user level by the administrator. For instance, the access controls on the content, or the ability to create more or less type of objects in the system.
In order to quickly test or demonstrate this, it is convenient to switch from one user (with administrative rights) to other users showing the applied settings.
Here is one convenient way to do this using a custom view on the front page (Enterprise Workspace):
First, you need to enable “Allow log-in via HTTP GET request” under “Server Configuration > Configure Security Parameters > Log-in Connection Policies” in the admin pages. This may not work in a production environment for security purpose, but is acceptable in a demo or development environment:
Also, your environment must be using the Content Server Internal Authentication (or use a backdoor to access internal accounts on your server) for this switching to work.
Next, you may want to retrieve some users icons to use on the top row of the custom view (optional). I chose icons with a similar look and feel, and with a 64×64 size. You will save these icons in a location that is mapped in your Content Server Site:
By default, the “http://servername/img/” is mapped to the “..OPENTEXT/support” folder, so you could use this to save your icons in a subfolder within the “support” folder. Check the proper mapping (if different than “img”), and, save the icons in a folder named: “..OPENTEXT/support/appearances/users/”
You will also need to create and know the users needed for switching, together with their passwords (which will be visible to everyone, thus, making this method unsafe for a production environment)
Then you need to create a text file which will be used to build a custom view with the following code, using the “LL.login” function to pass the user name and password, and bypass the login screen of Content Server:
<style> .center { text-align: center; } </style> <table width="100%"> <tr> <td class="center"><a href="http://<servername>/OTCS/cs.exe?func=LL.login&username=Admin&password=<admin_password>&NextURL=%2FOTCS%2Fcs.exe%3Ffunc%3Dllworkspace"><img src="http://<servername>/img/appearances/users/user1.png" alt="Admin" height="64" width="64"></a></td> <td class="center"><a href="http://<servername>/OTCS/cs.exe?func=LL.login&username=<user_name>01&password=<user_password>&NextURL=%2FOTCS%2Fcs.exe%3Ffunc%3Dllworkspace"><img src="http://<servername>/img/appearances/users/user2.png" alt="John Doe" height="64" width="64"></a></td> </tr> <tr> <td class="center"><a href="http://<servername>/OTCS/cs.exe?func=LL.login&username=Admin&password=<admin_password>&NextURL=%2FOTCS%2Fcs.exe%3Ffunc%3Dllworkspace">Admin</a></td> <td class="center"><a href="http://<servername>/OTCS/cs.exe?func=LL.login&username=<user_name>&password=<user_password>&NextURL=%2FOTCS%2Fcs.exe%3Ffunc%3Dllworkspace">John Doe</a></td> </tr> </table>
The first row (<tr>) is for the icons, and the second row displays the text.
Replace the values between “<>” such as server name, passwords and user names with actual values, and also check for the image (icons) mapping, as well as the instance name (OTCS in this case, seen both in the beginning of the URL and in the NextURL tag).
Add as many <td> (cells) in each row of the table as you need users to switch.
Create a Customview in the Enterprise Workspace using this text file and test it. Ensure the custom view has proper permissions to allow all users to see and use it. When your user switching works, you can then hide this custom view from the Enterprise workspace.
Creating cascading attributes with Open Text Content Server
“Categories and Attributes” in Open Text Content server is a nice way to add customized metadata to your content stored in the system.
If you want to have “cascading” attributes, for instance “Country >> City”, where you will only display the list of cities within the selected country, you need to use some look-up tables and a bit of SQL.
Here is an example of how you can implement this, with one pitfall and how you can avoid it.
We will use the following sample data:
Countries:
Country_Code Country_EN Country_FR
CN China Chine
DE Germany Allemagne
BE Belgium Belgique
Cities:
Country_code City_Code City_EN City_FR
CN BJ Beijing Pékin
CN GZ Guangzhou Canton
CN SH Shanghai Shanghaï
DE FR Frankfurt Francfort
DE HA Hamburg Hambourg
DE BE Berlin Berlin
BE BX Brussel Bruxelles
BE NA Namur Namur
BE GN Ghent Gent
Step 1: setting up the look-up tables with the data from above (SQL Server code / Transact-SQL):
- Create the countries table:
CREATE TABLE CAT_COUNTRY(
[Country_code] [nchar](10) NULL,
[Country_EN] [nchar](255) NULL,
[Country_FR] [nchar](255) NULL
) ON [PRIMARY]
- Populate the countries table:
INSERT INTO CAT_COUNTRY(
[Country_code]
,[Country_EN]
,[Country_FR])
VALUES
('CN','China','Chine'),
('DE','Germany','Allemagne'),
('BE','Belgium','Belgique')
GO
- Create the cities table:
CREATE TABLE CAT_CITY(
[Country_code] [nchar](10) NULL,
[City_code] [nchar](10) NULL,
[City_EN] [nchar](255) NULL,
[City_FR] [nchar](255) NULL
) ON [PRIMARY]
- Populate the cities table:
INSERT INTO CAT_CITY(
[Country_code]
,[City_code]
,[City_EN]
,[City_FR])
VALUES
('CN','BJ','Beijing','Pékin'),
('CN','GZ','Guangzhou','Canton'),
('CN','SH','Shanghai','Shanghaï'),
('DE','FR','Frankfurt','Francfort'),
('DE','HA','Hamburg','Hambourg'),
('DE','BE','Berlin','Berlin'),
('BE','BX','Brussel','Bruxelles'),
('BE','NA','Namur','Namur'),
('BE','GN','Ghent','Gent')
GO
Step 2: fixing a “Table Key Lookup” attribute type shortcoming:
The SQL code provided in the “Table Key Lookup” can’t be more than 255 characters, and must be very simple.
As we would like to combine and display in our look-up values the English and French description, and in order to keep the select statements simple in the attribute definition, we will then create 2 views from our previous tables as follow:
Create Country_View:
SELECT DISTINCT
RTRIM(country_EN) + ' - ' + RTRIM(country_FR) AS Country_desc
FROM CAT_COUNTRY
ORDER BY Country_desc
Create City_View:
SELECT DISTINCT
RTRIM(dbo.CAT_Country.Country_EN) + ' - ' + RTRIM(dbo.CAT_Country.Country_FR) AS Country_Desc,
RTRIM(dbo.CAT_City.City_EN) + ' - ' + RTRIM(dbo.CAT_City.City_FR) AS City_Desc,
FROM CAT_CITY
INNER JOIN CAT_COUNTRY
ON dbo.CAT_CITY.Country_Code = dbo.CAT_Country.Country_Code
ORDER BY Country_Desc, City_Desc
Step 3: Creating the Country and City category:
In the Content Server Categories volume, create a new Category named “Country and City” from the “Add Item” menu:
Click on the newly created category name to edit it.
In the “Add Attribute” drop down menu, select “Text: Table Key Lookup” to create the “Country” attribute:
Name it “Country” and use the following settings:
The “Custom SQL statement” box should be checked in order to edit the “Values” box where we will add the SQL statement to query the list of available countries in our look-up table:
Use the following simple select statement to retrieve the list of available countries from the look-up table:
Select Country_desc from Country_view
Create the “City” attribute in the same way (except that this one may not be required, and display it after “Country”), and with the following SQL select statement to retrieve the list of cities based on the selected country:
SELECT City_Desc FROM City_view where Country_Desc = <Country>
Then, test your newly created category by selecting first a country, and then display the available cities you can select:
Open Source DM: Nuxeo 5.3 on Mac OS X
As my former colleague and still friend @CherylMcKinnon is now working with Nuxeo, I thought I’d give their latest Document Management solution a try on my Mac.
Let say that I’m a newbie at this kind of exercise, as I’m not a Linux programmer, but I’m still able to follow some instructions…
Here is what I did on my old headless Power Mac G4 MDD running Mac OS X 10.5.8 (Leopard):
- I picked up the JBoss based package for Mac OS X, and copied the unzipped content in:
~home/Sites/nuxeo-5.3.0
- I made sure that Web Sharing was turned on in “System Preferences / Sharing”, although I don’t think this is required as this only start the built in Apache server on port 80…
- Using the terminal, in navigated to:
~home/Sites/nuxeo-5.3.0/bin
- Then ran the following command to start Nuxeo DM 5.3:
./jbossctl start
- This didn’t work: the complain was that my JAVA_HOME environment variable wasn’t set. So, I did a little bit of googling, to find where and how this variable needed to be set, knowing that Java is also part of the Mac OS system, so nothing needed to be installed there. I therefore ran the following command which seems to work and is supposed to work for any version of Java or Mac OS X:
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
- Then ran the start command again, which worked just well this time. I was able to log on my new Nuxeo DM 5.3 instance locally.
- The last bit was to make it accessible from other computers on my home network. For this, as described in the readme.html file, I edited the “bind.conf” file found under the “bin” folder of my Nuxeo folder with the following unique line (note that I removed the # used to comment a line):
BINDHOST=0.0.0.0
- This last change (followed by a restart of Nuxeo DM 5.3) allowed me to reach my newly installed instance from anywhere on my home network with the following url, and start discovering the features of this open source document management solution:
http://g4mdd.local:8080/nuxeo/