edmiRemoteProtectInstance
EdmiError edmiRemoteProtectInstance(SdaiServerContext serverContextId, SdaiAppInstance currInst, SdaiUnsignedInt protection, SdaiInvocationId *edmiInvocationId);
Sets a protection code on a protected instance in a remote EDMdatabase When a protected instance is created, the default protection code is set according to default values that are set as configuration parameters in the remote EDMdatabase . These default settings may be changed by the owner/administrators of the protected instance or by the superuser.
Arguments
Type | Name | Comment |
SdaiServerContext | serverContextId | Context identification, from edmiDefineServerContext |
SdaiAppInstance | currInst | A numeric instanceID that uniquely identifies a protected instance for which the protection code Shall be set. This instanceId may represent any protected object in the remote EDMdatabase such as models, repositories, schemas and containers. |
SdaiUnsignedInt | protection | Specifies the protection to be set for the specified protected instance. The value should be a bitwise OR of any combination of the symbols listed below. |
SdaiInvocationId | edmiInvocationId | Currently not used. |
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.
Â