int GeUser::get_user( const char *gu_system, const char *gu_user, const char *gu_password, unsigned int *priv) { UserList *ul; SystemList *sl; SystemName *sn, *parent; int sts; char system[80]; char password[80]; char user[80]; cdh_ToLower( system, gu_system); cdh_ToLower( user, gu_user); strcpy( password, gu_password); // Find system sn = new SystemName( system); sts = sn->parse(); if ( EVEN(sts)) { delete sn; return USER__NOSUCHSYSTEM; } while( sn) { sl = find_system( sn); if ( sl) { ul = (UserList *) sl->find_user( user); if ( ul) { sts = ul->check_password( password); if ( EVEN(sts)) return sts; *priv = ul->priv; return USER__SUCCESS; } if ( !(sl->attributes & user_mSystemAttr_UserInherit)) break; } parent = sn->parent(); if ( parent) parent->parse(); delete sn; sn = parent; } return USER__NOSUCHUSER; }