Auth samples

Basics

The class com.openkm.sdk4csharp.bean.Permission contains permission values ( READ, WRITE, etc. ). You should use it in combination with methods that are changing or getting security grants.

To set READ and WRITE access you should do:

int permission = Permission.READ + Permission.WRITE;

To check if you have permission access you should do:

// permission is a valid integer value
if ((permission | Permission.WRITE) = Permission.WRITE) {
  // Has WRITE grants.
}

On most methods you'll see parameter named "nodeId". The value of this parameter can be some valid node UUID ( folder, document, mail, record ) or node path.

Example of nodeId:

  • Using UUID -> "c41f9ea0-0d6c-45da-bae4-d72b66f42d0f";
  • Using path -> "/okm:root/sample.pdf"

Methods

getGrantedRoles

Description:

MethodReturn valuesDescription

getGrantedRoles(String nodeId)

Dictionary<String, int>

Returns the granted roles of a node.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { Dictionary<String, int> grants = ws.getGrantedRoles("/okm:root"); foreach (String role in grants.Keys) { System.Console.WriteLine("role ->" + role); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getGrantedUsers

Description:

MethodReturn valuesDescription

getGrantedUsers(String nodeId)

Dictionary<String, int>

Returns the granted users of a node.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { Dictionary<String, int> grants = ws.getGrantedUsers("/okm:root"); foreach (KeyValuePair<string, int> kvp in grants) { Console.WriteLine("{0} -> {1}", kvp.Key, kvp.Value); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getMail

Description:

MethodReturn valuesDescription

getMail(String user)

String

Returns the mail of a valid user.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.Console.WriteLine(ws.getMail("okmAdmin")); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getName

Description:

MethodReturn valuesDescription

getName(String user)

String

Returns the name of a valid user.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.Console.WriteLine(ws.getName("okmAdmin")); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } System.Console.ReadKey(); } } }

getRoles

Description:

MethodReturn valuesDescription

getRoles()

List<String>

Returns the list of all the roles.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { foreach (String role in ws.getRoles()) { System.Console.WriteLine(role); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getRolesByUser

Description:

MethodReturn valuesDescription

getRolesByUser(String user)

List<String>

Returns the list of all the roles assigned to a user.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { foreach(String role in ws.getRolesByUser("okmAdmin")) { System.Console.WriteLine(role); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getUsers

Description:

MethodReturn valuesDescription

getUsers()

List<String>

Returns the list of all the users.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { foreach (String user in ws.getUsers()) { System.Console.WriteLine(user); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getUsersByRole

Description:

MethodReturn valuesDescription

getUsersByRole(String role)

List<String>

Returns the list of all the users who have assigned a role.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { foreach (String user in ws.getUsersByRole("ROLE_ADMIN")) { System.Console.WriteLine(user); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

revokeRole

Description:

MethodReturn valuesDescription

revokeRole(String nodeId, String role, int permissions, boolean recursive)

void

Remove role grant on a node.

The parameter recursive only has sense when the nodeId is a folder or record node.

When parameter recursive is true, the change will be applied to the node and descendants.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8180/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Remove ROLE_USER write grants at the node but not descendants ws.revokeRole("/okm:root", "ROLE_USER", Permission.ALL_GRANTS, false);
// Remove all ROLE_ADMIN grants to the node and descendants ws.revokeRole("/okm:root", "ROLE_ADMIN", Permission.ALL_GRANTS, true); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

revokeUser

Description:

MethodReturn valuesDescription

revokeUser(String nodeId, String user, int permissions, boolean recursive)

void

Remove user grant on a node.

The parameter recursive only has sense when the nodeId is a folder or record node.

When parameter recursive is true, the change will be applied to the node and descendants.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Remove john write grants at the node but not descendants ws.revokeUser("/okm:root", "john", Permission.ALL_GRANTS, false); // Remove all okmAdmin grants at the node and descendants ws.revokeUser("/okm:root", "okmAdmin", Permission.ALL_GRANTS, true); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

grantRole

Description:

MethodReturn valuesDescription

grantRole(String nodeId, String role, int permissions, boolean recursive)

void

Adds a role grant on a node.

The parameter recursive only has sense when the nodeId is a folder or record node.

When the parameter recursive is true, the change will be applied to the node and descendants.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Add ROLE_USER write grants at the node but not descendants ws.grantRole("/okm:root", "ROLE_USER", Permission.ALL_GRANTS, false);
// Add all ROLE_ADMIN grants to the node and descendants ws.grantRole("/okm:root", "ROLE_ADMIN", Permission.ALL_GRANTS, true); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

grantUser

Description:

MethodReturn valuesDescription

grantUser(String nodeId, String user, int permissions, boolean recursive)

void

Add user grant on a node.

The parameter recursive only has sense when the nodeId is a folder or record node.

When the parameter recursive is true, the change will be applied to the node and descendants.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Add john write grants at the node but not descendants ws.grantUser("/okm:root", "john", Permission.ALL_GRANTS, false);
// Add all okmAdmin grants at the node and descendants ws.grantUser("/okm:root", "okmAdmin", Permission.ALL_GRANTS, true); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getProfiles

Description:

MethodReturn valuesDescription

getProfiles(boolean filterByActive)

List<Profile>

Returns the list of all profiles.

The parameter filterByActive when enabled, the method will return only the active profiles, otherwise will return all available profiles.

Each user has assigned one profile that enables more or less OpenKM UI features.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { foreach (Profile profile in ws.getProfiles(true)) { System.Console.WriteLine(profile); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getUserProfile

Description:

MethodReturn valuesDescription

getUserProfile(String userId)

Profile

Returns the profile assigned to a user.

Each user has assigned one profile that enables more or less OpenKM UI features.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.Console.WriteLine(ws.getUserProfile("okmAdmin")); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

setUserProfile

Description:

MethodReturn valuesDescription

setUserProfile(String userId, long profileId)

void

Changes the assigned profile to a user.

Each user has assigned one profile that enables more or less OpenKM UI features.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Set the profile named "default" to the user foreach (Profile profile in ws.getProfiles(true).profiles) { if (profile.name.Equals("default")) { ws.setUserProfile("okmAdmin", profile.id); } } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }