...
Code Block | ||||
---|---|---|---|---|
| ||||
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
...
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Options
...
Example
...
Code Block | ||
---|---|---|
| ||
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 (Content by label) | ||||||
---|---|---|---|---|---|---|
|