Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Insert excerpt
US:_r_EDMInterface
US:_r_EDMInterface
nopaneltrue

 

Options

...

  

OptionComment
Option nameComment

 

Example

...

 

Code Block
languagecpp
 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); 
 . . .

...