</DT><DD>
Replaced signal function to NO-RESTART one (openatem-all).
</DD>
+ <DT>Ver.1.0.2 at 2016.5.18
+ </DT><DD>
+ Added warning message at registrating other user's device (openatem-all).
+ </DD>
</DL>
<P>
<B>Please see GIT on osdn.jp to check the differences between versions.</B>
return ret;
}
+/******************************************************/
+/* Does the mac address belong to the userid@extraid */
+/* all-args:(input) */
+/* return value: true(1)=YES, false(0)=NO */
+/******************************************************/
+int doesMacAddrBelongToUser(char* macAddr, char* userId, char* extraId){
+
+ MYSQL_RES *res=NULL;
+ MYSQL_ROW row;
+ char queryStr[BUFFMAXLN];
+ char existsStr[WORDMAXLN];
+ int exists=FALSE;
+
+ /* prepare query string */
+ snprintf(queryStr, BUFFMAXLN,
+ "select exists(select * from macaddrs "
+ " where macAddress='%s' and userId='%s' "
+ " and extraId='%s' and status!='D') ",
+ macAddr, userId, extraId);
+
+ /* send SQL query */
+ if (mysql_query(&mysql, queryStr)){
+ err_msg("ERR at %s#%d: mysql query: %s",__FILE__,__LINE__,
+ mysql_error(&mysql));
+ return FALSE;
+ }
+
+ /* store query result */
+ res = mysql_store_result(&mysql);
+
+ /* get a row from query result */
+ row = mysql_fetch_row(res);
+
+ /* if found, return the count */
+ if(row!=NULL){
+ strlcpy(existsStr, row[0], WORDMAXLN);
+ exists=atoi(existsStr);
+ }
+
+ /* free memory area */
+ mysql_free_result(res);
+
+ return exists;
+}
+
/********************************************
routines for debugging output
********************************************/
if(debug>1) err_msg("DEBUG:(%d)<=isMacAddrStatusInactiveInMngDb()",ret);
return ret;
}
+
+int DoesMacAddrBelongToUser(char* macAddr, char* userId, char* extraId){
+ int ret;
+ if(debug>1) err_msg("DEBUG:=>doesMacAddrBelongToUser(%s,%s,%s)",
+ macAddr,userId,extraId);
+ ret=doesMacAddrBelongToUser(macAddr,userId,extraId);
+ if(debug>1) err_msg("DEBUG:(%d)<=doesMacAddrBelongToUser( )",ret);
+ return ret;
+}
/******************************/
char* messagesInEn(int msgNo){
char* messages[ENDOFLIST];
- messages[ExistentMacAddr]="Error: Mac address is already registered. Update it in update page.";
+ messages[ExistentMacAddr]="Error: Mac address is already registered. Update or delete it.";
messages[DeviceCountOver]="Error: Device count reachs to the limit per one user. To register new device, remove a registered device.";
messages[IllegalMacAddrForm]= "Error: Mac address format is illegal.";
messages[IllegalCharInDevice]="Error: Not permitted character is found in device name.";
messages[NotSetAdminCookie]="Error: Cannot found admin cookie. Enter from check page.";
messages[RequestAdminAuth]="Enter Administrator's userID and password.";
messages[UnallowableAgent]="Cannot recognize the terminal to be allowable.";
-
+ messages[MacBelongToOther]="Accessing terminal belongs to other user. To register the terminal, the user should delete the registration.";
return messages[msgNo];
}
/*************************************/
char* messagesInJa(int msgNo){
char* messages[ENDOFLIST];
- messages[ExistentMacAddr]= "ã\82¨ã\83©ã\83¼ï¼\9aæ\97¢ç\99»é\8c²ã\81®MACã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81\99ã\80\82æ\9b´æ\96°ã\83\9aã\83¼ã\82¸ã\81§æ\9b´æ\96°してください。";
+ messages[ExistentMacAddr]= "ã\82¨ã\83©ã\83¼ï¼\9aæ\97¢ç\99»é\8c²ã\81®MACã\82¢ã\83\89ã\83¬ã\82¹ã\81§ã\81\99ã\80\82æ\9b´æ\96°ã\81¾ã\81\9fã\81¯å\89\8aé\99¤ã\82\92してください。";
messages[DeviceCountOver]= "エラー:一人当りの許容機器数に達しています。新たな機器を登録するには登録済の一つを削除してください。";
messages[IllegalMacAddrForm]= "エラー:MACアドレスの形式が不正です。";
messages[IllegalCharInDevice]="エラー:許容されていない文字が機器名にあります。";
messages[NotSetAdminCookie]="エラー : 管理者のCookieを取得できません。チェックページから入って下さい。";
messages[RequestAdminAuth]="管理者のIDとPasswordを入力してください。";
messages[UnallowableAgent]="登録許容端末と認識できません。";
+ messages[MacBelongToOther]="エラー : 別ユーザIDの登録端末です。再登録するには、そのユーザIDで登録を削除する必要があります。";
+;
return messages[msgNo];
}
IllegalCharInDevice,EmptyDeviceName,IllegalCharInMailAddr,SuspectNat,
NoInfoInDb,IllegalUserId,IllegalMacAddr,NoService,
NoDaemon,ModifyCountOver,RegisterSuccess,UpdateSuccess,IllegalCookie,
- NotSetAdminCookie,RequestAdminAuth,UnallowableAgent,
+ NotSetAdminCookie,RequestAdminAuth,UnallowableAgent,MacBelongToOther,
ENDOFLIST};
/**********prototypes***************************************/
int RenameMailAddressInMngDb(char* macAddr, char* mailStr);
int RegOrUpNobodyMacAddr(char* macAddress);
int IsMacAddrStatusInactiveInMngDb(char* macAddress);
+int DoesMacAddrBelongToUser(char* macAddr, char* userId, char* extraId);
/* workdb.c */
int SetupSqliteBusyTimeoutValue(void);
ReturnToRedirectedPage(redirectedUrl, language);
}
- /* if no execution and the MAC is registered, send back update page */
+ /* if the MAC is registered in management db, */
else if(IsMacAddrFoundInMngDb(macAddress)){
- PutUpdatePageToClient(language, userId, extraId, OWNER, redirectedUrl);
+
+ /* and the MAC belongs to the accessing user, put the update page */
+ if(DoesMacAddrBelongToUser(macAddress, userId, extraId)){
+ PutUpdatePageToClient(language, userId, extraId, OWNER, redirectedUrl);
+ }
+ /* otherwise, put deny page */
+ else{
+ SetMessage(MacBelongToOther);
+ PutDenyToClient(language);
+ }
}
/* the MAC is not-registered */