...
Code Block | ||||
---|---|---|---|---|
| ||||
EdmiError edmiRemoteDeleteUser(SdaiServerContext serverContextId,
SdaiUser userId,
SdaiInvocationId *edmiInvocationId);
|
Deletes an EDMuser identified by its userId from a remote EDMdatabase
...
.
...
An EDMuser may not be deleted when it is connected to an EDMserver
...
. Neither may it be deleted if it is the owner of data in the remote EDMdatabase
...
.
...
Only the superuser may use this function.
...
Arguments
...
Type | Name | Comment |
SdaiServerContext | serverContextId | Context identification, from edmiDefineServerContext |
SdaiUser | userId | The numeric userID that uniquely identifies the EDMuser to be deleted. |
SdaiInvocationId | edmiInvocationId | Currently not used. |
...
Return Value
...
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
Options
...
Example
...
Code Block | ||
---|---|---|
| ||
/* Delete User 'Lucy' and Give all Lucys objects to Johnny. */ EdmiError rstat; SdaiServerContext suContext; SdaiUser lucyUserId, johnnyUserId; /* Define Remote Server Context for the superuser */ rstat = edmiDefineServerContext("SuperUserContext", |
...
"superuser", NULL, "xfx56kl9", |
...
"TCP", "9090", "MyServerHost", |
...
NULL, NULL, NULL, NULL, NULL, &suContext); |
...
/* Get the user Id for 'Lucy' */ |
...
rstat = edmiRemoteGetUser(suContext, "Lucy", &lucyUserId, NULL); |
...
/* Try to delete 'Lucy' */ |
...
rstat = edmiRemoteDeleteUser(suContext, lucyUserId, NULL); |
...
if (rstat == edmiE_USER_OWNS) { |
...
/* Lucy may not own objects when deleted. |
...
Must locate an object owned by Lucy. */ |
...
SdaiAggr _instAggr; |
...
SdaiModel _instId; |
...
SdaiInteger _index, _nInst, _nTot; |
...
/* Get all edm_models from the ExpressDataManager model */ |
...
rstat = edmiRemoteGetEntityExtentBN(suContext, "SystemRepository", |
...
"ExpressDataManager", "EDM_MODEL", 0, |
...
&_instAggr, &_nInst, &_nTot, NULL); |
...
_index = 0; |
...
_nInst = 1; |
...
_instId = 0; |
...
/* Look for models owned by 'Lucy' */ |
...
rstat = edmiRemoteFindAggrInstances(suContext, _instAggr, |
...
"OWNER = lucyUserId", 1, |
...
&_index, &_nInst, &_instId, NULL); |
...
if (!_instId) { |
...
/* Lucy owns no models. Get all edm_repositories |
...
from the ExpressDataManager model */ rstat = edmiRemoteGetEntityExtentBN(suContext, "SystemRepository", |
...
"ExpressDataManager", "EDM_REPOSITORY", 0, |
...
&_instAggr, &_nInst, &_nTot, NULL); |
...
_nInst = 1; |
...
/* Look for repositories owned by 'Lucy' */ |
...
rstat = edmiRemoteFindAggrInstances(suContext, _instAggr, |
...
"OWNER = lucyUserId", 1, |
...
&_index, &_nInst, &_instId, NULL); |
...
if (!_instId) { |
...
/* Lucy owns no protected objects. Something is wrong. |
...
There is nothing more to be owned by Lucy !! */ |
...
printf("ERROR: Can not find object owned by Lucy"); |
...
goto err; |
...
} } /* Get the 'Johnny' user Id */ |
...
rstat = edmiRemoteGetUser(suContext, "Johnny", &johnnyUserId, NULL); |
...
/* Give all objects owned by Lucy to Johnny */ |
...
rstat = edmiRemoteChangeInstanceOwner(suContext, _instId, |
...
johnnyUserId, FOR_ALL_OWNED_INSTANCES, NULL); |
...
/* Delete Lucy */ |
...
rstat = edmiRemoteDeleteUser(suContext, lucyUserId, NULL); |
...
printf("\nLucy was deleted. Johnny was given ownership \ |
...
to all Lucys objects"); |
...
}
. . . |
See also
Filter by label (Content by label) | ||||||
---|---|---|---|---|---|---|
|