edmiRemoteChangeInstanceOwner
EdmiError edmiRemoteChangeInstanceOwner(SdaiServerContext serverContextId, SdaiAppInstance currInst, SdaiInstance userORgroupId, SdaiUnsignedInt options, SdaiInvocationId *edmiInvocationId);
Changes the owner of a protected instance in a remote EDMdatabase. An instance owner may be an EDMuser or an EDMgroup. EDMusers are denoted owners, while EDMgroups are denoted owner groups. Any protected instance may be owned by an EDMuser and/or an EDMgroup. By default, that will be the EDMuser/EDMgroup account that initially created the instance. Ownership may also be granted to any EDMuser and/or EDMgroup by the superuser. If the database is created with the EXTENDED_ACCESS_CHECKING system parameter set, changing the owner/owner group of an instance, will also implicitly cause the owner/owner group to be added to the list of instance administrators.Only the superuser may change ownership of instances.
Arguments
Return Value
Options
Example
EdmiError rstat; SdaiInstance instId; SdaiServerContext myContext; SdaiRepository repId; SdaiModel modId; SdaiInstance userId, directorId; SdaiBoolean gotAccess; SdaiInteger accessRole, protCode, accRights; /* Define Remote Server Context */ rstat = edmiDefineServerContext("MyRemoteServerContext", "Superuser", NULL, "cf37ftr", "TCP", "9090", "MyServerHost", NULL, NULL, NULL, NULL, NULL, &myContext); /* Check if Johnny got access */ rstat = edmiRemoteGetRepository(myContext, "StaffRepository",&repId, NULL); rstat = edmiRemoteGetUser(myContext, "Johnny", &userId, NULL); rstat = edmiRemoteCheckInstanceAccess(myContext, repId, 0,WRITE_ACCESS|CREATE_ACCESS, userId, 0, 0,&gotAccess, &instId, &accessRole,&protCode, &accRights, NULL); /* Check if access may be granted */ if (gotAccess != sdaiTRUE) { /* Check if Johnny was individually excluded */ if (accessRole == ACCESS_FOR_USER) { printf("\nSorry Johnny has already been excluded."); goto err; } else if (accessRole != PUBLIC_ACCESS) { printf("\nJohnny is owner or administrator."); printf("\nIndividual access rights will have no effect."); goto err; } else { /* Grant access to Johnny on the StaffRepository */ rstat = edmiRemoteDefineAccessRights(myContext, repId, userId, (WRITE_ACCESS|CREATE_ACCESS), NULL); } } /* Create Johnnys Hour List Model */ rstat = edmiRemoteCreateModel(myContext, "StaffRepository", "JohnnysHourList", "HOUR_LIST_SCHEMA", 0, NULL); rstat = edmiRemoteGetModel(myContext, repId, "JohnnysHourList", &modId, NULL); /* Change ownership */ rstat = edmiRemoteChangeInstanceOwner(myContext, modId, userId, (SET_OWNER|REPLACE_CURRENT), NULL); /* Set protection */ rstat = edmiRemoteProtectInstance(myContext, modId, (GROUP_NONE|PUBLIC_NONE|OWNER_CREATE| OWNER_DELETE|OWNER_WRITE), NULL); /* Grant read access to director */ rstat = edmiRemoteGetUser(myContext, "Director", &directorId, NULL); rstat = edmiRemoteDefineAccessRights(myContext, modId, directorId, READ_ACCESS, NULL); . . .
See also
Filter by label
There are no items with the selected labels at this time.