Ejemplo n.º 1
0
        private static TaskType[] listTasks(modelPortType modelPort)
        {
            // Let's say we want to retrieve tasks' next scheduled time (because this may be a costly operation if
            // JDBC based quartz scheduler is used, the fetching of this attribute has to be explicitly requested)
            SelectorQualifiedGetOptionType getNextScheduledTimeOption = new SelectorQualifiedGetOptionType();

            // prepare a selector (described by path) + options (saying to retrieve that attribute)
            ObjectSelectorType selector = new ObjectSelectorType();

            selector.path = createItemPathType("nextRunStartTimestamp");
            getNextScheduledTimeOption.selector = selector;

            GetOperationOptionsType selectorOptions = new GetOperationOptionsType();

            selectorOptions.retrieve           = RetrieveOptionType.include;
            selectorOptions.retrieveSpecified  = true;
            getNextScheduledTimeOption.options = selectorOptions;

            SelectorQualifiedGetOptionType[] operationOptions = new SelectorQualifiedGetOptionType[] { getNextScheduledTimeOption };

            searchObjects         request  = new searchObjects(TASK_TYPE, null, operationOptions);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType  objectList = response.objectList;
            List <TaskType> tasks      = new List <TaskType>();

            foreach (ObjectType1 object1 in response.objectList.@object)
            {
                tasks.Add((TaskType)object1);
            }
            return(tasks.ToArray());
        }
        /// <summary>
        /// Creates a new userDelta with the new password for the given user, then uses
        /// the given model port to transmit userDelta to Midpoint.
        /// </summary>
        /// <param name="modelPort">The model port to transmit new userDelta back to Midpoint.</param>
        /// <param name="oid">The user ID.</param>
        /// <param name="newPassword">The new password value.</param>
        public static void changeUserPassword(modelPortType modelPort, string oid, string newPassword)
        {
            XmlDocument doc = new XmlDocument();

            ObjectModificationType userDelta = new ObjectModificationType();
            userDelta.oid = oid;

            ItemDeltaType passwordDelta = new ItemDeltaType();
            passwordDelta.modificationType = ModificationTypeType.replace;
            // Set path value - webservices name is apparently 'Any'?
            passwordDelta.Any = createPathElement("credentials/password", doc);
            ItemDeltaTypeValue passwordValue = new ItemDeltaTypeValue();
            // New passwordValue object so add at first index?
            passwordValue.Any = new XmlElement[1];
            passwordValue.Any.SetValue(toPasswordElement(NS_COMMON, createProtectedString(newPassword), doc), 0);
            passwordDelta.value = passwordValue;
            // New userDelta object so add at first index?
            userDelta.modification = new ItemDeltaType[1];
            userDelta.modification.SetValue(passwordDelta, 0);

            modifyObject request = new modifyObject(getTypeUri(new UserType()), userDelta);
            modifyObjectResponse response = modelPort.modifyObject(request);

            System.Console.WriteLine("Result: '" + response.result.status.ToString() + "' for user oid: '" + oid + "'");
        }
Ejemplo n.º 3
0
        private static SystemConfigurationType getConfiguration(modelPortType modelPort)
        {
            getObject         request  = new getObject(SYSTEM_CONFIGURATION_TYPE, SYSTEM_CONFIGURATION_OID, null);
            getObjectResponse response = modelPort.getObject(request);

            return((SystemConfigurationType)response.@object);
        }
Ejemplo n.º 4
0
        private static void modifyRoleAssignment(modelPortType modelPort, String userOid, bool isAdd, String[] roleOids)
        {
            ItemDeltaType assignmentDelta = new ItemDeltaType();

            if (isAdd)
            {
                assignmentDelta.modificationType = ModificationTypeType.add;
            }
            else
            {
                assignmentDelta.modificationType = ModificationTypeType.delete;
            }
            assignmentDelta.path = createItemPathType("assignment");
            List <object> assignments = new List <object>();

            foreach (String roleOid in roleOids)
            {
                assignments.Add(createRoleAssignment(roleOid));
            }
            assignmentDelta.value = assignments.ToArray();

            ObjectDeltaType objectDelta = new ObjectDeltaType();

            objectDelta.objectType = USER_TYPE;
            objectDelta.changeType = ChangeTypeType.modify;
            objectDelta.oid        = userOid;
            objectDelta.itemDelta  = new ItemDeltaType[] { assignmentDelta };

            executeChanges         request  = new executeChanges(new ObjectDeltaType[] { objectDelta }, null);
            executeChangesResponse response = modelPort.executeChanges(request);

            check(response);
        }
Ejemplo n.º 5
0
        private static String createUserFromFile(modelPortType modelPort, String fileName)
        {
            StreamReader  reader        = new StreamReader(fileName);
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(UserType));
            UserType      user          = (UserType)xmlSerializer.Deserialize(reader);

            return(createUser(modelPort, user));
        }
Ejemplo n.º 6
0
        private static ObjectType1[] listObjects(modelPortType modelPort, XmlQualifiedName type)
        {
            searchObjects         request  = new searchObjects(type, null, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;

            ObjectType1[] objects = objectList.@object;
            return(objects);
        }
Ejemplo n.º 7
0
        private static RoleType searchRoleByName(modelPortType modelPort, String roleName)
        {
            QueryType query = new QueryType();

            query.filter = createNameFilter(roleName);

            searchObjects         request  = new searchObjects(ROLE_TYPE, query, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            return((RoleType)getOneObject(response, roleName));
        }
Ejemplo n.º 8
0
        private static UserType searchUserByName(modelPortType modelPort, String username)
        {
            QueryType query = new QueryType();

            query.filter = createNameFilter(username);

            searchObjects         request  = new searchObjects(USER_TYPE, query, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            return((UserType)getOneObject(response, username));
        }
Ejemplo n.º 9
0
        private static String createUser(modelPortType modelPort, UserType userType)
        {
            ObjectDeltaType deltaType = new ObjectDeltaType();

            deltaType.objectType  = USER_TYPE;
            deltaType.changeType  = ChangeTypeType.add;
            deltaType.objectToAdd = userType;

            executeChanges         request  = new executeChanges(new ObjectDeltaType[] { deltaType }, null);
            executeChangesResponse response = modelPort.executeChanges(request);

            return(getOidFromDeltaOperationList(response.deltaOperationList, deltaType));
        }
Ejemplo n.º 10
0
        private static void deleteUser(modelPortType modelPort, String oid)
        {
            ObjectDeltaType objectDelta = new ObjectDeltaType();

            objectDelta.objectType = USER_TYPE;
            objectDelta.changeType = ChangeTypeType.delete;
            objectDelta.oid        = oid;

            executeChanges         request  = new executeChanges(new ObjectDeltaType[] { objectDelta }, null);
            executeChangesResponse response = modelPort.executeChanges(request);

            check(response);
        }
Ejemplo n.º 11
0
        private static ObjectType1[] listRequestableRoles(modelPortType modelPort)
        {
            SearchFilterType filter = createRequestableFilter();
            QueryType        query  = new QueryType();

            query.filter = filter;

            searchObjects         request  = new searchObjects(ROLE_TYPE, query, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;

            ObjectType1[] objects = objectList.@object;
            return(objects);
        }
Ejemplo n.º 12
0
        private static void changeUserPassword(modelPortType modelPort, String oid, String newPassword)
        {
            ItemDeltaType passwordDelta = new ItemDeltaType();

            passwordDelta.modificationType = ModificationTypeType.replace;
            passwordDelta.path             = createItemPathType("credentials/password/value");
            passwordDelta.value            = new object[] { createProtectedStringType(newPassword) };

            ObjectDeltaType deltaType = new ObjectDeltaType();

            deltaType.objectType = USER_TYPE;
            deltaType.changeType = ChangeTypeType.modify;
            deltaType.oid        = oid;
            deltaType.itemDelta  = new ItemDeltaType[] { passwordDelta };

            executeChanges         request  = new executeChanges(new ObjectDeltaType[] { deltaType }, null);
            executeChangesResponse response = modelPort.executeChanges(request);

            check(response);
        }
Ejemplo n.º 13
0
        private static void changeUserGivenName(modelPortType modelPort, String oid, String newValue)
        {
            ItemDeltaType itemDelta = new ItemDeltaType();

            itemDelta.modificationType = ModificationTypeType.replace;
            itemDelta.path             = createItemPathType("givenName");
            itemDelta.value            = new object[] { createPolyStringType(newValue) };

            ObjectDeltaType objectDelta = new ObjectDeltaType();

            objectDelta.objectType = USER_TYPE;
            objectDelta.changeType = ChangeTypeType.modify;
            objectDelta.oid        = oid;
            objectDelta.itemDelta  = new ItemDeltaType[] { itemDelta };

            executeChanges         request  = new executeChanges(new ObjectDeltaType[] { objectDelta }, null);
            executeChangesResponse response = modelPort.executeChanges(request);

            check(response);
        }
Ejemplo n.º 14
0
        private static String createUserGuybrush(modelPortType modelPort, RoleType role)
        {
            UserType user = new UserType();

            user.name               = createPolyStringType("guybrush");
            user.fullName           = createPolyStringType("Guybrush Threepwood");
            user.givenName          = createPolyStringType("Guybrush");
            user.familyName         = createPolyStringType("Threepwood");
            user.emailAddress       = "*****@*****.**";
            user.organization       = new PolyStringType[] { createPolyStringType("Pirate Brethren International") };
            user.organizationalUnit = new PolyStringType[] { createPolyStringType("Pirate Wannabes") };
            user.credentials        = createPasswordCredentials("IwannaBEaPIRATE");

            if (role != null)
            {
                // create user with a role assignment
                AssignmentType roleAssignment = createRoleAssignment(role.oid);
                user.assignment = new AssignmentType[] { roleAssignment };
            }

            return(createUser(modelPort, user));
        }
Ejemplo n.º 15
0
        private static String createUserLechuck(modelPortType modelPort)
        {
            UserType user = new UserType();

            user.name            = createPolyStringType("lechuck");
            user.fullName        = createPolyStringType("Ghost Pirate LeChuck");
            user.givenName       = createPolyStringType("Chuck");
            user.familyName      = createPolyStringType("LeChuck");
            user.honorificPrefix = createPolyStringType("Ghost Pirate");
            user.emailAddress    = "*****@*****.**";
            user.telephoneNumber = "555-1234";
            user.employeeNumber  = "emp1234";
            user.employeeType    = new string[] { "UNDEAD" };
            user.locality        = createPolyStringType("Monkey Island");
            user.credentials     = createPasswordCredentials("4rrrrghhhghghgh!123");
            ActivationType activationType = new ActivationType();

            activationType.administrativeStatus = ActivationStatusType.enabled;
            user.activation = activationType;

            return(createUser(modelPort, user));
        }
Ejemplo n.º 16
0
        private static ObjectType1[] listObjectsRestrictedAndSorted(modelPortType modelPort, XmlQualifiedName type)
        {
            // let's say we want to get first 3 users, sorted alphabetically by user name

            QueryType  queryType  = new QueryType();        // holds search query + paging options
            PagingType pagingType = new PagingType();

            pagingType.maxSize = 3;
            ItemPathType orderBy = createItemPathType("name");

            pagingType.orderBy        = orderBy;
            pagingType.orderDirection = OrderDirectionType.ascending;

            queryType.paging = pagingType;

            searchObjects         request  = new searchObjects(type, queryType, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;

            ObjectType1[] objects = objectList.@object;
            return(objects);
        }
Ejemplo n.º 17
0
        private static String createUserLechuck(modelPortType modelPort)
        {
            UserType user = new UserType();
            user.name = createPolyStringType("lechuck");
            user.fullName = createPolyStringType("Ghost Pirate LeChuck");
            user.givenName = createPolyStringType("Chuck");
            user.familyName = createPolyStringType("LeChuck");
            user.honorificPrefix = createPolyStringType("Ghost Pirate");
            user.emailAddress = "*****@*****.**";
            user.telephoneNumber = "555-1234";
            user.employeeNumber = "emp1234";
            user.employeeType = new string[] { "UNDEAD" };
            user.locality = createPolyStringType("Monkey Island");
            user.credentials = createPasswordCredentials("4rrrrghhhghghgh!123");
            ActivationType activationType = new ActivationType();
            activationType.administrativeStatus = ActivationStatusType.enabled;
            user.activation = activationType;

            return createUser(modelPort, user);
        }
Ejemplo n.º 18
0
        private static String createUserGuybrush(modelPortType modelPort, RoleType role) 
        {
		    UserType user = new UserType();
		    user.name = createPolyStringType("guybrush");
		    user.fullName = createPolyStringType("Guybrush Threepwood");
		    user.givenName = createPolyStringType("Guybrush");
		    user.familyName = createPolyStringType("Threepwood");
		    user.emailAddress = "*****@*****.**";
            user.organization = new PolyStringType[] { createPolyStringType("Pirate Brethren International") };
            user.organizationalUnit = new PolyStringType[] { createPolyStringType("Pirate Wannabes") };
            user.credentials = createPasswordCredentials("IwannaBEaPIRATE");
		
		    if (role != null) 
            {
			    // create user with a role assignment
			    AssignmentType roleAssignment = createRoleAssignment(role.oid);
                user.assignment = new AssignmentType[] { roleAssignment };
    		}
		
	    	return createUser(modelPort, user);
	    }
Ejemplo n.º 19
0
   	    private static RoleType searchRoleByName(modelPortType modelPort, String roleName) 
        {
            QueryType query = new QueryType();
            query.filter = createNameFilter(roleName);

            searchObjects request = new searchObjects(ROLE_TYPE, query, null);
            searchObjectsResponse response = modelPort.searchObjects(request);
            return (RoleType) getOneObject(response, roleName);
    	}
Ejemplo n.º 20
0
        private static UserType searchUserByName(modelPortType modelPort, String username)
        {
            QueryType query = new QueryType();
            query.filter = createNameFilter(username);

            searchObjects request = new searchObjects(USER_TYPE, query, null);
            searchObjectsResponse response = modelPort.searchObjects(request);
            return (UserType) getOneObject(response, username);
        }
Ejemplo n.º 21
0
	    private static void unAssignRoles(modelPortType modelPort, String userOid, String[] roleOids) 
        {
		    modifyRoleAssignment(modelPort, userOid, false, roleOids);
	    }
Ejemplo n.º 22
0
	    private static void changeUserPassword(modelPortType modelPort, String oid, String newPassword) 
        {
		    ItemDeltaType passwordDelta = new ItemDeltaType();
		    passwordDelta.modificationType = ModificationTypeType.replace;
		    passwordDelta.path = createItemPathType("credentials/password/value");
            passwordDelta.value = new object[] { createProtectedStringType(newPassword) };

            ObjectDeltaType deltaType = new ObjectDeltaType();
            deltaType.objectType = USER_TYPE;
            deltaType.changeType = ChangeTypeType.modify;
            deltaType.oid = oid;
            deltaType.itemDelta = new ItemDeltaType[] { passwordDelta };

            executeChanges request = new executeChanges(new ObjectDeltaType[] { deltaType }, null);
            executeChangesResponse response = modelPort.executeChanges(request);
            check(response);
    	}
Ejemplo n.º 23
0
 private static SystemConfigurationType getConfiguration(modelPortType modelPort)
 {
     getObject request = new getObject(SYSTEM_CONFIGURATION_TYPE, SYSTEM_CONFIGURATION_OID, null);
     getObjectResponse response = modelPort.getObject(request);
     return (SystemConfigurationType)response.@object;
 }
Ejemplo n.º 24
0
        private static ObjectType1[] listRequestableRoles(modelPortType modelPort)
        {
            SearchFilterType filter = createRequestableFilter();
            QueryType query = new QueryType();
            query.filter = filter;
            
            searchObjects request = new searchObjects(ROLE_TYPE, query, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;
            ObjectType1[] objects = objectList.@object;
            return objects;
        }
Ejemplo n.º 25
0
 private static void unAssignRoles(modelPortType modelPort, String userOid, String[] roleOids)
 {
     modifyRoleAssignment(modelPort, userOid, false, roleOids);
 }
Ejemplo n.º 26
0
        static void Main1(string[] args)
        {
            modelPortType modelPort = openConnection();

            Console.WriteLine("Getting system configuration...");
            SystemConfigurationType configurationType = getConfiguration(modelPort);

            Console.WriteLine(dumpSystemConfiguration(configurationType));

            Console.WriteLine("=========================================================");
            Console.WriteLine("Getting administrator user...");
            UserType userAdministrator = searchUserByName(modelPort, "administrator");

            Console.WriteLine(dumpUser(userAdministrator));

            Console.WriteLine("=========================================================");
            Console.WriteLine("Getting Sailor role...");
            RoleType sailorRole = searchRoleByName(modelPort, "Sailor");

            if (sailorRole != null)
            {
                Console.WriteLine(dumpRole(sailorRole));
            }
            else
            {
                Console.WriteLine("No Sailor role in the system.");
            }

            Console.WriteLine("=========================================================");
            Console.WriteLine("Getting resources...");
            // please note: ObjectType is ObjectType in prism module, ObjectType1 is ObjectType in schema module (i.e. the "real" c:ObjectType)
            ObjectType1[] resources = listObjects(modelPort, RESOURCE_TYPE);
            Console.WriteLine(dump(resources));

            Console.WriteLine("=========================================================");
            Console.WriteLine("Getting users...");
            ObjectType1[] users = listObjects(modelPort, USER_TYPE);
            Console.WriteLine(dump(users));

            Console.WriteLine("=========================================================");
            Console.WriteLine("Getting users (first three, sorted by name)...");
            ObjectType1[] users2 = listObjectsRestrictedAndSorted(modelPort, USER_TYPE);
            Console.WriteLine(dump(users2));

            Console.WriteLine("=========================================================");
            Console.WriteLine("Getting tasks...");
            TaskType[] tasks = listTasks(modelPort);
            Console.WriteLine(dump(tasks));
            Console.WriteLine("Next scheduled times: ");
            foreach (TaskType taskType in tasks)
            {
                Console.WriteLine(" - " + getOrig(taskType.name) + ": " + taskType.nextRunStartTimestamp);
            }

            Console.WriteLine("=========================================================");
            Console.WriteLine("Creating user guybrush...");
            String userGuybrushoid = createUserGuybrush(modelPort, sailorRole);

            Console.WriteLine("Created with OID: " + userGuybrushoid);

            Console.WriteLine("=========================================================");
            Console.WriteLine("Creating user lechuck...");
            //String userLeChuckOid = createUserFromFile(modelPort, USER_LECHUCK_FILE);             deserializing from file doesn't work for unknown reason
            String userLeChuckOid = createUserLechuck(modelPort);

            Console.WriteLine("Created with OID: " + userLeChuckOid);

            Console.WriteLine("=========================================================");
            Console.WriteLine("Changing password for guybrush...");
            changeUserPassword(modelPort, userGuybrushoid, "MIGHTYpirate");
            Console.WriteLine("Done.");

            Console.WriteLine("=========================================================");
            Console.WriteLine("Changing given name for lechuck...");
            changeUserGivenName(modelPort, userLeChuckOid, "CHUCK");
            Console.WriteLine("Done.");

            Console.WriteLine("=========================================================");
            Console.WriteLine("Assigning roles to guybrush...");
            assignRoles(modelPort, userGuybrushoid, new string[] { ROLE_PIRATE_OID, ROLE_CAPTAIN_OID });
            Console.WriteLine("Done.");

            Console.WriteLine("=========================================================");
            Console.WriteLine("Unassigning a role from guybrush...");
            unAssignRoles(modelPort, userGuybrushoid, new string[] { ROLE_CAPTAIN_OID });
            Console.WriteLine("Done.");

            Console.WriteLine("=========================================================");
            Console.WriteLine("Getting requestable roles...");
            ObjectType1[] roles = listRequestableRoles(modelPort);
            Console.WriteLine(dump(roles));

            // Comment-out the following lines if you want to see what midPoint really did
            // ... because deleting the user will delete also all the traces (except logs and audit of course).
            Console.WriteLine("=========================================================");
            Console.WriteLine("Deleting users guybrush and lechuck...");
            deleteUser(modelPort, userGuybrushoid);
            deleteUser(modelPort, userLeChuckOid);
            Console.WriteLine("Done.");
        }
Ejemplo n.º 27
0
	    private static String createUserFromFile(modelPortType modelPort, String fileName) 
        {
            StreamReader reader = new StreamReader(fileName);
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(UserType));
            UserType user = (UserType) xmlSerializer.Deserialize(reader);
            
            return createUser(modelPort, user);
    	}
Ejemplo n.º 28
0
	    private static String createUser(modelPortType modelPort, UserType userType)
        {
            ObjectDeltaType deltaType = new ObjectDeltaType();
            deltaType.objectType = USER_TYPE;
            deltaType.changeType = ChangeTypeType.add;
            deltaType.objectToAdd = userType;

            executeChanges request = new executeChanges(new ObjectDeltaType[] { deltaType }, null);
            executeChangesResponse response = modelPort.executeChanges(request);

		    return getOidFromDeltaOperationList(response.deltaOperationList, deltaType);
	    }
Ejemplo n.º 29
0
        private static ObjectType1[] listObjects(modelPortType modelPort, XmlQualifiedName type)
        {
            searchObjects request = new searchObjects(type, null, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;
            ObjectType1[] objects = objectList.@object;
            return objects;
        }
Ejemplo n.º 30
0
        private static void changeUserGivenName(modelPortType modelPort, String oid, String newValue) 
        {
   		    ItemDeltaType itemDelta = new ItemDeltaType();
		    itemDelta.modificationType = ModificationTypeType.replace;
		    itemDelta.path = createItemPathType("givenName");
            itemDelta.value = new object[] { createPolyStringType(newValue) };

            ObjectDeltaType objectDelta = new ObjectDeltaType();
            objectDelta.objectType = USER_TYPE;
            objectDelta.changeType = ChangeTypeType.modify;
            objectDelta.oid = oid;
            objectDelta.itemDelta = new ItemDeltaType[] { itemDelta };

            executeChanges request = new executeChanges(new ObjectDeltaType[] { objectDelta }, null);
            executeChangesResponse response = modelPort.executeChanges(request);
            check(response);
        }
Ejemplo n.º 31
0
        private static ObjectType1[] listObjectsRestrictedAndSorted(modelPortType modelPort, XmlQualifiedName type)
        {
            // let's say we want to get first 3 users, sorted alphabetically by user name

            QueryType queryType = new QueryType();          // holds search query + paging options
            PagingType pagingType = new PagingType();
            pagingType.maxSize = 3;
            ItemPathType orderBy = createItemPathType("name");
            pagingType.orderBy = orderBy;
            pagingType.orderDirection = OrderDirectionType.ascending;

            queryType.paging = pagingType;

            searchObjects request = new searchObjects(type, queryType, null);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;
            ObjectType1[] objects = objectList.@object;
            return objects;
        }
Ejemplo n.º 32
0
	    private static void modifyRoleAssignment(modelPortType modelPort, String userOid, bool isAdd, String[] roleOids) 
        {
		    ItemDeltaType assignmentDelta = new ItemDeltaType();
		    if (isAdd) 
            {
			    assignmentDelta.modificationType = ModificationTypeType.add;
		    } 
            else 
            {
			    assignmentDelta.modificationType = ModificationTypeType.delete;
		    }
            assignmentDelta.path = createItemPathType("assignment");
            List<object> assignments = new List<object>();
		    foreach (String roleOid in roleOids) 
            {
                assignments.Add(createRoleAssignment(roleOid));
		    }
            assignmentDelta.value = assignments.ToArray();

            ObjectDeltaType objectDelta = new ObjectDeltaType();
            objectDelta.objectType = USER_TYPE;
            objectDelta.changeType = ChangeTypeType.modify;
            objectDelta.oid = userOid;
            objectDelta.itemDelta = new ItemDeltaType[] { assignmentDelta };

            executeChanges request = new executeChanges(new ObjectDeltaType[] { objectDelta }, null);
            executeChangesResponse response = modelPort.executeChanges(request);
            check(response);
    	}
Ejemplo n.º 33
0
        private static TaskType[] listTasks(modelPortType modelPort) 
        {
            // Let's say we want to retrieve tasks' next scheduled time (because this may be a costly operation if
            // JDBC based quartz scheduler is used, the fetching of this attribute has to be explicitly requested)
            SelectorQualifiedGetOptionType getNextScheduledTimeOption = new SelectorQualifiedGetOptionType();

            // prepare a selector (described by path) + options (saying to retrieve that attribute)
            ObjectSelectorType selector = new ObjectSelectorType();
            selector.path = createItemPathType("nextRunStartTimestamp");
            getNextScheduledTimeOption.selector = selector;
        
            GetOperationOptionsType selectorOptions = new GetOperationOptionsType();
            selectorOptions.retrieve = RetrieveOptionType.include;
            selectorOptions.retrieveSpecified = true;
            getNextScheduledTimeOption.options = selectorOptions;

            SelectorQualifiedGetOptionType[] operationOptions = new SelectorQualifiedGetOptionType[] { getNextScheduledTimeOption };

            searchObjects request = new searchObjects(TASK_TYPE, null, operationOptions);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;
            List<TaskType> tasks = new List<TaskType>();
            foreach (ObjectType1 object1 in response.objectList.@object)
            {
                tasks.Add((TaskType)object1);
            }
            return tasks.ToArray();
        }
Ejemplo n.º 34
0
        private static void deleteUser(modelPortType modelPort, String oid)
        {
            ObjectDeltaType objectDelta = new ObjectDeltaType();
            objectDelta.objectType = USER_TYPE;
            objectDelta.changeType = ChangeTypeType.delete;
            objectDelta.oid = oid;

            executeChanges request = new executeChanges(new ObjectDeltaType[] { objectDelta }, null);
            executeChangesResponse response = modelPort.executeChanges(request);
            check(response);
        }
        /// <summary>
        /// Searches for the given user using the given Midpoint model port.
        /// Returns the UserType object for the user if they exist.
        /// </summary>
        /// <param name="modelPort">The model port used to run search Midpoint.</param>
        /// <param name="username">The username to search for.</param>
        /// <returns>The UserType object for the requested user, or null if not found.</returns>
        public static UserType searchUserByName(modelPortType modelPort, string username)
        {
            // WARNING: in a real case make sure that the username is properly escaped before putting it in XML
            XmlElement filter = parseElement(
                            "<equal xmlns='" + SEARCHUSER_NS + "' xmlns:c='" + NS_COMMON + "' >" +
                                "<path>c:name</path>" +
                                "<value>" + username + "</value>" +
                            "</equal>"
            );
            QueryType query = new QueryType();
            // Set filter value - webservices name is apparently 'Any'?
            query.Any = filter;
            // Create an empty array since it can't be uninitialised
            ObjectOperationOptionsType[] options = new ObjectOperationOptionsType[0];

            searchObjects request = new searchObjects(getTypeUri(new UserType()), query, options);
            searchObjectsResponse response = modelPort.searchObjects(request);

            ObjectListType objectList = response.objectList;
            ObjectType[] objects = objectList.@object;

            if (objects != null)
            {
                switch (objects.Length)
                {
                    case 0:
                        return null;
                        break;
                    case 1:
                        return (UserType)objects[0];
                        break;
                    default:
                        throw new ArgumentException("Expected to find a single user with username '" + username + "' but found " + objects.Length + " users instead");
                }
            }
            else
            {
                return null;
            }
        }