127: -- initializing
128: l_module_source := G_MODULE_SOURCE || 'delete_user: ';
129: x_result := fnd_ldap_util.G_SUCCESS;
130:
131: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
132: then
133: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
134: end if;
135:
129: x_result := fnd_ldap_util.G_SUCCESS;
130:
131: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
132: then
133: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
134: end if;
135:
136: --scheruku :: Added logic to get orclguid from fnd_user
137: -- l_apps_user_key_type := fnd_oid_util.get_fnd_user(p_user_name => p_user_name);
139: l_orclguid := p_user_guid;
140:
141: if(l_orclguid IS NULL)
142: then
143: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
144: then
145: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
146: 'NULL guid in FND_USER');
147: end if;
141: if(l_orclguid IS NULL)
142: then
143: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
144: then
145: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
146: 'NULL guid in FND_USER');
147: end if;
148: x_result := fnd_ldap_util.G_FAILURE;
149: else
146: 'NULL guid in FND_USER');
147: end if;
148: x_result := fnd_ldap_util.G_FAILURE;
149: else
150: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
151: then
152: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
153: 'FND_USER GUID::'||l_orclguid);
154: end if;
148: x_result := fnd_ldap_util.G_FAILURE;
149: else
150: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
151: then
152: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
153: 'FND_USER GUID::'||l_orclguid);
154: end if;
155: l_filter := 'orclguid='||l_orclguid;
156: --ldapSession := fnd_ldap_util.get_oid_session;
203: --x_result := fnd_ldap_util.unbind(ldapSession);
204:
205: ELSE
206:
207: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
208: then
209: if (upper(l_creatorname) = upper(fnd_ldap_util.get_orclappname)) THEN
210: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'NOT DELETED BECAUSE was created by '||l_creatorname);
211: END IF;
206:
207: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
208: then
209: if (upper(l_creatorname) = upper(fnd_ldap_util.get_orclappname)) THEN
210: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'NOT DELETED BECAUSE was created by '||l_creatorname);
211: END IF;
212:
213: if NOT (l_isenabled is not NULL and (upper(l_isenabled) = 'INACTIVE' or upper(l_isenabled) = 'DISABLED'))
214: THEN
211: END IF;
212:
213: if NOT (l_isenabled is not NULL and (upper(l_isenabled) = 'INACTIVE' or upper(l_isenabled) = 'DISABLED'))
214: THEN
215: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'NOT DELETED BECAUSE is still enabled '||l_isenabled);
216: END IF;
217: end if;
218: end if;
219: end if;
223: x_result := fnd_ldap_util.G_SUCCESS;
224: end if;
225: end if;-- fnd_user guid null check if block ends here
226:
227: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
228: then
229: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End');
230: end if;
231:
225: end if;-- fnd_user guid null check if block ends here
226:
227: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
228: then
229: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End');
230: end if;
231:
232: exception
233: when others then
230: end if;
231:
232: exception
233: when others then
234: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
235: then
236: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
237: end if;
238: x_result := fnd_ldap_util.G_FAILURE;
232: exception
233: when others then
234: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
235: then
236: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
237: end if;
238: x_result := fnd_ldap_util.G_FAILURE;
239:
240: end delete_user;
280: PRAGMA EXCEPTION_INIT (no_such_user_exp, -20001);
281: l_module_source varchar2(256):= G_MODULE_SOURCE || 'change_password: ';
282:
283: BEGIN
284: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
285: then
286: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin - call update user');
287: end if;
288:
282:
283: BEGIN
284: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
285: then
286: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin - call update user');
287: end if;
288:
289: update_user(p_user_guid =>p_user_guid,
290: p_user_name=>p_user_name,
293: x_password=>x_password,
294: x_result => x_result,
295: x_user_creation=>p_user_creation);
296:
297: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
298: then
299: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
300: end if;
301:
295: x_user_creation=>p_user_creation);
296:
297: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
298: then
299: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
300: end if;
301:
302: exception
303: when no_such_user_exp then
301:
302: exception
303: when no_such_user_exp then
304: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
305: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
306: then
307: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
308: end if;
309: x_result := fnd_ldap_util.G_FAILURE;
303: when no_such_user_exp then
304: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
305: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
306: then
307: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
308: end if;
309: x_result := fnd_ldap_util.G_FAILURE;
310: when others then
311: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
308: end if;
309: x_result := fnd_ldap_util.G_FAILURE;
310: when others then
311: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
312: if (fnd_log.LEVEL_EXCEPTION>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
313: then
314: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
315: end if;
316: --x_result := fnd_ldap_util.G_FAILURE;
310: when others then
311: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
312: if (fnd_log.LEVEL_EXCEPTION>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
313: then
314: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
315: end if;
316: --x_result := fnd_ldap_util.G_FAILURE;
317: -- bug 4573677
318: raise;
344: end if;
345: return result;
346:
347: EXCEPTION WHEN OTHERS THEN
348: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
349: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE || 'user_exists_by_guid:', sqlerrm);
350: END IF;
351: raise;
352:
345: return result;
346:
347: EXCEPTION WHEN OTHERS THEN
348: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
349: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE || 'user_exists_by_guid:', sqlerrm);
350: END IF;
351: raise;
352:
353: end user_exists_by_guid;
380: x_oid pls_integer;
381:
382: begin
383: l_module_source := G_MODULE_SOURCE || 'change_user_name: ';
384: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
385: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
386: END IF;
387: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
388: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'guid:'||p_user_guid||' old='||p_old_user_name||' new='||p_new_user_name);
381:
382: begin
383: l_module_source := G_MODULE_SOURCE || 'change_user_name: ';
384: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
385: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
386: END IF;
387: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
388: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'guid:'||p_user_guid||' old='||p_old_user_name||' new='||p_new_user_name);
389: END IF;
383: l_module_source := G_MODULE_SOURCE || 'change_user_name: ';
384: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
385: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
386: END IF;
387: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
388: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'guid:'||p_user_guid||' old='||p_old_user_name||' new='||p_new_user_name);
389: END IF;
390: -- Check the obivious: No change (ignore case)
391: IF (upper(p_old_user_name) =upper(p_new_user_name))THEN
384: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
385: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
386: END IF;
387: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
388: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'guid:'||p_user_guid||' old='||p_old_user_name||' new='||p_new_user_name);
389: END IF;
390: -- Check the obivious: No change (ignore case)
391: IF (upper(p_old_user_name) =upper(p_new_user_name))THEN
392: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
388: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'guid:'||p_user_guid||' old='||p_old_user_name||' new='||p_new_user_name);
389: END IF;
390: -- Check the obivious: No change (ignore case)
391: IF (upper(p_old_user_name) =upper(p_new_user_name))THEN
392: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
393: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> SAME NAMES, no changes!');
394: END IF;
395: x_result:=fnd_ldap_util.G_SUCCESS;
396: RETURN;
389: END IF;
390: -- Check the obivious: No change (ignore case)
391: IF (upper(p_old_user_name) =upper(p_new_user_name))THEN
392: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
393: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> SAME NAMES, no changes!');
394: END IF;
395: x_result:=fnd_ldap_util.G_SUCCESS;
396: RETURN;
397: END IF;
404: WHERE user_guid=p_user_guid
405: AND user_name =p_old_user_name;
406: EXCEPTION
407: WHEN NO_DATA_FOUND THEN
408: IF (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
409: fnd_log.string(fnd_log.LEVEL_UNEXPECTED , l_module_source, 'Cannot locate user_name[new]='||p_new_user_name||' guid='|| p_user_guid||':'||sqlerrm);
410: END IF;
411: x_result:=fnd_ldap_util.G_FAILURE;
412: RETURN;
405: AND user_name =p_old_user_name;
406: EXCEPTION
407: WHEN NO_DATA_FOUND THEN
408: IF (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
409: fnd_log.string(fnd_log.LEVEL_UNEXPECTED , l_module_source, 'Cannot locate user_name[new]='||p_new_user_name||' guid='|| p_user_guid||':'||sqlerrm);
410: END IF;
411: x_result:=fnd_ldap_util.G_FAILURE;
412: RETURN;
413: END;
411: x_result:=fnd_ldap_util.G_FAILURE;
412: RETURN;
413: END;
414: /** to do - what if there are multiple linked users ? **/
415: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
416: then
417: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'USER id:: '||l_user_id);
418: end if;
419: l_to_synch := CanSync(l_user_id,p_old_user_name);
413: END;
414: /** to do - what if there are multiple linked users ? **/
415: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
416: then
417: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'USER id:: '||l_user_id);
418: end if;
419: l_to_synch := CanSync(l_user_id,p_old_user_name);
420: IF (l_to_synch) THEN
421: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
417: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'USER id:: '||l_user_id);
418: end if;
419: l_to_synch := CanSync(l_user_id,p_old_user_name);
420: IF (l_to_synch) THEN
421: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
422: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'SYNC user '||p_new_user_name);
423: END IF;
424: ldap := fnd_ldap_util.c_get_oid_session(flag);
425: IF FND_LDAP_UTIL.loadLdapRecord( ldap, user_rec.user_data, dn , p_user_guid, fnd_ldap_util.G_GUID_KEY) THEN
418: end if;
419: l_to_synch := CanSync(l_user_id,p_old_user_name);
420: IF (l_to_synch) THEN
421: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
422: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'SYNC user '||p_new_user_name);
423: END IF;
424: ldap := fnd_ldap_util.c_get_oid_session(flag);
425: IF FND_LDAP_UTIL.loadLdapRecord( ldap, user_rec.user_data, dn , p_user_guid, fnd_ldap_util.G_GUID_KEY) THEN
426: user_rec.dn :=dn;
423: END IF;
424: ldap := fnd_ldap_util.c_get_oid_session(flag);
425: IF FND_LDAP_UTIL.loadLdapRecord( ldap, user_rec.user_data, dn , p_user_guid, fnd_ldap_util.G_GUID_KEY) THEN
426: user_rec.dn :=dn;
427: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
428: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating dn:'||dn);
429: END IF;
430: ProcessLoadedLpadUserRecord(user_rec,NULL,dn);
431: nna := user_rec.NickName_ATT_NAME;
424: ldap := fnd_ldap_util.c_get_oid_session(flag);
425: IF FND_LDAP_UTIL.loadLdapRecord( ldap, user_rec.user_data, dn , p_user_guid, fnd_ldap_util.G_GUID_KEY) THEN
426: user_rec.dn :=dn;
427: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
428: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating dn:'||dn);
429: END IF;
430: ProcessLoadedLpadUserRecord(user_rec,NULL,dn);
431: nna := user_rec.NickName_ATT_NAME;
432:
443: if (x_oid = FND_LDAP_WRAPPER.G_SUCCESS ) THEN
444: i := user_rec.user_data(nna).first;
445: found := false;
446: target.delete;
447: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
448: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Verifiying that Nickname atrribute does contain username in '||nna);
449: END IF;
450:
451: while i is not null loop
444: i := user_rec.user_data(nna).first;
445: found := false;
446: target.delete;
447: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
448: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Verifiying that Nickname atrribute does contain username in '||nna);
449: END IF;
450:
451: while i is not null loop
452: if (user_rec.user_data(nna)(i)=p_old_user_name) THEN
451: while i is not null loop
452: if (user_rec.user_data(nna)(i)=p_old_user_name) THEN
453: found := true;
454: target(target.count) := p_new_user_name;
455: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
456: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'It does');
457: END IF;
458:
459: ELSE
452: if (user_rec.user_data(nna)(i)=p_old_user_name) THEN
453: found := true;
454: target(target.count) := p_new_user_name;
455: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
456: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'It does');
457: END IF;
458:
459: ELSE
460: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
456: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'It does');
457: END IF;
458:
459: ELSE
460: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
461: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'may need to keep '||user_rec.user_data(nna)(i));
462: END IF;
463:
464: target(target.count) := user_rec.user_data(nna)(i);
457: END IF;
458:
459: ELSE
460: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
461: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'may need to keep '||user_rec.user_data(nna)(i));
462: END IF;
463:
464: target(target.count) := user_rec.user_data(nna)(i);
465: END IF;
465: END IF;
466: i:= user_rec.user_data(nna).next(i);
467: end loop;
468: IF found THEN
469: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
470: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating LDAP ');
471: END IF;
472: ma := dbms_ldap.create_mod_array(num=> 1);
473: dbms_ldap.populate_mod_array(modptr => ma,
466: i:= user_rec.user_data(nna).next(i);
467: end loop;
468: IF found THEN
469: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
470: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating LDAP ');
471: END IF;
472: ma := dbms_ldap.create_mod_array(num=> 1);
473: dbms_ldap.populate_mod_array(modptr => ma,
474: mod_op => DBMS_LDAP.MOD_REPLACE,
476: modval => target);
477: x_result:= dbms_ldap.modify_s(ldap,user_rec.dn, ma);
478: if (x_result = dbms_ldap.SUCCESS) then
479: x_result := fnd_ldap_util.G_SUCCESS;
480: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
481: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating succedd ');
482: END IF;
483: end if;
484: dbms_ldap.free_mod_array(modptr => ma);
477: x_result:= dbms_ldap.modify_s(ldap,user_rec.dn, ma);
478: if (x_result = dbms_ldap.SUCCESS) then
479: x_result := fnd_ldap_util.G_SUCCESS;
480: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
481: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating succedd ');
482: END IF;
483: end if;
484: dbms_ldap.free_mod_array(modptr => ma);
485: ELSE
482: END IF;
483: end if;
484: dbms_ldap.free_mod_array(modptr => ma);
485: ELSE
486: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
487: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Cannot update nickname attribute');
488: END IF;
489: END IF;
490: ELSE
483: end if;
484: dbms_ldap.free_mod_array(modptr => ma);
485: ELSE
486: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
487: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Cannot update nickname attribute');
488: END IF;
489: END IF;
490: ELSE
491:
488: END IF;
489: END IF;
490: ELSE
491:
492: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
493: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'NickName att does not contain username, no changes ');
494: END IF;
495: END IF;
496: ELSE
489: END IF;
490: ELSE
491:
492: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
493: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'NickName att does not contain username, no changes ');
494: END IF;
495: END IF;
496: ELSE
497: IF (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
493: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'NickName att does not contain username, no changes ');
494: END IF;
495: END IF;
496: ELSE
497: IF (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
498: fnd_log.string(fnd_log.LEVEL_UNEXPECTED , l_module_source, 'Cannot locate user_name[new]='||p_new_user_name||' guid='|| p_user_guid||':'||sqlerrm);
499: END IF;
500: raise no_such_user_exp;
501: END IF;
494: END IF;
495: END IF;
496: ELSE
497: IF (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
498: fnd_log.string(fnd_log.LEVEL_UNEXPECTED , l_module_source, 'Cannot locate user_name[new]='||p_new_user_name||' guid='|| p_user_guid||':'||sqlerrm);
499: END IF;
500: raise no_such_user_exp;
501: END IF;
502: fnd_ldap_util.c_unbind(ldap,flag);
501: END IF;
502: fnd_ldap_util.c_unbind(ldap,flag);
503: ELSE
504: x_result := fnd_ldap_util.G_SUCCESS;
505: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
506: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User is a local user or Synch profile is disabled.');
507: END IF;
508: END IF;
509:
502: fnd_ldap_util.c_unbind(ldap,flag);
503: ELSE
504: x_result := fnd_ldap_util.G_SUCCESS;
505: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
506: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User is a local user or Synch profile is disabled.');
507: END IF;
508: END IF;
509:
510:
508: END IF;
509:
510:
511:
512: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
513: IF (x_result = fnd_ldap_util.G_SUCCESS ) THEN
514: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End-> fnd_ldap_util.G_SUCCESS ');
515: ELSE
516: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End-> fnd_ldap_util.G_FAIL ');
510:
511:
512: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
513: IF (x_result = fnd_ldap_util.G_SUCCESS ) THEN
514: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End-> fnd_ldap_util.G_SUCCESS ');
515: ELSE
516: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End-> fnd_ldap_util.G_FAIL ');
517: END IF;
518: END IF;
512: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
513: IF (x_result = fnd_ldap_util.G_SUCCESS ) THEN
514: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End-> fnd_ldap_util.G_SUCCESS ');
515: ELSE
516: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End-> fnd_ldap_util.G_FAIL ');
517: END IF;
518: END IF;
519:
520:
522: exception
523: when invalid_new_user_exp then
524: fnd_ldap_util.c_unbind(ldap,flag);
525: fnd_message.set_name ('FND', 'FND_SSO_INVALID_NEW_USER_NAME');
526: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
527: then
528: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
529: end if;
530: x_result := fnd_ldap_util.G_FAILURE;
524: fnd_ldap_util.c_unbind(ldap,flag);
525: fnd_message.set_name ('FND', 'FND_SSO_INVALID_NEW_USER_NAME');
526: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
527: then
528: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
529: end if;
530: x_result := fnd_ldap_util.G_FAILURE;
531: when no_such_user_exp then
532: fnd_ldap_util.c_unbind(ldap,flag);
530: x_result := fnd_ldap_util.G_FAILURE;
531: when no_such_user_exp then
532: fnd_ldap_util.c_unbind(ldap,flag);
533: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
534: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
535: then
536: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
537: end if;
538: x_result := fnd_ldap_util.G_FAILURE;
532: fnd_ldap_util.c_unbind(ldap,flag);
533: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
534: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
535: then
536: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
537: end if;
538: x_result := fnd_ldap_util.G_FAILURE;
539: when others then
540: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
537: end if;
538: x_result := fnd_ldap_util.G_FAILURE;
539: when others then
540: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
541: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
542: then
543: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
544: end if;
545: x_result := fnd_ldap_util.G_FAILURE;
539: when others then
540: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
541: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
542: then
543: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
544: end if;
545: x_result := fnd_ldap_util.G_FAILURE;
546: end change_user_name;
547: --
577: BEGIN
578: l_module_source := G_MODULE_SOURCE || 'create_ldap_user: ';
579: retval := fnd_ldap_util.G_FAILURE;
580:
581: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
582: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
583:
584: -- LOG THE ATTEMPTED CHANGES
585: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
578: l_module_source := G_MODULE_SOURCE || 'create_ldap_user: ';
579: retval := fnd_ldap_util.G_FAILURE;
580:
581: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
582: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
583:
584: -- LOG THE ATTEMPTED CHANGES
585: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
586: BEGIN
581: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
582: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
583:
584: -- LOG THE ATTEMPTED CHANGES
585: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
586: BEGIN
587: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'username:'||p_ldap_user.user_name||' DN :'||l_dn);
588: myid:= sys_context('USERENV', 'SESSIONID');
589: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Attempt to create LDAP user ['||p_ldap_user.user_name||'] ['||myid||']');
583:
584: -- LOG THE ATTEMPTED CHANGES
585: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
586: BEGIN
587: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'username:'||p_ldap_user.user_name||' DN :'||l_dn);
588: myid:= sys_context('USERENV', 'SESSIONID');
589: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Attempt to create LDAP user ['||p_ldap_user.user_name||'] ['||myid||']');
590: IF firstValue(p_ldap_user, atname, atval, handler) THEN
591: WHILE (atName IS NOT NULL)
585: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
586: BEGIN
587: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'username:'||p_ldap_user.user_name||' DN :'||l_dn);
588: myid:= sys_context('USERENV', 'SESSIONID');
589: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Attempt to create LDAP user ['||p_ldap_user.user_name||'] ['||myid||']');
590: IF firstValue(p_ldap_user, atname, atval, handler) THEN
591: WHILE (atName IS NOT NULL)
592: LOOP
593: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, '['||myid||'] '||atName||':'||atVal);
589: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Attempt to create LDAP user ['||p_ldap_user.user_name||'] ['||myid||']');
590: IF firstValue(p_ldap_user, atname, atval, handler) THEN
591: WHILE (atName IS NOT NULL)
592: LOOP
593: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, '['||myid||'] '||atName||':'||atVal);
594: IF (NOT NextValue(p_ldap_user,atName,atVal,handler) )THEN
595: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, '['||myid||'] END ');
596: atName:=NULL;
597: END IF;
591: WHILE (atName IS NOT NULL)
592: LOOP
593: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, '['||myid||'] '||atName||':'||atVal);
594: IF (NOT NextValue(p_ldap_user,atName,atVal,handler) )THEN
595: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, '['||myid||'] END ');
596: atName:=NULL;
597: END IF;
598: END LOOP;
599: END IF;
597: END IF;
598: END LOOP;
599: END IF;
600: EXCEPTION WHEN OTHERS THEN
601: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Error during log operation '||sqlerrm);
602: END;
603: END IF;
604: END IF;
605:
602: END;
603: END IF;
604: END IF;
605:
606: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
607: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Populate modarray : count='|| p_ldap_user.user_data.count);
608: END IF;
609:
610: -- Now we need to figure out the DN and the realm
603: END IF;
604: END IF;
605:
606: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
607: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Populate modarray : count='|| p_ldap_user.user_data.count);
608: END IF;
609:
610: -- Now we need to figure out the DN and the realm
611: FND_OID_PLUG.completeforcreate(p_ldap_session,p_ldap_user);
618:
619: WHILE atName IS NOT NULL
620: LOOP
621: -- Login current data
622: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
623: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' adding '|| atName);
624: FOR i IN p_ldap_user.user_data(atName).first .. p_ldap_user.user_data(atName).last
625: LOOP
626: IF (p_ldap_user.user_data(atName).exists(i) ) THEN
619: WHILE atName IS NOT NULL
620: LOOP
621: -- Login current data
622: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
623: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' adding '|| atName);
624: FOR i IN p_ldap_user.user_data(atName).first .. p_ldap_user.user_data(atName).last
625: LOOP
626: IF (p_ldap_user.user_data(atName).exists(i) ) THEN
627: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' '||p_ldap_user.user_data(atName)(i) );
623: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' adding '|| atName);
624: FOR i IN p_ldap_user.user_data(atName).first .. p_ldap_user.user_data(atName).last
625: LOOP
626: IF (p_ldap_user.user_data(atName).exists(i) ) THEN
627: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' '||p_ldap_user.user_data(atName)(i) );
628: ELSE
629: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' missing element '||i );
630: END IF;
631: END LOOP;
625: LOOP
626: IF (p_ldap_user.user_data(atName).exists(i) ) THEN
627: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' '||p_ldap_user.user_data(atName)(i) );
628: ELSE
629: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' missing element '||i );
630: END IF;
631: END LOOP;
632: END IF;
633:
645: END LOOP;
646: dbms_ldap.populate_mod_array(modptr => modArray, mod_op => DBMS_LDAP.MOD_ADD, mod_type => atName, modval => list1);
647: some_data := true;
648: ELSE
649: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
650: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Populate modarray : count='|| p_ldap_user.user_data.count);
651: END IF;
652: END IF;
653: atName := p_ldap_user.user_data.next(atName);
646: dbms_ldap.populate_mod_array(modptr => modArray, mod_op => DBMS_LDAP.MOD_ADD, mod_type => atName, modval => list1);
647: some_data := true;
648: ELSE
649: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
650: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Populate modarray : count='|| p_ldap_user.user_data.count);
651: END IF;
652: END IF;
653: atName := p_ldap_user.user_data.next(atName);
654: END LOOP;
655:
656: if (some_data) THEN
657: ldap_result := dbms_ldap.add_s(ld => p_ldap_session, entrydn => p_ldap_user.dn , modptr =>modArray);
658: ELSE
659: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
660: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'add_s no data to load');
661: END IF;
662: END IF;
663: dbms_ldap.free_mod_array(modArray);
656: if (some_data) THEN
657: ldap_result := dbms_ldap.add_s(ld => p_ldap_session, entrydn => p_ldap_user.dn , modptr =>modArray);
658: ELSE
659: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
660: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'add_s no data to load');
661: END IF;
662: END IF;
663: dbms_ldap.free_mod_array(modArray);
664: IF ldap_result = dbms_ldap.SUCCESS THEN
663: dbms_ldap.free_mod_array(modArray);
664: IF ldap_result = dbms_ldap.SUCCESS THEN
665:
666: retval := fnd_ldap_util.G_SUCCESS;
667: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
668: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'created user:' || p_ldap_user.user_name);
669: END IF;
670:
671: -- get the guid
664: IF ldap_result = dbms_ldap.SUCCESS THEN
665:
666: retval := fnd_ldap_util.G_SUCCESS;
667: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
668: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'created user:' || p_ldap_user.user_name);
669: END IF;
670:
671: -- get the guid
672: p_ldap_user.user_guid := FND_LDAP_UTIL.get_guid_for_dn(p_ldap_session,p_ldap_user.dn );
670:
671: -- get the guid
672: p_ldap_user.user_guid := FND_LDAP_UTIL.get_guid_for_dn(p_ldap_session,p_ldap_user.dn );
673: IF (p_ldap_user.user_guid IS NULL) THEN
674: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
675: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Unoticed falure to create created DN [' || p_ldap_user.dn||']');
676: END IF;
677: retval:= fnd_ldap_util.G_FAILURE;
678: ELSE
671: -- get the guid
672: p_ldap_user.user_guid := FND_LDAP_UTIL.get_guid_for_dn(p_ldap_session,p_ldap_user.dn );
673: IF (p_ldap_user.user_guid IS NULL) THEN
674: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
675: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Unoticed falure to create created DN [' || p_ldap_user.dn||']');
676: END IF;
677: retval:= fnd_ldap_util.G_FAILURE;
678: ELSE
679: retval := fnd_ldap_util.G_SUCCESS;
676: END IF;
677: retval:= fnd_ldap_util.G_FAILURE;
678: ELSE
679: retval := fnd_ldap_util.G_SUCCESS;
680: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
681: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'new user:' || p_ldap_user.user_name || ' dn:' || p_ldap_user.dn );
682: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'new user:' || p_ldap_user.user_name || ' guid:' || p_ldap_user.user_guid );
683: END IF;
684: END IF;
677: retval:= fnd_ldap_util.G_FAILURE;
678: ELSE
679: retval := fnd_ldap_util.G_SUCCESS;
680: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
681: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'new user:' || p_ldap_user.user_name || ' dn:' || p_ldap_user.dn );
682: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'new user:' || p_ldap_user.user_name || ' guid:' || p_ldap_user.user_guid );
683: END IF;
684: END IF;
685: ELSE
678: ELSE
679: retval := fnd_ldap_util.G_SUCCESS;
680: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
681: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'new user:' || p_ldap_user.user_name || ' dn:' || p_ldap_user.dn );
682: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'new user:' || p_ldap_user.user_name || ' guid:' || p_ldap_user.user_guid );
683: END IF;
684: END IF;
685: ELSE
686: retval := fnd_ldap_util.G_FAILURE;
683: END IF;
684: END IF;
685: ELSE
686: retval := fnd_ldap_util.G_FAILURE;
687: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
688: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Falied to create ['||p_ldap_user.dn||'] user:'||p_ldap_user.user_name);
689: END IF;
690:
691: END IF;
684: END IF;
685: ELSE
686: retval := fnd_ldap_util.G_FAILURE;
687: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
688: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Falied to create ['||p_ldap_user.dn||'] user:'||p_ldap_user.user_name);
689: END IF;
690:
691: END IF;
692: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
688: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Falied to create ['||p_ldap_user.dn||'] user:'||p_ldap_user.user_name);
689: END IF;
690:
691: END IF;
692: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
693: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||retval);
694: END IF;
695: RETURN retval;
696:
689: END IF;
690:
691: END IF;
692: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
693: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||retval);
694: END IF;
695: RETURN retval;
696:
697:
696:
697:
698: exception
699: when others then
700: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
701: then
702: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
703: end if;
704: raise;
698: exception
699: when others then
700: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
701: then
702: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
703: end if;
704: raise;
705:
706: END create_ldap_user;
734: begin
735: l_module_source := G_MODULE_SOURCE || 'create_user_subscription: ';
736: -- set default value to failure. change to success when user created successfully
737: retval := fnd_ldap_util.G_FAILURE;
738: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
739: then
740: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin guid='||p_guid);
741: end if;
742:
736: -- set default value to failure. change to success when user created successfully
737: retval := fnd_ldap_util.G_FAILURE;
738: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
739: then
740: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin guid='||p_guid);
741: end if;
742:
743: -- ldapSession := fnd_ldap_util.c_get_oid_session(flag);
744:
763: --retval := add_uniquemember(p_ldap_user);
764: fnd_ldap_util.add_attribute_M(ldapSession,acctNode,'uniqueMember',p_user_dn);
765: retval:= fnd_ldap_util.G_SUCCESS;
766: else
767: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
768: then
769: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Failed! retval='||retval||' subsNode:'||subsNode);
770: end if;
771: end if;
765: retval:= fnd_ldap_util.G_SUCCESS;
766: else
767: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
768: then
769: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Failed! retval='||retval||' subsNode:'||subsNode);
770: end if;
771: end if;
772:
773: dbms_ldap.free_mod_array(modptr => modArray);
772:
773: dbms_ldap.free_mod_array(modptr => modArray);
774: --fnd_ldap_util.c_unbind(ldapSession,flag);
775:
776: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
777: then
778: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
779: end if;
780:
774: --fnd_ldap_util.c_unbind(ldapSession,flag);
775:
776: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
777: then
778: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
779: end if;
780:
781: return retval;
782:
783: exception
784: when others then
785: err := sqlerrm; --bug 8618800
786:
787: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
788: then
789: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
790: end if;
791: -- Bug 8618800 if already exists continue
785: err := sqlerrm; --bug 8618800
786:
787: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
788: then
789: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
790: end if;
791: -- Bug 8618800 if already exists continue
792: if (instr(err,'Already exists. Object already exists') > 0) then
793: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
789: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
790: end if;
791: -- Bug 8618800 if already exists continue
792: if (instr(err,'Already exists. Object already exists') > 0) then
793: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
794: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User already subscribed');
795: end if;
796: retval := fnd_ldap_util.G_SUCCESS;
797: return retval;
790: end if;
791: -- Bug 8618800 if already exists continue
792: if (instr(err,'Already exists. Object already exists') > 0) then
793: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
794: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User already subscribed');
795: end if;
796: retval := fnd_ldap_util.G_SUCCESS;
797: return retval;
798: else
795: end if;
796: retval := fnd_ldap_util.G_SUCCESS;
797: return retval;
798: else
799: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
800: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Failed! retval='||retval||' subsNode:'||subsNode);
801: end if;
802: raise;
803: end if;
796: retval := fnd_ldap_util.G_SUCCESS;
797: return retval;
798: else
799: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
800: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Failed! retval='||retval||' subsNode:'||subsNode);
801: end if;
802: raise;
803: end if;
804:
829: no_such_user_exp exception;
830:
831: begin
832: l_module_source := G_MODULE_SOURCE || 'decode_dates: ';
833: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
834: then
835: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
836: end if;
837:
831: begin
832: l_module_source := G_MODULE_SOURCE || 'decode_dates: ';
833: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
834: then
835: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
836: end if;
837:
838: open fnd_dates;
839: fetch fnd_dates into l_rec;
852: if ((l_rec.l_start_date is not null and l_rec.l_start_date > sysdate)
853: or
854: (l_rec.l_end_date is not null and l_rec.l_end_date <= sysdate))
855: then
856: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
857: then
858: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User is disabled');
859: end if;
860: x_orclisEnabled := fnd_oid_util.G_DISABLED;
854: (l_rec.l_end_date is not null and l_rec.l_end_date <= sysdate))
855: then
856: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
857: then
858: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User is disabled');
859: end if;
860: x_orclisEnabled := fnd_oid_util.G_DISABLED;
861:
862: else
862: else
863: x_orclisEnabled := fnd_oid_util.G_ENABLED;
864: end if;
865:
866: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
867: then
868: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
869: end if;
870:
864: end if;
865:
866: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
867: then
868: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
869: end if;
870:
871: exception
872: when others then
869: end if;
870:
871: exception
872: when others then
873: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
874: then
875: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
876: end if;
877: raise_application_error(-20001, 'FND_SSO_USER_NOT_FOUND');
871: exception
872: when others then
873: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
874: then
875: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
876: end if;
877: raise_application_error(-20001, 'FND_SSO_USER_NOT_FOUND');
878:
879: end decode_dates;
891: l_result pls_integer;
892:
893: begin
894: l_module_source := G_MODULE_SOURCE || 'delete_user_nodes: ';
895: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
896: then
897: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
898: end if;
899:
893: begin
894: l_module_source := G_MODULE_SOURCE || 'delete_user_nodes: ';
895: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
896: then
897: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
898: end if;
899:
900:
901:
900:
901:
902: usersNode := fnd_ldap_util.get_dn_for_guid(p_orclguid => p_orclguid);
903:
904: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
905: then
906: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'DN for user with GUID::'
907: ||p_orclguid||' DN::'||usersNode);
908: end if;
902: usersNode := fnd_ldap_util.get_dn_for_guid(p_orclguid => p_orclguid);
903:
904: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
905: then
906: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'DN for user with GUID::'
907: ||p_orclguid||' DN::'||usersNode);
908: end if;
909:
910: l_result := dbms_ldap.delete_s(ld => p_ldap_session, entrydn => usersNode);
908: end if;
909:
910: l_result := dbms_ldap.delete_s(ld => p_ldap_session, entrydn => usersNode);
911:
912: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
913: then
914: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
915: end if;
916: return l_result;
910: l_result := dbms_ldap.delete_s(ld => p_ldap_session, entrydn => usersNode);
911:
912: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
913: then
914: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
915: end if;
916: return l_result;
917:
918: EXCEPTION WHEN OTHERS THEN
915: end if;
916: return l_result;
917:
918: EXCEPTION WHEN OTHERS THEN
919: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
920: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
921: END IF;
922: raise;
923:
916: return l_result;
917:
918: EXCEPTION WHEN OTHERS THEN
919: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
920: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
921: END IF;
922: raise;
923:
924: end delete_user_nodes;
936: l_entry dbms_ldap.message := null;
937:
938: begin
939: l_module_source := G_MODULE_SOURCE || 'delete_user_subscription ';
940: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
941: then
942: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
943: end if;
944:
938: begin
939: l_module_source := G_MODULE_SOURCE || 'delete_user_subscription ';
940: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
941: then
942: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
943: end if;
944:
945: -- delete subcriptions with orclOwnerGUID
946: subsNode := 'cn=ACCOUNTS,cn=subscription_data,cn=subscriptions,' || fnd_ldap_util.get_orclappname;
952: l_result := dbms_ldap.delete_s(ld => p_ldap_session, entrydn => 'orclOwnerGUID=' || l_user_guid||','||subsNode);
953: end if;
954: end if;
955:
956: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
957: then
958: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
959: end if;
960: return l_result;
954: end if;
955:
956: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
957: then
958: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
959: end if;
960: return l_result;
961:
962: EXCEPTION WHEN OTHERS THEN
959: end if;
960: return l_result;
961:
962: EXCEPTION WHEN OTHERS THEN
963: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
964: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
965: END IF;
966: raise;
967:
960: return l_result;
961:
962: EXCEPTION WHEN OTHERS THEN
963: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
964: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
965: END IF;
966: raise;
967:
968: end delete_user_subscription;
984: begin
985: l_module_source := G_MODULE_SOURCE || 'delete_uniquemember: ';
986: -- set default value to failure. change to success when added successfully
987: retval := fnd_ldap_util.G_FAILURE;
988: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
989: then
990: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
991: end if;
992:
986: -- set default value to failure. change to success when added successfully
987: retval := fnd_ldap_util.G_FAILURE;
988: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
989: then
990: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
991: end if;
992:
993: subsNode := 'cn=ACCOUNTS,cn=subscription_data,cn=subscriptions,' || fnd_ldap_util.get_orclappname;
994:
1006: end if;
1007:
1008: dbms_ldap.free_mod_array(modptr => modArray);
1009:
1010: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1011: then
1012: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1013: end if;
1014:
1008: dbms_ldap.free_mod_array(modptr => modArray);
1009:
1010: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1011: then
1012: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1013: end if;
1014:
1015: return retval;
1016:
1015: return retval;
1016:
1017: exception
1018: when others then
1019: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1020: then
1021: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1022: end if;
1023: raise;
1017: exception
1018: when others then
1019: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1020: then
1021: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1022: end if;
1023: raise;
1024:
1025: end delete_uniquemember;
1043:
1044: begin
1045: l_module_source := G_MODULE_SOURCE || 'disable_user: ';
1046:
1047: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1048: then
1049: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1050: end if;
1051: -- there is no need to do something more specific
1045: l_module_source := G_MODULE_SOURCE || 'disable_user: ';
1046:
1047: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1048: then
1049: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1050: end if;
1051: -- there is no need to do something more specific
1052: -- Note that this only update sOID with DISABLE
1053: update_user(p_user_guid =>p_user_guid,p_user_name =>p_user_name,
1059: end if;
1060: exception
1061: when no_such_user_exp then
1062: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
1063: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1064: then
1065: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1066: end if;
1067: x_result := fnd_ldap_util.G_FAILURE;
1061: when no_such_user_exp then
1062: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
1063: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1064: then
1065: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1066: end if;
1067: x_result := fnd_ldap_util.G_FAILURE;
1068: when others then
1069: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
1066: end if;
1067: x_result := fnd_ldap_util.G_FAILURE;
1068: when others then
1069: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
1070: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1071: then
1072: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1073: end if;
1074: x_result := fnd_ldap_util.G_FAILURE;
1068: when others then
1069: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
1070: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1071: then
1072: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1073: end if;
1074: x_result := fnd_ldap_util.G_FAILURE;
1075:
1076: end disable_user;
1090: l_module_source VARCHAR2(256);
1091: orclguid VARCHAR2(1000);
1092: BEGIN
1093: l_module_source := G_MODULE_SOURCE || 'get_user_guid_and_count: ';
1094: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1095: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin p_username='||p_user_name);
1096: END IF;
1097: orclguid := get_user_guid(p_user_name);
1098: IF orclguid IS NULL THEN
1091: orclguid VARCHAR2(1000);
1092: BEGIN
1093: l_module_source := G_MODULE_SOURCE || 'get_user_guid_and_count: ';
1094: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1095: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin p_username='||p_user_name);
1096: END IF;
1097: orclguid := get_user_guid(p_user_name);
1098: IF orclguid IS NULL THEN
1099: n :=0;
1099: n :=0;
1100: ELSE
1101: n:=1;
1102: END IF;
1103: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1104: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END orclguid='||orclguid||' n='||n);
1105: END IF;
1106: RETURN orclguid;
1107: EXCEPTION
1100: ELSE
1101: n:=1;
1102: END IF;
1103: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1104: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END orclguid='||orclguid||' n='||n);
1105: END IF;
1106: RETURN orclguid;
1107: EXCEPTION
1108: WHEN OTHERS THEN
1105: END IF;
1106: RETURN orclguid;
1107: EXCEPTION
1108: WHEN OTHERS THEN
1109: IF (fnd_log.LEVEL_EXCEPTION>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1110: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'EXCEPTION:'||sqlerrm);
1111: END IF;
1112: raise;
1113: END get_user_guid_and_count;
1106: RETURN orclguid;
1107: EXCEPTION
1108: WHEN OTHERS THEN
1109: IF (fnd_log.LEVEL_EXCEPTION>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1110: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'EXCEPTION:'||sqlerrm);
1111: END IF;
1112: raise;
1113: END get_user_guid_and_count;
1114:
1135: sbase dbms_ldap.string_collection;
1136: begin
1137: l_module_source := G_MODULE_SOURCE || 'get_user_guid: ';
1138: -- retval := fnd_ldap_util.G_FAILURE;
1139: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1140: then
1141: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1142: end if;
1143:
1137: l_module_source := G_MODULE_SOURCE || 'get_user_guid: ';
1138: -- retval := fnd_ldap_util.G_FAILURE;
1139: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1140: then
1141: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1142: end if;
1143:
1144: ldapSession := p_ldap_session;
1145: l_attrs(0) := 'orclguid';
1151: searchFilter := fnd_sso_registration.get_realm_attribute(ridx,'orclcommonnicknameattribute')
1152: ||'='||p_user_name ;
1153:
1154: for s in sbase.first .. sbase.last loop
1155: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1156: then
1157: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'realm:'||r||' base:'||sbase(s)||' filter:'||searchFilter);
1158: end if;
1159: result := dbms_ldap.search_s(ld => ldapSession,
1153:
1154: for s in sbase.first .. sbase.last loop
1155: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1156: then
1157: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'realm:'||r||' base:'||sbase(s)||' filter:'||searchFilter);
1158: end if;
1159: result := dbms_ldap.search_s(ld => ldapSession,
1160: base => sbase(s),
1161: scope => dbms_ldap.SCOPE_SUBTREE,
1166: if (l_entry is not null) then
1167: l_attrs := dbms_ldap.get_values(ldapSession, l_entry, 'orclguid');
1168: dn := dbms_ldap.get_dn(ldapSession,l_entry);
1169: orclguid := l_attrs(0);
1170: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1171: then
1172: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'FOUND under base='||sbase(s)||
1173: ' dn:'|| dn ||' guid='||orclguid);
1174: end if;
1168: dn := dbms_ldap.get_dn(ldapSession,l_entry);
1169: orclguid := l_attrs(0);
1170: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1171: then
1172: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'FOUND under base='||sbase(s)||
1173: ' dn:'|| dn ||' guid='||orclguid);
1174: end if;
1175: END IF;
1176: end loop;
1179:
1180:
1181: l_user_guid := orclguid;
1182:
1183: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1184: then
1185: if (l_user_guid is not null) then
1186: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'GUID found = ' || l_user_guid);
1187: ELSE
1182:
1183: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1184: then
1185: if (l_user_guid is not null) then
1186: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'GUID found = ' || l_user_guid);
1187: ELSE
1188: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User '||p_user_name||' not found');
1189: END IF;
1190: end if;
1184: then
1185: if (l_user_guid is not null) then
1186: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'GUID found = ' || l_user_guid);
1187: ELSE
1188: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User '||p_user_name||' not found');
1189: END IF;
1190: end if;
1191:
1192: --result := fnd_ldap_util.unbind(ldapSession);
1190: end if;
1191:
1192: --result := fnd_ldap_util.unbind(ldapSession);
1193:
1194: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1195: then
1196: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1197: end if;
1198: return l_user_guid;
1192: --result := fnd_ldap_util.unbind(ldapSession);
1193:
1194: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1195: then
1196: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1197: end if;
1198: return l_user_guid;
1199:
1200: exception
1198: return l_user_guid;
1199:
1200: exception
1201: when others then
1202: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1203: then
1204: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1205: -- print stack just for 7306960
1206: --result:= -99;
1200: exception
1201: when others then
1202: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1203: then
1204: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1205: -- print stack just for 7306960
1206: --result:= -99;
1207: --dummy := fnd_ldap_util.c_get_oid_session(result);
1208: end if;
1229: return ret;
1230: EXCEPTION
1231: WHEN OTHERS THEN
1232: fnd_ldap_util.c_unbind(l_ldap,dummy);
1233: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1234: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE || 'get_user_guid: ', sqlerrm);
1235: END IF;
1236: raise;
1237: END get_user_guid;
1230: EXCEPTION
1231: WHEN OTHERS THEN
1232: fnd_ldap_util.c_unbind(l_ldap,dummy);
1233: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1234: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE || 'get_user_guid: ', sqlerrm);
1235: END IF;
1236: raise;
1237: END get_user_guid;
1238: --
1259: l_nickname varchar2(256);
1260:
1261: begin
1262: l_module_source := G_MODULE_SOURCE || 'link_user: ';
1263: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1264: then
1265: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1266: end if;
1267:
1261: begin
1262: l_module_source := G_MODULE_SOURCE || 'link_user: ';
1263: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1264: then
1265: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1266: end if;
1267:
1268:
1269: l_orclguid := get_user_guid(p_user_name);
1296: fnd_message.set_name('FND', 'FND_SSO_USER_NOT_FOUND');
1297: x_result := fnd_ldap_util.G_FAILURE;
1298: end if;
1299:
1300: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1301: then
1302: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1303: end if;
1304:
1298: end if;
1299:
1300: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1301: then
1302: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1303: end if;
1304:
1305: exception
1306: when others then
1303: end if;
1304:
1305: exception
1306: when others then
1307: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1308: then
1309: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1310: end if;
1311: raise;
1305: exception
1306: when others then
1307: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1308: then
1309: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1310: end if;
1311: raise;
1312:
1313: end link_user;
1323: num_attributes number;
1324:
1325: begin
1326: l_module_source := G_MODULE_SOURCE || 'process_attributes: ';
1327: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1328: then
1329: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1330: end if;
1331:
1325: begin
1326: l_module_source := G_MODULE_SOURCE || 'process_attributes: ';
1327: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1328: then
1329: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1330: end if;
1331:
1332: num_attributes := 0;
1333:
1431: x_att_values(num_attributes) := p_ldap_user.orclActiveEndDate;
1432: num_attributes := num_attributes + 1;
1433: end if;
1434:
1435: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1436: then
1437: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1438: end if;
1439:
1433: end if;
1434:
1435: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1436: then
1437: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1438: end if;
1439:
1440: return num_attributes;
1441:
1440: return num_attributes;
1441:
1442: exception
1443: when others then
1444: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1445: then
1446: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1447: end if;
1448: raise;
1442: exception
1443: when others then
1444: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1445: then
1446: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1447: end if;
1448: raise;
1449:
1450: end process_attributes;
1471: dummy pls_integer;
1472:
1473: begin
1474: l_module_source := G_MODULE_SOURCE || 'unlink_user: ';
1475: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1476: then
1477: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1478: end if;
1479:
1473: begin
1474: l_module_source := G_MODULE_SOURCE || 'unlink_user: ';
1475: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1476: then
1477: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1478: end if;
1479:
1480: open linked_users;
1481: fetch linked_users into l_rec;
1485: -- no other user linked
1486: if (not l_found)
1487: then
1488:
1489: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1490: then
1491: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'No other FND users linked to this OID User');
1492: end if;
1493: l_user_exists := user_exists_by_guid( p_user_guid);
1487: then
1488:
1489: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1490: then
1491: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'No other FND users linked to this OID User');
1492: end if;
1493: l_user_exists := user_exists_by_guid( p_user_guid);
1494:
1495: if (l_user_exists = fnd_ldap_util.G_SUCCESS) then
1507:
1508: -- other users linked
1509: else
1510:
1511: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1512: then
1513: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Other FND users linked to this OID User');
1514: end if;
1515:
1509: else
1510:
1511: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1512: then
1513: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Other FND users linked to this OID User');
1514: end if;
1515:
1516: x_result := fnd_ldap_util.G_FAILURE;
1517: fnd_message.set_name ('FND', 'FND_SSO_USER_MULT_LINKED');
1519: end if;
1520: if ( l_ldap_session is not null) then
1521: fnd_ldap_util.c_unbind(l_ldap_session,dummy);
1522: end if ;
1523: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1524: then
1525: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1526: end if;
1527:
1521: fnd_ldap_util.c_unbind(l_ldap_session,dummy);
1522: end if ;
1523: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1524: then
1525: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1526: end if;
1527:
1528: exception
1529: when others then
1527:
1528: exception
1529: when others then
1530: fnd_ldap_util.c_unbind(l_ldap_session,dummy);
1531: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1532: then
1533: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1534: end if;
1535: raise;
1529: when others then
1530: fnd_ldap_util.c_unbind(l_ldap_session,dummy);
1531: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1532: then
1533: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1534: end if;
1535: raise;
1536:
1537: end unlink_user;
1584: begin
1585:
1586: l_module_source := G_MODULE_SOURCE || 'update_user[proc]: ';
1587:
1588: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1589: then
1590: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
1591: end if;
1592:
1586: l_module_source := G_MODULE_SOURCE || 'update_user[proc]: ';
1587:
1588: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1589: then
1590: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
1591: end if;
1592:
1593:
1594: -- figure out the user_id
1594: -- figure out the user_id
1595: BEGIN
1596: select user_id into l_user_id from fnd_user
1597: where user_name=p_user_name and user_guid=p_user_guid;
1598: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1599: then
1600: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'user_id:'||l_user_id);
1601: end if;
1602:
1596: select user_id into l_user_id from fnd_user
1597: where user_name=p_user_name and user_guid=p_user_guid;
1598: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1599: then
1600: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'user_id:'||l_user_id);
1601: end if;
1602:
1603: l_to_synch := CanSync(l_user_id,p_user_name);
1604:
1601: end if;
1602:
1603: l_to_synch := CanSync(l_user_id,p_user_name);
1604:
1605: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1606: then
1607: if (l_to_synch) then
1608: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Can synch');
1609: else
1604:
1605: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1606: then
1607: if (l_to_synch) then
1608: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Can synch');
1609: else
1610: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' NOT synch username:'
1611: ||p_user_name||' userid:'||l_user_id||' userGuid:'||p_user_guid);
1612: end if;
1606: then
1607: if (l_to_synch) then
1608: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Can synch');
1609: else
1610: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' NOT synch username:'
1611: ||p_user_name||' userid:'||l_user_id||' userGuid:'||p_user_guid);
1612: end if;
1613: END IF;
1614: EXCEPTION WHEN NO_DATA_FOUND THEN
1613: END IF;
1614: EXCEPTION WHEN NO_DATA_FOUND THEN
1615: l_to_synch:= true;
1616: -- THIS IS UNEXPECTED !!
1617: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1618: then
1619: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Sinc, No ebzlinked user found:'||p_user_name||' guid:'||p_user_guid);
1620: end if;
1621: END;
1615: l_to_synch:= true;
1616: -- THIS IS UNEXPECTED !!
1617: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1618: then
1619: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Sinc, No ebzlinked user found:'||p_user_name||' guid:'||p_user_guid);
1620: end if;
1621: END;
1622:
1623:
1621: END;
1622:
1623:
1624: if (l_to_synch) then
1625: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1626: then
1627: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' synch');
1628: end if;
1629:
1623:
1624: if (l_to_synch) then
1625: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1626: then
1627: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' synch');
1628: end if;
1629:
1630: l_use_proxy := 0;
1631:
1630: l_use_proxy := 0;
1631:
1632: IF (p_password is not null) THEN
1633:
1634: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1635: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Password is not null');
1636: end if;
1637:
1638: if (p_expire_password is not null and p_expire_password <> fnd_ldap_util.G_TRUE) THEN
1631:
1632: IF (p_password is not null) THEN
1633:
1634: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1635: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Password is not null');
1636: end if;
1637:
1638: if (p_expire_password is not null and p_expire_password <> fnd_ldap_util.G_TRUE) THEN
1639:
1636: end if;
1637:
1638: if (p_expire_password is not null and p_expire_password <> fnd_ldap_util.G_TRUE) THEN
1639:
1640: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1641: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'So far password will not be expired - proxy as user');
1642: end if;
1643:
1644: l_use_proxy :=2;
1637:
1638: if (p_expire_password is not null and p_expire_password <> fnd_ldap_util.G_TRUE) THEN
1639:
1640: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1641: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'So far password will not be expired - proxy as user');
1642: end if;
1643:
1644: l_use_proxy :=2;
1645: -- Bug 9271995
1646: -- During user_creation if password is not in IDENTITY_ADD
1647: -- expiration will be forced disregarding what was requested
1648: IF (x_user_creation AND not canPopulate('userpassword',ldap_user.user_name, ldap_user.realmDN) )THEN
1649: -- always expire the password
1650: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1651: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Forcing password expiration - not in IDENTITY_ADD');
1652: end if;
1653: l_use_proxy :=1;
1654: END IF;
1647: -- expiration will be forced disregarding what was requested
1648: IF (x_user_creation AND not canPopulate('userpassword',ldap_user.user_name, ldap_user.realmDN) )THEN
1649: -- always expire the password
1650: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1651: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Forcing password expiration - not in IDENTITY_ADD');
1652: end if;
1653: l_use_proxy :=1;
1654: END IF;
1655: else
1652: end if;
1653: l_use_proxy :=1;
1654: END IF;
1655: else
1656: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1657: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Password should be expired - p_expire_password: '||to_char(p_expire_password));
1658: end if;
1659:
1660: l_use_proxy :=1;
1653: l_use_proxy :=1;
1654: END IF;
1655: else
1656: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1657: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Password should be expired - p_expire_password: '||to_char(p_expire_password));
1658: end if;
1659:
1660: l_use_proxy :=1;
1661: end if;
1659:
1660: l_use_proxy :=1;
1661: end if;
1662: ELSE
1663: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1664: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Password is null');
1665: end if;
1666:
1667: l_use_proxy := 1;
1660: l_use_proxy :=1;
1661: end if;
1662: ELSE
1663: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
1664: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Password is null');
1665: end if;
1666:
1667: l_use_proxy := 1;
1668: END IF;
1666:
1667: l_use_proxy := 1;
1668: END IF;
1669: if ( l_use_proxy=2) then
1670: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1671: then
1672: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Getting a proxied connection to avoid password forced change: NEW LDAP connection required');
1673: end if;
1674: fnd_ldap_util.proxy_as_user(p_orclguid => p_user_guid,x_ldap_session => ldap);
1668: END IF;
1669: if ( l_use_proxy=2) then
1670: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1671: then
1672: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Getting a proxied connection to avoid password forced change: NEW LDAP connection required');
1673: end if;
1674: fnd_ldap_util.proxy_as_user(p_orclguid => p_user_guid,x_ldap_session => ldap);
1675: else
1676: ldap := FND_LDAP_UTIL.c_get_oid_session(flag);
1680: l_guid := p_user_guid;
1681: IF FND_LDAP_UTIL.loadLdapRecord( ldap , ldap_user.user_data,dn,l_guid,FND_LDAP_UTIL.G_GUID_KEY)
1682: THEN
1683: ldap_user.dn :=dn;
1684: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1685: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating dn:'||dn);
1686: END IF;
1687: ProcessLoadedLpadUserRecord(ldap_user,NULL,dn);
1688:
1681: IF FND_LDAP_UTIL.loadLdapRecord( ldap , ldap_user.user_data,dn,l_guid,FND_LDAP_UTIL.G_GUID_KEY)
1682: THEN
1683: ldap_user.dn :=dn;
1684: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1685: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Updating dn:'||dn);
1686: END IF;
1687: ProcessLoadedLpadUserRecord(ldap_user,NULL,dn);
1688:
1689: --Bug 13329571
1686: END IF;
1687: ProcessLoadedLpadUserRecord(ldap_user,NULL,dn);
1688:
1689: --Bug 13329571
1690: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1691: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Calling FIXUP:'||dn);
1692: END IF;
1693: FND_OID_PLUG.fixupLDAPUser(ldap_user,FND_OID_PLUG.G_UPDATE_USER);
1694:
1687: ProcessLoadedLpadUserRecord(ldap_user,NULL,dn);
1688:
1689: --Bug 13329571
1690: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1691: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Calling FIXUP:'||dn);
1692: END IF;
1693: FND_OID_PLUG.fixupLDAPUser(ldap_user,FND_OID_PLUG.G_UPDATE_USER);
1694:
1695: -- Bug 9271995
1753: x_result :=x_name_change;
1754: END IF;
1755: */
1756: ELSE
1757: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1758: then
1759: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'USER '||ldap_user.user_name||' has an invalid guid:'||p_user_guid);
1760: end if;
1761: raise no_such_user_exp;
1755: */
1756: ELSE
1757: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1758: then
1759: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'USER '||ldap_user.user_name||' has an invalid guid:'||p_user_guid);
1760: end if;
1761: raise no_such_user_exp;
1762: END IF;
1763: if ( l_use_proxy=2 ) then
1770: -- ldap:=null;
1771:
1772: else
1773: x_result := fnd_ldap_util.G_SUCCESS;
1774: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1775: then
1776: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
1777: 'User is a local user or synch is disabled for this user.');
1778: end if;
1772: else
1773: x_result := fnd_ldap_util.G_SUCCESS;
1774: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1775: then
1776: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
1777: 'User is a local user or synch is disabled for this user.');
1778: end if;
1779: end if;
1780:
1777: 'User is a local user or synch is disabled for this user.');
1778: end if;
1779: end if;
1780:
1781: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1782: then
1783: if ( x_result = fnd_ldap_util.G_SUCCESS) THEN
1784: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End->SUCCESS');
1785: ELSE
1780:
1781: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1782: then
1783: if ( x_result = fnd_ldap_util.G_SUCCESS) THEN
1784: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End->SUCCESS');
1785: ELSE
1786: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End->FAIL');
1787: END IF;
1788: end if;
1782: then
1783: if ( x_result = fnd_ldap_util.G_SUCCESS) THEN
1784: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End->SUCCESS');
1785: ELSE
1786: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End->FAIL');
1787: END IF;
1788: end if;
1789:
1790: if x_result <> fnd_ldap_util.G_SUCCESS then
1809: FND_LDAP_UTIL.c_unbind(ldap,flag);
1810: end if;
1811: l_use_proxy:=0;
1812: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
1813: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1814: then
1815: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1816: end if;
1817: x_result := fnd_ldap_util.G_FAILURE;
1811: l_use_proxy:=0;
1812: fnd_message.set_name ('FND', 'FND_SSO_USER_NOT_FOUND');
1813: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1814: then
1815: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1816: end if;
1817: x_result := fnd_ldap_util.G_FAILURE;
1818: when others then
1819: if ( l_use_proxy=2 ) then
1823: end if;
1824: l_use_proxy:=0;
1825:
1826: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
1827: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1828: then
1829: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1830: end if;
1831: -- x_result := fnd_ldap_util.G_FAILURE;
1825:
1826: fnd_message.set_name ('FND', 'FND_SSO_UNEXP_ERROR');
1827: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1828: then
1829: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1830: end if;
1831: -- x_result := fnd_ldap_util.G_FAILURE;
1832: raise;
1833:
1902: begin
1903: l_module_source := G_MODULE_SOURCE || 'update_user_nodes: ';
1904: -- set default value to failure. change to success when user created successfully
1905: retval := fnd_ldap_util.G_FAILURE;
1906: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1907: then
1908: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1909: end if;
1910:
1904: -- set default value to failure. change to success when user created successfully
1905: retval := fnd_ldap_util.G_FAILURE;
1906: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1907: then
1908: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1909: end if;
1910:
1911: usersNode := fnd_ldap_util.get_dn_for_guid(p_orclguid, p_ldap_session);
1912: -- dbms_ldap.use_exception := true;
1916: if (retval = dbms_ldap.SUCCESS) then
1917: retval := fnd_ldap_util.G_SUCCESS;
1918: end if;
1919:
1920: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1921: then
1922: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1923: end if;
1924: return retval;
1918: end if;
1919:
1920: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1921: then
1922: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
1923: end if;
1924: return retval;
1925:
1926: exception
1926: exception
1927: -- bug 4573677
1928: when dbms_ldap.general_error then
1929: l_message := translate_ldap_error(sqlerrm);
1930: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1931: then
1932: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'error '||l_message||':'||sqlerrm);
1933: end if;
1934: fnd_message.set_name('FND',l_message);
1928: when dbms_ldap.general_error then
1929: l_message := translate_ldap_error(sqlerrm);
1930: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1931: then
1932: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'error '||l_message||':'||sqlerrm);
1933: end if;
1934: fnd_message.set_name('FND',l_message);
1935: if (l_message='FND_SSO_PASSWORD_POLICY_ERR')
1936: then
1939: fnd_message.set_token('SQLMSG',sqlerrm);
1940: end if;
1941: return fnd_ldap_util.G_FAILURE;
1942: when others then
1943: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1944: then
1945: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1946: end if;
1947: raise;
1941: return fnd_ldap_util.G_FAILURE;
1942: when others then
1943: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1944: then
1945: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
1946: end if;
1947: raise;
1948:
1949: end update_user_nodes;
1961: return ret;
1962: EXCEPTION
1963: WHEN OTHERS THEN
1964: fnd_ldap_util.c_unbind(ldap,flag);
1965: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1966: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE || 'user_exists: ', sqlerrm);
1967: END IF;
1968: raise;
1969: end user_exists;
1962: EXCEPTION
1963: WHEN OTHERS THEN
1964: fnd_ldap_util.c_unbind(ldap,flag);
1965: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
1966: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE || 'user_exists: ', sqlerrm);
1967: END IF;
1968: raise;
1969: end user_exists;
1970: --
1982:
1983: begin
1984: l_module_source := G_MODULE_SOURCE || 'user_exists: ';
1985: retval := fnd_ldap_util.G_FAILURE;
1986: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1987: then
1988: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1989: end if;
1990:
1984: l_module_source := G_MODULE_SOURCE || 'user_exists: ';
1985: retval := fnd_ldap_util.G_FAILURE;
1986: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
1987: then
1988: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
1989: end if;
1990:
1991: guid := get_user_guid(p_user_name);
1992: if (guid is not null ) then
1995: retval :=fnd_ldap_util.G_FAILURE;
1996: end if;
1997:
1998:
1999: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2000: then
2001: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'retval=' || retval);
2002: end if;
2003:
1997:
1998:
1999: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2000: then
2001: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'retval=' || retval);
2002: end if;
2003:
2004: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2005: then
2000: then
2001: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'retval=' || retval);
2002: end if;
2003:
2004: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2005: then
2006: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
2007: end if;
2008:
2002: end if;
2003:
2004: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2005: then
2006: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
2007: end if;
2008:
2009: return retval;
2010:
2009: return retval;
2010:
2011: exception
2012: when others then
2013: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2014: then
2015: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
2016: end if;
2017: raise;
2011: exception
2012: when others then
2013: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2014: then
2015: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
2016: end if;
2017: raise;
2018:
2019: end user_exists;
2040: result boolean;
2041: l_module_source varchar2(256);
2042: begin
2043: l_module_source := G_MODULE_SOURCE || 'comparePassword: ';
2044: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2045: then
2046: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'BEGIN DN:'||user_dn);
2047: end if;
2048: l_result := dbms_ldap.compare_s(ld => ldapSession, dn => user_dn, attr => 'userpassword', value => p_password);
2042: begin
2043: l_module_source := G_MODULE_SOURCE || 'comparePassword: ';
2044: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2045: then
2046: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'BEGIN DN:'||user_dn);
2047: end if;
2048: l_result := dbms_ldap.compare_s(ld => ldapSession, dn => user_dn, attr => 'userpassword', value => p_password);
2049: result := l_result= dbms_ldap.COMPARE_TRUE;
2050: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2046: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'BEGIN DN:'||user_dn);
2047: end if;
2048: l_result := dbms_ldap.compare_s(ld => ldapSession, dn => user_dn, attr => 'userpassword', value => p_password);
2049: result := l_result= dbms_ldap.COMPARE_TRUE;
2050: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2051: then
2052: if (result) then
2053: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: Yes');
2054: else
2049: result := l_result= dbms_ldap.COMPARE_TRUE;
2050: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2051: then
2052: if (result) then
2053: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: Yes');
2054: else
2055: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: NO');
2056:
2057: end if;
2051: then
2052: if (result) then
2053: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: Yes');
2054: else
2055: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: NO');
2056:
2057: end if;
2058: end if;
2059:
2058: end if;
2059:
2060: return result;
2061: exception when others then
2062: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2063: then
2064: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Exception: '||sqlcode||' - '||sqlerrm);
2065: end if;
2066: return false;
2060: return result;
2061: exception when others then
2062: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2063: then
2064: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Exception: '||sqlcode||' - '||sqlerrm);
2065: end if;
2066: return false;
2067:
2068: end comparePassword;
2090:
2091: begin
2092: l_module_source := G_MODULE_SOURCE || 'validate_login: ';
2093:
2094: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2095: then
2096: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
2097: end if;
2098:
2092: l_module_source := G_MODULE_SOURCE || 'validate_login: ';
2093:
2094: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2095: then
2096: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
2097: end if;
2098:
2099:
2100: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2096: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
2097: end if;
2098:
2099:
2100: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2101: then
2102: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Username: '||p_user_name);
2103: end if;
2104:
2098:
2099:
2100: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2101: then
2102: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Username: '||p_user_name);
2103: end if;
2104:
2105: if (p_user_name is null or p_password is null ) then
2106: fnd_message.set_name('FND','FND_SSO_USER_PASSWD_EMPTY');
2103: end if;
2104:
2105: if (p_user_name is null or p_password is null ) then
2106: fnd_message.set_name('FND','FND_SSO_USER_PASSWD_EMPTY');
2107: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2108: then
2109: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: refusing to validate empty username and/or password');
2110: end if;
2111: return fnd_ldap_util.G_FAILURE;
2105: if (p_user_name is null or p_password is null ) then
2106: fnd_message.set_name('FND','FND_SSO_USER_PASSWD_EMPTY');
2107: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2108: then
2109: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: refusing to validate empty username and/or password');
2110: end if;
2111: return fnd_ldap_util.G_FAILURE;
2112: end if;
2113:
2114: -- Find the DN of the linked guid
2115: begin
2116: select user_guid into l_user_guid from fnd_user where user_name=p_user_name;
2117: if (l_user_guid is null ) then
2118: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2119: then
2120: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: Null guid in FND_USER for: '||p_user_name);
2121: end if;
2122: fnd_message.set_name('FND','FND_SSO_NOT_LINKED');
2116: select user_guid into l_user_guid from fnd_user where user_name=p_user_name;
2117: if (l_user_guid is null ) then
2118: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2119: then
2120: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: Null guid in FND_USER for: '||p_user_name);
2121: end if;
2122: fnd_message.set_name('FND','FND_SSO_NOT_LINKED');
2123: return fnd_ldap_util.G_FAILURE;
2124: end if;
2122: fnd_message.set_name('FND','FND_SSO_NOT_LINKED');
2123: return fnd_ldap_util.G_FAILURE;
2124: end if;
2125: exception when no_data_found then
2126: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2127: then
2128: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: user not found');
2129: end if;
2130: fnd_message.set_name('FND','FND_SSO_LOGIN_FAILED'); -- do no disclusre the real causeL
2124: end if;
2125: exception when no_data_found then
2126: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2127: then
2128: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: user not found');
2129: end if;
2130: fnd_message.set_name('FND','FND_SSO_LOGIN_FAILED'); -- do no disclusre the real causeL
2131: return fnd_ldap_util.G_FAILURE;
2132: when others then
2129: end if;
2130: fnd_message.set_name('FND','FND_SSO_LOGIN_FAILED'); -- do no disclusre the real causeL
2131: return fnd_ldap_util.G_FAILURE;
2132: when others then
2133: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2134: then
2135: fnd_log.string(fnd_log.LEVEL_UNEXPECTED ,l_module_source, 'END with exception: '||sqlcode||'-'||sqlerrm);
2136: end if;
2137: fnd_message.set_name('FND','FND-9914'); -- unexpected error
2131: return fnd_ldap_util.G_FAILURE;
2132: when others then
2133: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2134: then
2135: fnd_log.string(fnd_log.LEVEL_UNEXPECTED ,l_module_source, 'END with exception: '||sqlcode||'-'||sqlerrm);
2136: end if;
2137: fnd_message.set_name('FND','FND-9914'); -- unexpected error
2138: return fnd_ldap_util.G_FAILURE;
2139: end;
2137: fnd_message.set_name('FND','FND-9914'); -- unexpected error
2138: return fnd_ldap_util.G_FAILURE;
2139: end;
2140:
2141: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2142: then
2143: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'GUID:'||l_user_guid);
2144: end if;
2145:
2139: end;
2140:
2141: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2142: then
2143: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'GUID:'||l_user_guid);
2144: end if;
2145:
2146:
2147: -- Obtain the user DN using the GUID
2147: -- Obtain the user DN using the GUID
2148: begin
2149: user_dn := fnd_Ldap_util.get_dn_for_guid(l_user_guid); -- may raise no data found for invalid guids
2150: exception when no_data_found then
2151: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2152: then
2153: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Guid['||l_user_guid||'] for '||p_user_name||' is not a valid guid');
2154: end if;
2155: fnd_message.set_name('FND','FND_SSO_USER_NOT_FOUND'); -- Carefull, this is INVALID GUID message, wrong acronym though
2149: user_dn := fnd_Ldap_util.get_dn_for_guid(l_user_guid); -- may raise no data found for invalid guids
2150: exception when no_data_found then
2151: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2152: then
2153: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Guid['||l_user_guid||'] for '||p_user_name||' is not a valid guid');
2154: end if;
2155: fnd_message.set_name('FND','FND_SSO_USER_NOT_FOUND'); -- Carefull, this is INVALID GUID message, wrong acronym though
2156: return fnd_ldap_util.G_FAILURE;
2157: end;
2155: fnd_message.set_name('FND','FND_SSO_USER_NOT_FOUND'); -- Carefull, this is INVALID GUID message, wrong acronym though
2156: return fnd_ldap_util.G_FAILURE;
2157: end;
2158:
2159: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2160: then
2161: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'DN:'||user_dn);
2162: end if;
2163:
2157: end;
2158:
2159: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2160: then
2161: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'DN:'||user_dn);
2162: end if;
2163:
2164:
2165:
2166: l_host := fnd_preference.get(FND_LDAP_UTIL.G_INTERNAL, FND_LDAP_UTIL.G_LDAP_SYNCH, FND_LDAP_UTIL.G_HOST);
2167: l_port := fnd_preference.get(FND_LDAP_UTIL.G_INTERNAL, FND_LDAP_UTIL.G_LDAP_SYNCH, FND_LDAP_UTIL.G_PORT);
2168:
2169: if (l_host is null or l_port is null) then
2170: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2171: then
2172: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Invalid OiD Setup: host:'||l_host||' port:'||l_port);
2173: end if;
2174:
2168:
2169: if (l_host is null or l_port is null) then
2170: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2171: then
2172: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Invalid OiD Setup: host:'||l_host||' port:'||l_port);
2173: end if;
2174:
2175: fnd_message.set_name('FND','FND-9903'); -- OID setup is incomplete
2176: return fnd_ldap_util.G_FAILURE;
2181: if (l_ldap_auth>0) then
2182: l_db_wlt_url := fnd_preference.get(FND_LDAP_UTIL.G_INTERNAL, FND_LDAP_UTIL.G_LDAP_SYNCH, FND_LDAP_UTIL.G_DBWALLETDIR);
2183: l_db_wlt_pwd := fnd_preference.eget(FND_LDAP_UTIL.G_INTERNAL, FND_LDAP_UTIL.G_LDAP_SYNCH, FND_LDAP_UTIL.G_DBWALLETPASS, FND_LDAP_UTIL.G_LDAP_PWD);
2184: if (l_db_wlt_url is null or l_db_wlt_pwd is null) then
2185: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2186: then
2187: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Invalid Wallet Setup: authLEvel:'
2188: ||l_ldap_auth||' url:'||l_db_wlt_url||' pwd:'||l_db_wlt_url);
2189: end if;
2183: l_db_wlt_pwd := fnd_preference.eget(FND_LDAP_UTIL.G_INTERNAL, FND_LDAP_UTIL.G_LDAP_SYNCH, FND_LDAP_UTIL.G_DBWALLETPASS, FND_LDAP_UTIL.G_LDAP_PWD);
2184: if (l_db_wlt_url is null or l_db_wlt_pwd is null) then
2185: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2186: then
2187: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Invalid Wallet Setup: authLEvel:'
2188: ||l_ldap_auth||' url:'||l_db_wlt_url||' pwd:'||l_db_wlt_url);
2189: end if;
2190:
2191: fnd_message.set_name('FND','FND-9903'); -- OID setup is incomplete
2191: fnd_message.set_name('FND','FND-9903'); -- OID setup is incomplete
2192: return fnd_ldap_util.G_FAILURE;
2193: end if;
2194: else
2195: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2196: then
2197: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'WARNING: NON-SSL connection to OiD, check that the Net is secure');
2198: end if;
2199: end if;
2193: end if;
2194: else
2195: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2196: then
2197: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'WARNING: NON-SSL connection to OiD, check that the Net is secure');
2198: end if;
2199: end if;
2200:
2201: dbms_ldap.use_exception := TRUE;
2203: begin
2204: begin
2205: ldapSession := DBMS_LDAP.init(l_host, l_port);
2206: exception when dbms_ldap.init_failed then
2207: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2208: then
2209: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Cannot contact OID (init failed) at '||l_host||':'||l_port||':'||sqlcode||'-'||sqlerrm);
2210: end if;
2211: fnd_message.set_name('FND','FND_SSO_SYSTEM_NOT_AVAIL');
2205: ldapSession := DBMS_LDAP.init(l_host, l_port);
2206: exception when dbms_ldap.init_failed then
2207: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2208: then
2209: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'Cannot contact OID (init failed) at '||l_host||':'||l_port||':'||sqlcode||'-'||sqlerrm);
2210: end if;
2211: fnd_message.set_name('FND','FND_SSO_SYSTEM_NOT_AVAIL');
2212: return fnd_ldap_util.G_FAILURE;
2213: when others then
2218:
2219: begin
2220: l_retval := dbms_ldap.open_ssl(ldapSession, 'file:'||l_db_wlt_url, l_db_wlt_pwd, l_ldap_auth);
2221: exception when others then
2222: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2223: then
2224: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source,' Cannot establish SSL channel to OiD: '||sqlcode||'-'||sqlerrm);
2225: end if;
2226:
2220: l_retval := dbms_ldap.open_ssl(ldapSession, 'file:'||l_db_wlt_url, l_db_wlt_pwd, l_ldap_auth);
2221: exception when others then
2222: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2223: then
2224: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source,' Cannot establish SSL channel to OiD: '||sqlcode||'-'||sqlerrm);
2225: end if;
2226:
2227: fnd_message.set_name('FND','FND_SSO_INV_AUTH_MODE'); -- Invalid SSL authcode... it is enouggh description
2228: return fnd_ldap_util.G_FAILURE;
2227: fnd_message.set_name('FND','FND_SSO_INV_AUTH_MODE'); -- Invalid SSL authcode... it is enouggh description
2228: return fnd_ldap_util.G_FAILURE;
2229: end;
2230:
2231: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2232: then
2233: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Excellent!! Using SSL to contact OiD');
2234: end if;
2235: end if;
2229: end;
2230:
2231: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2232: then
2233: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Excellent!! Using SSL to contact OiD');
2234: end if;
2235: end if;
2236:
2237:
2247: -- first we check if the password is real,
2248:
2249: if (instr(l_message,':9000:')>0 )then
2250: fnd_message.set_name('FND','FND_SSO_PASSWORD_EXPIRED'); --Your account is locked
2251: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2252: then
2253: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account password expired ');
2254: end if;
2255: elsif (instr(l_message,':9001:')>0 )then
2249: if (instr(l_message,':9000:')>0 )then
2250: fnd_message.set_name('FND','FND_SSO_PASSWORD_EXPIRED'); --Your account is locked
2251: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2252: then
2253: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account password expired ');
2254: end if;
2255: elsif (instr(l_message,':9001:')>0 )then
2256: fnd_message.set_name('FND','FND_SSO_LOCKED'); --Your account is locked
2257: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2253: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account password expired ');
2254: end if;
2255: elsif (instr(l_message,':9001:')>0 )then
2256: fnd_message.set_name('FND','FND_SSO_LOCKED'); --Your account is locked
2257: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2258: then
2259: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account locked');
2260: end if;
2261:
2255: elsif (instr(l_message,':9001:')>0 )then
2256: fnd_message.set_name('FND','FND_SSO_LOCKED'); --Your account is locked
2257: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2258: then
2259: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account locked');
2260: end if;
2261:
2262: else
2263: if (comparePassword(ldapSession, user_dn , p_password) )then
2260: end if;
2261:
2262: else
2263: if (comparePassword(ldapSession, user_dn , p_password) )then
2264: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2265: then
2266: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD password match but ..');
2267: end if;
2268: if (instr(l_message,':9050:')>0) then
2262: else
2263: if (comparePassword(ldapSession, user_dn , p_password) )then
2264: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2265: then
2266: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD password match but ..');
2267: end if;
2268: if (instr(l_message,':9050:')>0) then
2269: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2270: then
2265: then
2266: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD password match but ..');
2267: end if;
2268: if (instr(l_message,':9050:')>0) then
2269: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2270: then
2271: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account is disabled');
2272: end if;
2273: fnd_message.set_name('FND','FND_SSO_USER_DISABLED'); --Your account is disabled
2267: end if;
2268: if (instr(l_message,':9050:')>0) then
2269: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2270: then
2271: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account is disabled');
2272: end if;
2273: fnd_message.set_name('FND','FND_SSO_USER_DISABLED'); --Your account is disabled
2274: elsif (instr(l_message,':9053:')>0) then
2275: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2271: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account is disabled');
2272: end if;
2273: fnd_message.set_name('FND','FND_SSO_USER_DISABLED'); --Your account is disabled
2274: elsif (instr(l_message,':9053:')>0) then
2275: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2276: then
2277: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account is not active: today is out of [start,end] dates ');
2278: end if;
2279: fnd_message.set_name('FND','FND_SSO_NOT_ACTIVE'); --Your account not active. Either past end_date or future start_date
2273: fnd_message.set_name('FND','FND_SSO_USER_DISABLED'); --Your account is disabled
2274: elsif (instr(l_message,':9053:')>0) then
2275: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2276: then
2277: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account is not active: today is out of [start,end] dates ');
2278: end if;
2279: fnd_message.set_name('FND','FND_SSO_NOT_ACTIVE'); --Your account not active. Either past end_date or future start_date
2280: else --unknown reason
2281: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2277: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD account is not active: today is out of [start,end] dates ');
2278: end if;
2279: fnd_message.set_name('FND','FND_SSO_NOT_ACTIVE'); --Your account not active. Either past end_date or future start_date
2280: else --unknown reason
2281: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2282: then
2283: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'cannot bind because:'||l_message);
2284: end if;
2285: -- maybe is not the reason, but it is enough for return , I guess
2279: fnd_message.set_name('FND','FND_SSO_NOT_ACTIVE'); --Your account not active. Either past end_date or future start_date
2280: else --unknown reason
2281: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2282: then
2283: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'cannot bind because:'||l_message);
2284: end if;
2285: -- maybe is not the reason, but it is enough for return , I guess
2286: fnd_message.set_name('FND','FND_APPL_LOGIN_FAILED'); -- invalid username password
2287: end if;
2286: fnd_message.set_name('FND','FND_APPL_LOGIN_FAILED'); -- invalid username password
2287: end if;
2288:
2289: else
2290: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2291: then
2292: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD password did not match');
2293: end if;
2294: -- maybe is not the reason, but it is enough for return , I guess
2288:
2289: else
2290: if (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2291: then
2292: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OiD password did not match');
2293: end if;
2294: -- maybe is not the reason, but it is enough for return , I guess
2295: fnd_message.set_name('FND','FND_APPL_LOGIN_FAILED'); -- invalid username password
2296: end if;
2294: -- maybe is not the reason, but it is enough for return , I guess
2295: fnd_message.set_name('FND','FND_APPL_LOGIN_FAILED'); -- invalid username password
2296: end if;
2297: end if;
2298: if (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2299: then
2300: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: bind error: '||l_message);
2301: end if;
2302: return fnd_ldap_util.G_FAILURE;
2296: end if;
2297: end if;
2298: if (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2299: then
2300: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: bind error: '||l_message);
2301: end if;
2302: return fnd_ldap_util.G_FAILURE;
2303: when others then
2304: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2300: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END: bind error: '||l_message);
2301: end if;
2302: return fnd_ldap_util.G_FAILURE;
2303: when others then
2304: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2305: then
2306: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: unexpected'||l_message);
2307: end if;
2308: return fnd_ldap_util.G_FAILURE;
2302: return fnd_ldap_util.G_FAILURE;
2303: when others then
2304: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2305: then
2306: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: unexpected'||l_message);
2307: end if;
2308: return fnd_ldap_util.G_FAILURE;
2309: end;
2310:
2309: end;
2310:
2311:
2312: l_retval:= dbms_ldap.unbind_s(ldapSession);
2313: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2314: then
2315: fnd_log.string(fnd_log.LEVEL_PROCEDURE , l_module_source, 'END: Valid Username/password');
2316: end if;
2317: return fnd_ldap_util.G_SUCCESS;
2311:
2312: l_retval:= dbms_ldap.unbind_s(ldapSession);
2313: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2314: then
2315: fnd_log.string(fnd_log.LEVEL_PROCEDURE , l_module_source, 'END: Valid Username/password');
2316: end if;
2317: return fnd_ldap_util.G_SUCCESS;
2318:
2319: exception when others then
2316: end if;
2317: return fnd_ldap_util.G_SUCCESS;
2318:
2319: exception when others then
2320: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2321: then
2322: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: unexpected '||sqlcode||' - '||sqlerrm);
2323: end if;
2324: fnd_message.set_name('FND','FND-9914'); -- unexpected error
2318:
2319: exception when others then
2320: if (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2321: then
2322: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'END: unexpected '||sqlcode||' - '||sqlerrm);
2323: end if;
2324: fnd_message.set_name('FND','FND-9914'); -- unexpected error
2325: return fnd_ldap_util.G_FAILURE;
2326: end validate_login;
2373: return ret;
2374:
2375: EXCEPTION WHEN OTHERS THEN
2376: fnd_ldap_util.c_unbind(ldapSession,flag);
2377: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2378: then
2379: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE||'.get_username_from_guid: ', sqlerrm);
2380: end if;
2381: raise;
2375: EXCEPTION WHEN OTHERS THEN
2376: fnd_ldap_util.c_unbind(ldapSession,flag);
2377: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2378: then
2379: fnd_log.string(fnd_log.LEVEL_EXCEPTION, G_MODULE_SOURCE||'.get_username_from_guid: ', sqlerrm);
2380: end if;
2381: raise;
2382:
2383: END;
2400: l_module_source varchar2(256);
2401: BEGIN
2402: l_module_source := G_MODULE_SOURCE || 'SearchUser: ';
2403:
2404: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2405: then
2406: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
2407: end if;
2408:
2402: l_module_source := G_MODULE_SOURCE || 'SearchUser: ';
2403:
2404: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2405: then
2406: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
2407: end if;
2408:
2409: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2410: then
2405: then
2406: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin');
2407: end if;
2408:
2409: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2410: then
2411: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' isername:'||username_z||' dn:'||dn_z);
2412: end if;
2413:
2407: end if;
2408:
2409: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2410: then
2411: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' isername:'||username_z||' dn:'||dn_z);
2412: end if;
2413:
2414:
2415: if (dn_z is null and username_z is null) THEN
2412: end if;
2413:
2414:
2415: if (dn_z is null and username_z is null) THEN
2416: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2417: then
2418: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> false ,Must suply either dn or username ');
2419: end if;
2420:
2414:
2415: if (dn_z is null and username_z is null) THEN
2416: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2417: then
2418: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> false ,Must suply either dn or username ');
2419: end if;
2420:
2421: return false;
2422: END IF;
2423:
2424: IF (dn_z is not null) THEN
2425:
2426: iF (username_z is not null) THEN
2427: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2428: then
2429: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> false , choose dn or username, do not use both ');
2430: end if;
2431: raise TOO_MANY_ROWS ;
2425:
2426: iF (username_z is not null) THEN
2427: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2428: then
2429: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> false , choose dn or username, do not use both ');
2430: end if;
2431: raise TOO_MANY_ROWS ;
2432: END IF;
2433:
2434:
2435: realmDN := FND_OID_PLUG.get_realm_from_user_dn(ldap,dn_z);
2436:
2437: if (realmDN is not null ) THEN
2438: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2439: then
2440: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Realm->:'||realmDN);
2441: end if;
2442: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn_z,FND_LDAP_UTIL.G_DN_KEY) THEN
2436:
2437: if (realmDN is not null ) THEN
2438: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2439: then
2440: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Realm->:'||realmDN);
2441: end if;
2442: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn_z,FND_LDAP_UTIL.G_DN_KEY) THEN
2443: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2444: then
2439: then
2440: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Realm->:'||realmDN);
2441: end if;
2442: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn_z,FND_LDAP_UTIL.G_DN_KEY) THEN
2443: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2444: then
2445: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Complete the record ' );
2446: end if;
2447: ProcessLoadedLpadUserRecord(p_ldap_user,realmDN,dn_z);
2441: end if;
2442: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn_z,FND_LDAP_UTIL.G_DN_KEY) THEN
2443: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2444: then
2445: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Complete the record ' );
2446: end if;
2447: ProcessLoadedLpadUserRecord(p_ldap_user,realmDN,dn_z);
2448:
2449: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2445: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Complete the record ' );
2446: end if;
2447: ProcessLoadedLpadUserRecord(p_ldap_user,realmDN,dn_z);
2448:
2449: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2450: then
2451: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> true ');
2452: end if;
2453: return true; -- loaded from dn_z
2447: ProcessLoadedLpadUserRecord(p_ldap_user,realmDN,dn_z);
2448:
2449: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2450: then
2451: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END-> true ');
2452: end if;
2453: return true; -- loaded from dn_z
2454: ELSE
2455: return false;
2454: ELSE
2455: return false;
2456: END IF;
2457: ELSE
2458: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2459: then
2460: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> Dn does not belong to any realm');
2461: end if;
2462: return false; -- no a valid user dn
2456: END IF;
2457: ELSE
2458: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2459: then
2460: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> Dn does not belong to any realm');
2461: end if;
2462: return false; -- no a valid user dn
2463: END IF;
2464: ELSE
2461: end if;
2462: return false; -- no a valid user dn
2463: END IF;
2464: ELSE
2465: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2466: then
2467: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' lookup by username');
2468: end if;
2469: guid := get_user_guid(ldap,username_z,dn);
2463: END IF;
2464: ELSE
2465: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2466: then
2467: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' lookup by username');
2468: end if;
2469: guid := get_user_guid(ldap,username_z,dn);
2470: if (guid is not null) THEN
2471: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2467: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' lookup by username');
2468: end if;
2469: guid := get_user_guid(ldap,username_z,dn);
2470: if (guid is not null) THEN
2471: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2472: then
2473: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Found guid:'||guid);
2474: end if;
2475: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn,FND_LDAP_UTIL.G_DN_KEY) THEN
2469: guid := get_user_guid(ldap,username_z,dn);
2470: if (guid is not null) THEN
2471: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2472: then
2473: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Found guid:'||guid);
2474: end if;
2475: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn,FND_LDAP_UTIL.G_DN_KEY) THEN
2476: ProcessLoadedLpadUserRecord(p_ldap_user,realmDN,dn);
2477: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2473: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, ' Found guid:'||guid);
2474: end if;
2475: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn,FND_LDAP_UTIL.G_DN_KEY) THEN
2476: ProcessLoadedLpadUserRecord(p_ldap_user,realmDN,dn);
2477: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2478: then
2479: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> FOUND');
2480: end if;
2481:
2475: IF FND_LDAP_UTIL.loadldaprecord(ldap,p_ldap_user.user_data,p_ldap_user.dn,dn,FND_LDAP_UTIL.G_DN_KEY) THEN
2476: ProcessLoadedLpadUserRecord(p_ldap_user,realmDN,dn);
2477: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2478: then
2479: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> FOUND');
2480: end if;
2481:
2482: return true; -- loaded from username search
2483: ELSE
2480: end if;
2481:
2482: return true; -- loaded from username search
2483: ELSE
2484: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2485: then
2486: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> FAIL');
2487: end if;
2488:
2482: return true; -- loaded from username search
2483: ELSE
2484: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2485: then
2486: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> FAIL');
2487: end if;
2488:
2489: return false;
2490: END IF;
2488:
2489: return false;
2490: END IF;
2491: else
2492: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2493: then
2494: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> NOT FOUND');
2495: end if;
2496:
2490: END IF;
2491: else
2492: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2493: then
2494: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, ' END-> NOT FOUND');
2495: end if;
2496:
2497: return null;
2498: END IF;
2499: END IF;
2500:
2501:
2502: EXCEPTION WHEN OTHERS THEN
2503: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2504: then
2505: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source , sqlerrm);
2506: end if;
2507: raise;
2501:
2502: EXCEPTION WHEN OTHERS THEN
2503: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2504: then
2505: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source , sqlerrm);
2506: end if;
2507: raise;
2508:
2509:
2537: return ret;
2538:
2539: EXCEPTION WHEN OTHERS THEN
2540: fnd_ldap_util.c_unbind(ldapSession,flag);
2541: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2542: then
2543: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module, sqlerrm);
2544: end if;
2545: raise;
2539: EXCEPTION WHEN OTHERS THEN
2540: fnd_ldap_util.c_unbind(ldapSession,flag);
2541: if (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2542: then
2543: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module, sqlerrm);
2544: end if;
2545: raise;
2546: END SearchUser;
2547:
2571: x_fnd pls_integer;
2572: l_module_source varchar2(200) := G_MODULE_SOURCE||'.TrimPermited';
2573:
2574: BEGIN
2575: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2576: then
2577: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin:'|| p_entity||' '|| p_operation);
2578: end if;
2579: attr := l_user.user_data.first;
2573:
2574: BEGIN
2575: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2576: then
2577: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'Begin:'|| p_entity||' '|| p_operation);
2578: end if;
2579: attr := l_user.user_data.first;
2580: WHILE attr is not null LOOP
2581: l_attr := attr;
2586: FND_SSO_REGISTRATION.is_operation_allowed(FND_LDAP_WRAPPER.G_EBIZ_TO_OID,
2587: p_entity,p_operation,
2588: l_attr,x_fnd,x_oid,l_user.user_name,l_user.realmDN);
2589: if (x_oid <> FND_LDAP_WRAPPER.G_SUCCESS) THEN
2590: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
2591: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Discard '||attr);
2592: end if;
2593: l_user.user_data.delete(attr);
2594: END IF;
2587: p_entity,p_operation,
2588: l_attr,x_fnd,x_oid,l_user.user_name,l_user.realmDN);
2589: if (x_oid <> FND_LDAP_WRAPPER.G_SUCCESS) THEN
2590: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
2591: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Discard '||attr);
2592: end if;
2593: l_user.user_data.delete(attr);
2594: END IF;
2595: END IF;
2594: END IF;
2595: END IF;
2596: attr := l_user.user_data.next(attr);
2597: END LOOP;
2598: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2599: then
2600: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END');
2601: end if;
2602:
2596: attr := l_user.user_data.next(attr);
2597: END LOOP;
2598: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
2599: then
2600: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END');
2601: end if;
2602:
2603: END TrimPermited;
2604:
2631: BEGIN
2632: l_module_source := G_MODULE_SOURCE || 'pvt_create_user: ';
2633: -- set default value to failure. change to success when user created successfully
2634: retval := fnd_ldap_util.G_FAILURE;
2635: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2636: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
2637: END IF;
2638: ldapSession := fnd_ldap_util.c_get_oid_session(flag);
2639:
2632: l_module_source := G_MODULE_SOURCE || 'pvt_create_user: ';
2633: -- set default value to failure. change to success when user created successfully
2634: retval := fnd_ldap_util.G_FAILURE;
2635: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2636: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
2637: END IF;
2638: ldapSession := fnd_ldap_util.c_get_oid_session(flag);
2639:
2640: l_session_flag := true; /* fix for bug 8271359 */
2638: ldapSession := fnd_ldap_util.c_get_oid_session(flag);
2639:
2640: l_session_flag := true; /* fix for bug 8271359 */
2641:
2642: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2643: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_session_flag = true ' );
2644: end if;
2645:
2646: l_uname := p_ldap_user.user_name;
2639:
2640: l_session_flag := true; /* fix for bug 8271359 */
2641:
2642: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2643: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_session_flag = true ' );
2644: end if;
2645:
2646: l_uname := p_ldap_user.user_name;
2647: IF SearchUser(ldapSession,p_ldap_user, username_z => l_uname) THEN
2644: end if;
2645:
2646: l_uname := p_ldap_user.user_name;
2647: IF SearchUser(ldapSession,p_ldap_user, username_z => l_uname) THEN
2648: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2649: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User exists , checkin APPS_SSO_LINK_SAME_NAMES');
2650: END IF;
2651:
2652: -- Bug 8618800
2645:
2646: l_uname := p_ldap_user.user_name;
2647: IF SearchUser(ldapSession,p_ldap_user, username_z => l_uname) THEN
2648: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2649: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User exists , checkin APPS_SSO_LINK_SAME_NAMES');
2650: END IF;
2651:
2652: -- Bug 8618800
2653: -- Link same names should only apply if the LDAP user is not already linked to an EBS user on this instance
2659: ORG_ID_Z => -1,
2660: val_z => l_multi_sso,
2661: defined_z => l_profile_defined);
2662:
2663: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2664: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Checking APPS_SSO_ALLOW_MULTIPLE_ACCOUNTS '||l_multi_sso);
2665: END IF;
2666:
2667: FND_SSO_REGISTRATION.get_user_or_site_profile(
2660: val_z => l_multi_sso,
2661: defined_z => l_profile_defined);
2662:
2663: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2664: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Checking APPS_SSO_ALLOW_MULTIPLE_ACCOUNTS '||l_multi_sso);
2665: END IF;
2666:
2667: FND_SSO_REGISTRATION.get_user_or_site_profile(
2668: profile_name=>'APPS_SSO_LINK_SAME_NAMES' ,
2669: user_name_z => p_ldap_user.user_name ,
2670: val_z =>l_link,
2671: defined_z => l_profile_defined );
2672:
2673: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2674: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Checking APPS_SSO_LINK_SAME_NAMES '||l_link);
2675: END IF;
2676:
2677: -- Get guid of LDAP User.
2670: val_z =>l_link,
2671: defined_z => l_profile_defined );
2672:
2673: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2674: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Checking APPS_SSO_LINK_SAME_NAMES '||l_link);
2675: END IF;
2676:
2677: -- Get guid of LDAP User.
2678: l_user_guid := get_user_guid(ldapSession,l_uname,l_dn);
2677: -- Get guid of LDAP User.
2678: l_user_guid := get_user_guid(ldapSession,l_uname,l_dn);
2679:
2680: if (l_user_guid is not null) then
2681: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2682: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User guid found...check if already linked to an EBS user');
2683: END IF;
2684:
2685: begin
2678: l_user_guid := get_user_guid(ldapSession,l_uname,l_dn);
2679:
2680: if (l_user_guid is not null) then
2681: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2682: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User guid found...check if already linked to an EBS user');
2683: END IF;
2684:
2685: begin
2686: select 'Y' into l_user_linked from fnd_user
2686: select 'Y' into l_user_linked from fnd_user
2687: where user_guid = l_user_guid
2688: and rownum = 1;
2689:
2690: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2691: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Is this OID user already linked? '||l_user_linked);
2692: END IF;
2693:
2694: exception when no_data_found then
2687: where user_guid = l_user_guid
2688: and rownum = 1;
2689:
2690: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2691: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Is this OID user already linked? '||l_user_linked);
2692: END IF;
2693:
2694: exception when no_data_found then
2695: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2691: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Is this OID user already linked? '||l_user_linked);
2692: END IF;
2693:
2694: exception when no_data_found then
2695: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2696: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'This OID is not linked ');
2697: END IF;
2698: null;
2699: end;
2692: END IF;
2693:
2694: exception when no_data_found then
2695: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2696: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'This OID is not linked ');
2697: END IF;
2698: null;
2699: end;
2700: end if;
2699: end;
2700: end if;
2701:
2702: IF (l_multi_sso = 'N' and l_user_linked = 'Y') then
2703: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2704: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source,
2705: 'STOP - Allow Multiple accounts is disabled and this LDAP user is already linked to an EBS user(s)');
2706: end if;
2707: raise link_create_failed_EXCEPTION;
2700: end if;
2701:
2702: IF (l_multi_sso = 'N' and l_user_linked = 'Y') then
2703: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2704: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source,
2705: 'STOP - Allow Multiple accounts is disabled and this LDAP user is already linked to an EBS user(s)');
2706: end if;
2707: raise link_create_failed_EXCEPTION;
2708: END IF;
2707: raise link_create_failed_EXCEPTION;
2708: END IF;
2709:
2710: IF (l_link = 'Y') THEN
2711: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2712: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User exists but APPS_SSO_LINK_SAME_NAMES is Enabled, adding user to subscription list');
2713: end if;
2714:
2715: retval := create_user_subscription(ldapSession, p_ldap_user.dn , p_ldap_user.user_guid);
2708: END IF;
2709:
2710: IF (l_link = 'Y') THEN
2711: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2712: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User exists but APPS_SSO_LINK_SAME_NAMES is Enabled, adding user to subscription list');
2713: end if;
2714:
2715: retval := create_user_subscription(ldapSession, p_ldap_user.dn , p_ldap_user.user_guid);
2716:
2714:
2715: retval := create_user_subscription(ldapSession, p_ldap_user.dn , p_ldap_user.user_guid);
2716:
2717: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2718: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2719: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source,
2720: 'Failed to create subscription for create_user("'||p_ldap_user.user_name
2721: ||'"), user existed and (APPS_SSO_LINK_SAME_NAMES=Enabled)');
2722: end if;
2715: retval := create_user_subscription(ldapSession, p_ldap_user.dn , p_ldap_user.user_guid);
2716:
2717: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2718: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2719: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source,
2720: 'Failed to create subscription for create_user("'||p_ldap_user.user_name
2721: ||'"), user existed and (APPS_SSO_LINK_SAME_NAMES=Enabled)');
2722: end if;
2723: raise link_create_failed_EXCEPTION;
2722: end if;
2723: raise link_create_failed_EXCEPTION;
2724:
2725: ELSE
2726: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2727: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Subscription created at OiD');
2728: end if;
2729:
2730: -- Bug 8661715 Potential ldap leak
2723: raise link_create_failed_EXCEPTION;
2724:
2725: ELSE
2726: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2727: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Subscription created at OiD');
2728: end if;
2729:
2730: -- Bug 8661715 Potential ldap leak
2731: if (l_session_flag = true) then
2728: end if;
2729:
2730: -- Bug 8661715 Potential ldap leak
2731: if (l_session_flag = true) then
2732: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2733: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION closing ' );
2734: end if;
2735: fnd_ldap_util.c_unbind(ldapSession,flag);
2736: l_session_flag := false;
2729:
2730: -- Bug 8661715 Potential ldap leak
2731: if (l_session_flag = true) then
2732: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2733: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION closing ' );
2734: end if;
2735: fnd_ldap_util.c_unbind(ldapSession,flag);
2736: l_session_flag := false;
2737: end if;
2738: -- Bug 8618800 - User already exists and Link Same Names is enabled - simply link the users
2739: -- return retval;
2740:
2741: -- Bug 13692093: Return new status since the LDAP user already exists the password should not be updated.
2742: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2743: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OID User already exists - return G_OID_USER_EXISTS');
2744: END IF;
2745:
2746: return G_OID_USER_EXISTS;
2739: -- return retval;
2740:
2741: -- Bug 13692093: Return new status since the LDAP user already exists the password should not be updated.
2742: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2743: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OID User already exists - return G_OID_USER_EXISTS');
2744: END IF;
2745:
2746: return G_OID_USER_EXISTS;
2747:
2746: return G_OID_USER_EXISTS;
2747:
2748: END IF;
2749: ELSE -- AUTOLINK DISABLED
2750: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2751: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'FAILED: User exists [username='||p_ldap_user.user_name||']');
2752: END IF;
2753: raise duplicate_username_EXCEPTION;
2754: END IF;
2747:
2748: END IF;
2749: ELSE -- AUTOLINK DISABLED
2750: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2751: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'FAILED: User exists [username='||p_ldap_user.user_name||']');
2752: END IF;
2753: raise duplicate_username_EXCEPTION;
2754: END IF;
2755: ELSE
2756: FND_OID_PLUG.completeForCreate(ldapSession, p_ldap_user);
2757: l_oid_username := p_ldap_user.user_name;
2758: l_dn := p_ldap_user.dn ;
2759: IF SearchUser(ldapSession,p_ldap_user,dn_z => l_dn ) THEN
2760: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2761: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'DN collsion, trying to create "'||l_oid_username||'" on dn:' || p_ldap_user.dn );
2762: END IF;
2763: raise duplicate_dn_EXCEPTION;
2764: END IF;
2757: l_oid_username := p_ldap_user.user_name;
2758: l_dn := p_ldap_user.dn ;
2759: IF SearchUser(ldapSession,p_ldap_user,dn_z => l_dn ) THEN
2760: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2761: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'DN collsion, trying to create "'||l_oid_username||'" on dn:' || p_ldap_user.dn );
2762: END IF;
2763: raise duplicate_dn_EXCEPTION;
2764: END IF;
2765: END IF;
2772: EXCEPTION WHEN OTHERS THEN
2773: v := NULL;
2774: END;
2775: if (v is null) THEN
2776: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2777: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'NicknameAtrtribute not preosente in the record , Cannot create. Check configuration (prov Profiles)');
2778: END IF;
2779: raise CANNOT_CREATE_EXCEPTION;
2780: END IF;
2773: v := NULL;
2774: END;
2775: if (v is null) THEN
2776: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2777: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'NicknameAtrtribute not preosente in the record , Cannot create. Check configuration (prov Profiles)');
2778: END IF;
2779: raise CANNOT_CREATE_EXCEPTION;
2780: END IF;
2781:
2780: END IF;
2781:
2782:
2783: IF NOT ( attributePresent(p_ldap_user,'sn') AND attributePresent(p_ldap_user,'cn')) THEN
2784: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2785: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Not all attrirbutes are present ' || ' cn='||getAttribute(p_ldap_user,'cn') || ' sn='||getAttribute(p_ldap_user,'sn') );
2786: END IF;
2787: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2788: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END -> failed');
2781:
2782:
2783: IF NOT ( attributePresent(p_ldap_user,'sn') AND attributePresent(p_ldap_user,'cn')) THEN
2784: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2785: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Not all attrirbutes are present ' || ' cn='||getAttribute(p_ldap_user,'cn') || ' sn='||getAttribute(p_ldap_user,'sn') );
2786: END IF;
2787: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2788: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END -> failed');
2789: END IF;
2783: IF NOT ( attributePresent(p_ldap_user,'sn') AND attributePresent(p_ldap_user,'cn')) THEN
2784: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2785: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Not all attrirbutes are present ' || ' cn='||getAttribute(p_ldap_user,'cn') || ' sn='||getAttribute(p_ldap_user,'sn') );
2786: END IF;
2787: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2788: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END -> failed');
2789: END IF;
2790: -- Bug 8661715 Potential ldap leak
2791: if (l_session_flag = true) then
2784: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2785: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Not all attrirbutes are present ' || ' cn='||getAttribute(p_ldap_user,'cn') || ' sn='||getAttribute(p_ldap_user,'sn') );
2786: END IF;
2787: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2788: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END -> failed');
2789: END IF;
2790: -- Bug 8661715 Potential ldap leak
2791: if (l_session_flag = true) then
2792: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2788: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END -> failed');
2789: END IF;
2790: -- Bug 8661715 Potential ldap leak
2791: if (l_session_flag = true) then
2792: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2793: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION closing ' );
2794: end if;
2795: l_session_flag := false;
2796: fnd_ldap_util.c_unbind(ldapSession,flag);
2789: END IF;
2790: -- Bug 8661715 Potential ldap leak
2791: if (l_session_flag = true) then
2792: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2793: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION closing ' );
2794: end if;
2795: l_session_flag := false;
2796: fnd_ldap_util.c_unbind(ldapSession,flag);
2797: end if;
2804:
2805: retval := create_ldap_user(ldapSession, p_ldap_user);
2806:
2807: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2808: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2809: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'User creation failed');
2810: end if;
2811: ELSE
2812: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2805: retval := create_ldap_user(ldapSession, p_ldap_user);
2806:
2807: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2808: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2809: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'User creation failed');
2810: end if;
2811: ELSE
2812: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2813: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP user created, now creating susbscriptions');
2808: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2809: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'User creation failed');
2810: end if;
2811: ELSE
2812: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2813: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP user created, now creating susbscriptions');
2814: END IF;
2815: retval := create_user_subscription(ldapSession, p_ldap_user.dn, p_ldap_user.user_guid);
2816: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2809: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, 'User creation failed');
2810: end if;
2811: ELSE
2812: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2813: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP user created, now creating susbscriptions');
2814: END IF;
2815: retval := create_user_subscription(ldapSession, p_ldap_user.dn, p_ldap_user.user_guid);
2816: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2817: IF (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2813: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP user created, now creating susbscriptions');
2814: END IF;
2815: retval := create_user_subscription(ldapSession, p_ldap_user.dn, p_ldap_user.user_guid);
2816: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2817: IF (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2818: fnd_log.string(fnd_log.LEVEL_UNEXPECTED ,l_module_source, 'Subscription creation failed for a new user, removing user');
2819: END IF;
2820: delete_user(ldapSession, p_ldap_user.user_guid,result);
2821: IF (result <>fnd_ldap_util.G_SUCCESS) THEN
2814: END IF;
2815: retval := create_user_subscription(ldapSession, p_ldap_user.dn, p_ldap_user.user_guid);
2816: IF (retval <> fnd_ldap_util.G_SUCCESS) THEN
2817: IF (fnd_log.LEVEL_UNEXPECTED>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2818: fnd_log.string(fnd_log.LEVEL_UNEXPECTED ,l_module_source, 'Subscription creation failed for a new user, removing user');
2819: END IF;
2820: delete_user(ldapSession, p_ldap_user.user_guid,result);
2821: IF (result <>fnd_ldap_util.G_SUCCESS) THEN
2822: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2818: fnd_log.string(fnd_log.LEVEL_UNEXPECTED ,l_module_source, 'Subscription creation failed for a new user, removing user');
2819: END IF;
2820: delete_user(ldapSession, p_ldap_user.user_guid,result);
2821: IF (result <>fnd_ldap_util.G_SUCCESS) THEN
2822: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2823: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, ' unable to remove user ');
2824: end if;
2825: END IF;
2826: raise link_create_failed_EXCEPTION;
2819: END IF;
2820: delete_user(ldapSession, p_ldap_user.user_guid,result);
2821: IF (result <>fnd_ldap_util.G_SUCCESS) THEN
2822: if (fnd_log.LEVEL_UNEXPECTED >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2823: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, ' unable to remove user ');
2824: end if;
2825: END IF;
2826: raise link_create_failed_EXCEPTION;
2827: ELSIF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2823: fnd_log.string(fnd_log.LEVEL_UNEXPECTED, l_module_source, ' unable to remove user ');
2824: end if;
2825: END IF;
2826: raise link_create_failed_EXCEPTION;
2827: ELSIF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2828: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Subscription creation succeeded');
2829: END IF;
2830:
2831: fnd_ldap_util.c_unbind(ldapSession,flag);
2824: end if;
2825: END IF;
2826: raise link_create_failed_EXCEPTION;
2827: ELSIF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2828: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Subscription creation succeeded');
2829: END IF;
2830:
2831: fnd_ldap_util.c_unbind(ldapSession,flag);
2832: l_session_flag := false;
2830:
2831: fnd_ldap_util.c_unbind(ldapSession,flag);
2832: l_session_flag := false;
2833:
2834: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2835: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_session_flag : = false ' );
2836: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION CLOSED NORMALLY : ' );
2837: end if;
2838:
2831: fnd_ldap_util.c_unbind(ldapSession,flag);
2832: l_session_flag := false;
2833:
2834: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2835: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_session_flag : = false ' );
2836: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION CLOSED NORMALLY : ' );
2837: end if;
2838:
2839: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2832: l_session_flag := false;
2833:
2834: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2835: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_session_flag : = false ' );
2836: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION CLOSED NORMALLY : ' );
2837: end if;
2838:
2839: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2840: IF (retval = fnd_ldap_util.G_SUCCESS) THEN
2835: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_session_flag : = false ' );
2836: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'LDAP SESSION CLOSED NORMALLY : ' );
2837: end if;
2838:
2839: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2840: IF (retval = fnd_ldap_util.G_SUCCESS) THEN
2841: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End ->fnd_ldap_util.G_SUCCESS');
2842: ELSE
2843: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End ->fnd_ldap_util.G_FAILURE');
2837: end if;
2838:
2839: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2840: IF (retval = fnd_ldap_util.G_SUCCESS) THEN
2841: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End ->fnd_ldap_util.G_SUCCESS');
2842: ELSE
2843: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End ->fnd_ldap_util.G_FAILURE');
2844: END IF ;
2845: END IF;
2839: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2840: IF (retval = fnd_ldap_util.G_SUCCESS) THEN
2841: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End ->fnd_ldap_util.G_SUCCESS');
2842: ELSE
2843: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'End ->fnd_ldap_util.G_FAILURE');
2844: END IF ;
2845: END IF;
2846: END IF;
2847: RETURN retval;
2848: EXCEPTION
2849:
2850: WHEN CANNOT_CREATE_EXCEPTION THEN
2851: if l_session_flag = true then
2852: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2853: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in CANNOT CREATE EXCEPTION BLOCK - START ' );
2854: end if;
2855: fnd_ldap_util.c_unbind(ldapSession,flag);
2856:
2849:
2850: WHEN CANNOT_CREATE_EXCEPTION THEN
2851: if l_session_flag = true then
2852: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2853: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in CANNOT CREATE EXCEPTION BLOCK - START ' );
2854: end if;
2855: fnd_ldap_util.c_unbind(ldapSession,flag);
2856:
2857: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2853: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in CANNOT CREATE EXCEPTION BLOCK - START ' );
2854: end if;
2855: fnd_ldap_util.c_unbind(ldapSession,flag);
2856:
2857: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2858: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in CANNOT CREATE EXCEPTION BLOCK - END ');
2859: end if;
2860: end if;
2861:
2854: end if;
2855: fnd_ldap_util.c_unbind(ldapSession,flag);
2856:
2857: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2858: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in CANNOT CREATE EXCEPTION BLOCK - END ');
2859: end if;
2860: end if;
2861:
2862: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2858: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in CANNOT CREATE EXCEPTION BLOCK - END ');
2859: end if;
2860: end if;
2861:
2862: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2863: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating ldap user "' ||p_ldap_user.user_name||'" ' ||' Incorrect configuration' );
2864: END IF;
2865: fnd_message.set_name ('FND', 'FND-9903');
2866: RETURN fnd_ldap_util.G_FAILURE;
2859: end if;
2860: end if;
2861:
2862: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2863: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating ldap user "' ||p_ldap_user.user_name||'" ' ||' Incorrect configuration' );
2864: END IF;
2865: fnd_message.set_name ('FND', 'FND-9903');
2866: RETURN fnd_ldap_util.G_FAILURE;
2867:
2866: RETURN fnd_ldap_util.G_FAILURE;
2867:
2868: WHEN duplicate_dn_EXCEPTION THEN
2869: if l_session_flag = true then
2870: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2871: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Duplicate DN EXCEPTION BLOCK - START ' );
2872: end if;
2873: fnd_ldap_util.c_unbind(ldapSession,flag);
2874:
2867:
2868: WHEN duplicate_dn_EXCEPTION THEN
2869: if l_session_flag = true then
2870: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2871: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Duplicate DN EXCEPTION BLOCK - START ' );
2872: end if;
2873: fnd_ldap_util.c_unbind(ldapSession,flag);
2874:
2875: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2871: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Duplicate DN EXCEPTION BLOCK - START ' );
2872: end if;
2873: fnd_ldap_util.c_unbind(ldapSession,flag);
2874:
2875: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2876: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Duplicate DN EXCEPTION BLOCK - END ');
2877: end if;
2878: end if;
2879:
2872: end if;
2873: fnd_ldap_util.c_unbind(ldapSession,flag);
2874:
2875: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2876: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Duplicate DN EXCEPTION BLOCK - END ');
2877: end if;
2878: end if;
2879:
2880: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2876: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Duplicate DN EXCEPTION BLOCK - END ');
2877: end if;
2878: end if;
2879:
2880: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2881: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating ldap user "' ||p_ldap_user.user_name||'" ' ||' DN already exists [DN:'||p_ldap_user.dn ||']' );
2882: END IF;
2883: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
2884: RETURN fnd_ldap_util.G_FAILURE;
2877: end if;
2878: end if;
2879:
2880: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2881: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating ldap user "' ||p_ldap_user.user_name||'" ' ||' DN already exists [DN:'||p_ldap_user.dn ||']' );
2882: END IF;
2883: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
2884: RETURN fnd_ldap_util.G_FAILURE;
2885: WHEN duplicate_username_EXCEPTION THEN
2883: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
2884: RETURN fnd_ldap_util.G_FAILURE;
2885: WHEN duplicate_username_EXCEPTION THEN
2886: if l_session_flag = true then
2887: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2888: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Duplicate Username EXCEPTION BLOCK - START ' );
2889: end if;
2890: fnd_ldap_util.c_unbind(ldapSession,flag);
2891:
2884: RETURN fnd_ldap_util.G_FAILURE;
2885: WHEN duplicate_username_EXCEPTION THEN
2886: if l_session_flag = true then
2887: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2888: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Duplicate Username EXCEPTION BLOCK - START ' );
2889: end if;
2890: fnd_ldap_util.c_unbind(ldapSession,flag);
2891:
2892: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2888: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Duplicate Username EXCEPTION BLOCK - START ' );
2889: end if;
2890: fnd_ldap_util.c_unbind(ldapSession,flag);
2891:
2892: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2893: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Duplicate username EXCEPTION BLOCK - END ');
2894: end if;
2895: end if;
2896:
2889: end if;
2890: fnd_ldap_util.c_unbind(ldapSession,flag);
2891:
2892: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2893: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Duplicate username EXCEPTION BLOCK - END ');
2894: end if;
2895: end if;
2896:
2897: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2893: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Duplicate username EXCEPTION BLOCK - END ');
2894: end if;
2895: end if;
2896:
2897: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2898: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating ldap user "' ||p_ldap_user.user_name||'" ' ||' username already exists [guid:'||p_ldap_user.user_guid||']' );
2899: END IF;
2900: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
2901: RETURN fnd_ldap_util.G_FAILURE;
2894: end if;
2895: end if;
2896:
2897: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2898: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating ldap user "' ||p_ldap_user.user_name||'" ' ||' username already exists [guid:'||p_ldap_user.user_guid||']' );
2899: END IF;
2900: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
2901: RETURN fnd_ldap_util.G_FAILURE;
2902: WHEN link_create_failed_EXCEPTION THEN
2900: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
2901: RETURN fnd_ldap_util.G_FAILURE;
2902: WHEN link_create_failed_EXCEPTION THEN
2903: if l_session_flag = true then
2904: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2905: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Link create failed EXCEPTION BLOCK - START ' );
2906: end if;
2907: fnd_ldap_util.c_unbind(ldapSession,flag);
2908:
2901: RETURN fnd_ldap_util.G_FAILURE;
2902: WHEN link_create_failed_EXCEPTION THEN
2903: if l_session_flag = true then
2904: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2905: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Link create failed EXCEPTION BLOCK - START ' );
2906: end if;
2907: fnd_ldap_util.c_unbind(ldapSession,flag);
2908:
2909: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2905: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in Link create failed EXCEPTION BLOCK - START ' );
2906: end if;
2907: fnd_ldap_util.c_unbind(ldapSession,flag);
2908:
2909: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2910: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Link create failed EXCEPTION BLOCK - END ');
2911: end if;
2912: end if;
2913:
2906: end if;
2907: fnd_ldap_util.c_unbind(ldapSession,flag);
2908:
2909: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2910: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Link create failed EXCEPTION BLOCK - END ');
2911: end if;
2912: end if;
2913:
2914: IF (fnd_log.LEVEL_EXCEPTION>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2910: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in Link create failed EXCEPTION BLOCK - END ');
2911: end if;
2912: end if;
2913:
2914: IF (fnd_log.LEVEL_EXCEPTION>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2915: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating sunscriptions for "'||p_ldap_user.user_name||'" guid:'||p_ldap_user.user_guid );
2916: END IF;
2917: fnd_message.set_name('FND','FND_SSO_LINK_USER_FAILED');
2918: RETURN fnd_ldap_util.G_FAILURE;
2911: end if;
2912: end if;
2913:
2914: IF (fnd_log.LEVEL_EXCEPTION>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2915: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, 'Error creating sunscriptions for "'||p_ldap_user.user_name||'" guid:'||p_ldap_user.user_guid );
2916: END IF;
2917: fnd_message.set_name('FND','FND_SSO_LINK_USER_FAILED');
2918: RETURN fnd_ldap_util.G_FAILURE;
2919: WHEN OTHERS THEN
2917: fnd_message.set_name('FND','FND_SSO_LINK_USER_FAILED');
2918: RETURN fnd_ldap_util.G_FAILURE;
2919: WHEN OTHERS THEN
2920: if l_session_flag = true then
2921: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2922: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in WHEN OTHERS EXCEPTION BLOCK - START ' );
2923: end if;
2924: fnd_ldap_util.c_unbind(ldapSession,flag);
2925:
2918: RETURN fnd_ldap_util.G_FAILURE;
2919: WHEN OTHERS THEN
2920: if l_session_flag = true then
2921: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2922: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in WHEN OTHERS EXCEPTION BLOCK - START ' );
2923: end if;
2924: fnd_ldap_util.c_unbind(ldapSession,flag);
2925:
2926: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2922: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closing in WHEN OTHERS EXCEPTION BLOCK - START ' );
2923: end if;
2924: fnd_ldap_util.c_unbind(ldapSession,flag);
2925:
2926: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2927: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in WHEN OTHERS EXCEPTION BLOCK - END ');
2928: end if;
2929: end if;
2930:
2923: end if;
2924: fnd_ldap_util.c_unbind(ldapSession,flag);
2925:
2926: if (fnd_log.LEVEL_ERROR >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
2927: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in WHEN OTHERS EXCEPTION BLOCK - END ');
2928: end if;
2929: end if;
2930:
2931: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2927: fnd_log.string(fnd_log.LEVEL_ERROR, l_module_source, 'LDAP SESSION closed in WHEN OTHERS EXCEPTION BLOCK - END ');
2928: end if;
2929: end if;
2930:
2931: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2932: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
2933: END IF;
2934: raise;
2935: END pvt_create_user;
2928: end if;
2929: end if;
2930:
2931: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2932: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
2933: END IF;
2934: raise;
2935: END pvt_create_user;
2936:
2967:
2968:
2969:
2970: BEGIN
2971: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2972: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
2973: END IF;
2974: if (p_realm is null) THEN
2975: p_realm := FND_OID_PLUG.get_realm_dn(p_user_name=>p_user_name);
2968:
2969:
2970: BEGIN
2971: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
2972: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
2973: END IF;
2974: if (p_realm is null) THEN
2975: p_realm := FND_OID_PLUG.get_realm_dn(p_user_name=>p_user_name);
2976: END IF;
3052: --usertype.facsimileTelephoneNumber := p_fax;
3053: setAttribute(l_usr,'facsimileTelephoneNumber',p_fax,true);
3054: END IF;
3055:
3056: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3057: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Done setting attributes for user creation...now create the user in OID');
3058: END IF;
3059:
3060:
3053: setAttribute(l_usr,'facsimileTelephoneNumber',p_fax,true);
3054: END IF;
3055:
3056: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3057: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Done setting attributes for user creation...now create the user in OID');
3058: END IF;
3059:
3060:
3061: x_result := pvt_create_user(l_usr);
3060:
3061: x_result := pvt_create_user(l_usr);
3062:
3063: if (x_result = G_OID_USER_EXISTS) then
3064: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
3065: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OID user already exists...set flag and status. Password related task should be bypassed');
3066: end if;
3067: l_oid_user_exists := 'Y';
3068: x_result := fnd_ldap_util.G_SUCCESS;
3061: x_result := pvt_create_user(l_usr);
3062:
3063: if (x_result = G_OID_USER_EXISTS) then
3064: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
3065: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'OID user already exists...set flag and status. Password related task should be bypassed');
3066: end if;
3067: l_oid_user_exists := 'Y';
3068: x_result := fnd_ldap_util.G_SUCCESS;
3069: end if;
3068: x_result := fnd_ldap_util.G_SUCCESS;
3069: end if;
3070:
3071:
3072: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3073: if (x_result = fnd_ldap_util.G_SUCCESS) then
3074: fnd_log.string(fnd_log.LEVEL_STATEMENT,l_module_source,'Successfully created LDAP user');
3075: else
3076: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Failed to create LDAP user');
3070:
3071:
3072: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3073: if (x_result = fnd_ldap_util.G_SUCCESS) then
3074: fnd_log.string(fnd_log.LEVEL_STATEMENT,l_module_source,'Successfully created LDAP user');
3075: else
3076: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Failed to create LDAP user');
3077: end if;
3078: END IF;
3072: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3073: if (x_result = fnd_ldap_util.G_SUCCESS) then
3074: fnd_log.string(fnd_log.LEVEL_STATEMENT,l_module_source,'Successfully created LDAP user');
3075: else
3076: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Failed to create LDAP user');
3077: end if;
3078: END IF;
3079:
3080: -- NOTE: This code seems to be a NOOP and may be removed
3094: END IF;
3095: -- if p_expire_password = false then update the user password (and password only)
3096: IF ( (x_result = fnd_ldap_util.G_SUCCESS and l_oid_user_exists = 'N') )THEN
3097: begin
3098: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3099: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'User has been created - now set password');
3100: END IF;
3101:
3102: change_password(x_user_guid, p_user_name, p_password, p_expire_password, x_password, l_cp_result,TRUE);
3095: -- if p_expire_password = false then update the user password (and password only)
3096: IF ( (x_result = fnd_ldap_util.G_SUCCESS and l_oid_user_exists = 'N') )THEN
3097: begin
3098: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3099: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'User has been created - now set password');
3100: END IF;
3101:
3102: change_password(x_user_guid, p_user_name, p_password, p_expire_password, x_password, l_cp_result,TRUE);
3103:
3100: END IF;
3101:
3102: change_password(x_user_guid, p_user_name, p_password, p_expire_password, x_password, l_cp_result,TRUE);
3103:
3104: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3105: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'User password has been set');
3106: END IF;
3107:
3108: exception when others then
3101:
3102: change_password(x_user_guid, p_user_name, p_password, p_expire_password, x_password, l_cp_result,TRUE);
3103:
3104: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3105: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'User password has been set');
3106: END IF;
3107:
3108: exception when others then
3109: delete_user(x_user_guid, x_result,true);
3109: delete_user(x_user_guid, x_result,true);
3110: raise;
3111: end;
3112: IF (l_enabled = fnd_oid_util.G_DISABLED) THEN
3113: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3114: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Setting user to disabled.');
3115: end if;
3116: disable_user(x_user_guid, p_user_name, l_du_result);
3117: END IF;
3110: raise;
3111: end;
3112: IF (l_enabled = fnd_oid_util.G_DISABLED) THEN
3113: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3114: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Setting user to disabled.');
3115: end if;
3116: disable_user(x_user_guid, p_user_name, l_du_result);
3117: END IF;
3118: IF ( (l_cp_result = fnd_ldap_util.G_FAILURE ) OR (l_du_result = fnd_ldap_util.G_FAILURE) ) THEN
3115: end if;
3116: disable_user(x_user_guid, p_user_name, l_du_result);
3117: END IF;
3118: IF ( (l_cp_result = fnd_ldap_util.G_FAILURE ) OR (l_du_result = fnd_ldap_util.G_FAILURE) ) THEN
3119: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3120: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Error occurred - delete user');
3121: end if;
3122:
3123: delete_user(x_user_guid, x_result);
3116: disable_user(x_user_guid, p_user_name, l_du_result);
3117: END IF;
3118: IF ( (l_cp_result = fnd_ldap_util.G_FAILURE ) OR (l_du_result = fnd_ldap_util.G_FAILURE) ) THEN
3119: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3120: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,'Error occurred - delete user');
3121: end if;
3122:
3123: delete_user(x_user_guid, x_result);
3124: ELSE
3127: END IF;
3128: ELSE
3129: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
3130: END IF;
3131: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3132: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
3133: END IF;
3134: EXCEPTION
3135: WHEN OTHERS THEN
3128: ELSE
3129: fnd_message.set_name ('FND', 'FND_SSO_USER_EXISTS');
3130: END IF;
3131: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3132: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
3133: END IF;
3134: EXCEPTION
3135: WHEN OTHERS THEN
3136: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3132: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
3133: END IF;
3134: EXCEPTION
3135: WHEN OTHERS THEN
3136: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3137: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
3138: END IF;
3139: raise;
3140: END create_user;
3133: END IF;
3134: EXCEPTION
3135: WHEN OTHERS THEN
3136: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3137: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
3138: END IF;
3139: raise;
3140: END create_user;
3141:
3148: idx pls_integer;
3149: l_module_source varchar2(256);
3150: BEGIN
3151: l_module_source:= G_MODULE_SOURCE ||'getNickNameAttr';
3152: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3153: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, sqlerrm);
3154: END IF;
3155:
3156: if (username_z is null) THEN
3149: l_module_source varchar2(256);
3150: BEGIN
3151: l_module_source:= G_MODULE_SOURCE ||'getNickNameAttr';
3152: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3153: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, sqlerrm);
3154: END IF;
3155:
3156: if (username_z is null) THEN
3157: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3153: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, sqlerrm);
3154: END IF;
3155:
3156: if (username_z is null) THEN
3157: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3158: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'No user given: use default');
3159: END IF;
3160: if (cache_default_nna is null) THEN
3161: cache_default_nna:= fnd_sso_registration.get_realm_attribute(
3154: END IF;
3155:
3156: if (username_z is null) THEN
3157: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3158: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'No user given: use default');
3159: END IF;
3160: if (cache_default_nna is null) THEN
3161: cache_default_nna:= fnd_sso_registration.get_realm_attribute(
3162: FND_SSO_REGISTRATION.getdefaultrealm,'orclCommonNickNameAttribute');
3159: END IF;
3160: if (cache_default_nna is null) THEN
3161: cache_default_nna:= fnd_sso_registration.get_realm_attribute(
3162: FND_SSO_REGISTRATION.getdefaultrealm,'orclCommonNickNameAttribute');
3163: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3164: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Caching:'||cache_default_nna);
3165: END IF;
3166: END IF;
3167: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3160: if (cache_default_nna is null) THEN
3161: cache_default_nna:= fnd_sso_registration.get_realm_attribute(
3162: FND_SSO_REGISTRATION.getdefaultrealm,'orclCommonNickNameAttribute');
3163: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3164: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Caching:'||cache_default_nna);
3165: END IF;
3166: END IF;
3167: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3168: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' From cache');
3163: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3164: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Caching:'||cache_default_nna);
3165: END IF;
3166: END IF;
3167: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3168: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' From cache');
3169: END IF;
3170: return cache_default_nna;
3171: END IF;
3164: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Caching:'||cache_default_nna);
3165: END IF;
3166: END IF;
3167: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3168: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' From cache');
3169: END IF;
3170: return cache_default_nna;
3171: END IF;
3172:
3172:
3173:
3174: if (cache_user_name is not null) THEN
3175: if (cache_user_name = username_z) THEN
3176: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3177: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Asking again for '||cache_user_name||'?');
3178: END IF;
3179: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3180: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' USER From cache');
3173:
3174: if (cache_user_name is not null) THEN
3175: if (cache_user_name = username_z) THEN
3176: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3177: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Asking again for '||cache_user_name||'?');
3178: END IF;
3179: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3180: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' USER From cache');
3181: END IF;
3175: if (cache_user_name = username_z) THEN
3176: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3177: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Asking again for '||cache_user_name||'?');
3178: END IF;
3179: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3180: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' USER From cache');
3181: END IF;
3182: return cache_nna;
3183: ELSE
3176: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3177: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Asking again for '||cache_user_name||'?');
3178: END IF;
3179: IF (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3180: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' USER From cache');
3181: END IF;
3182: return cache_nna;
3183: ELSE
3184: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3180: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source, 'END->'||cache_default_nna||' USER From cache');
3181: END IF;
3182: return cache_nna;
3183: ELSE
3184: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3185: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'different user, not cached');
3186: END IF;
3187: cache_user_name:= null;
3188: END IF;
3181: END IF;
3182: return cache_nna;
3183: ELSE
3184: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3185: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'different user, not cached');
3186: END IF;
3187: cache_user_name:= null;
3188: END IF;
3189: END IF;
3188: END IF;
3189: END IF;
3190: -- ok, no options but search
3191:
3192: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3193: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Need to locate the user at LDAP');
3194: END IF;
3195: IF (SearchUser(username_z=>username_z,p_ldap_user=>user_rec)) THEN
3196:
3189: END IF;
3190: -- ok, no options but search
3191:
3192: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3193: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Need to locate the user at LDAP');
3194: END IF;
3195: IF (SearchUser(username_z=>username_z,p_ldap_user=>user_rec)) THEN
3196:
3197: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3193: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Need to locate the user at LDAP');
3194: END IF;
3195: IF (SearchUser(username_z=>username_z,p_ldap_user=>user_rec)) THEN
3196:
3197: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3198: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User FOUND');
3199: END IF;
3200: cache_user_name := username_z;
3201: idx := FND_SSO_REGISTRATION.getuserrealmindex(user_rec.dn);
3194: END IF;
3195: IF (SearchUser(username_z=>username_z,p_ldap_user=>user_rec)) THEN
3196:
3197: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3198: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User FOUND');
3199: END IF;
3200: cache_user_name := username_z;
3201: idx := FND_SSO_REGISTRATION.getuserrealmindex(user_rec.dn);
3202: cache_nna := Fnd_sso_registration.get_realm_attribute(
3200: cache_user_name := username_z;
3201: idx := FND_SSO_REGISTRATION.getuserrealmindex(user_rec.dn);
3202: cache_nna := Fnd_sso_registration.get_realm_attribute(
3203: idx ,'orclCommonNickNameAttribute');
3204: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3205: fnd_log.string(fnd_log.LEVEL_PROCEDURE ,l_module_source, 'END->'||cache_nna);
3206: END IF;
3207: return cache_nna;
3208: ELSE
3201: idx := FND_SSO_REGISTRATION.getuserrealmindex(user_rec.dn);
3202: cache_nna := Fnd_sso_registration.get_realm_attribute(
3203: idx ,'orclCommonNickNameAttribute');
3204: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3205: fnd_log.string(fnd_log.LEVEL_PROCEDURE ,l_module_source, 'END->'||cache_nna);
3206: END IF;
3207: return cache_nna;
3208: ELSE
3209: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3205: fnd_log.string(fnd_log.LEVEL_PROCEDURE ,l_module_source, 'END->'||cache_nna);
3206: END IF;
3207: return cache_nna;
3208: ELSE
3209: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3210: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User NOT FOUND, using default');
3211: END IF;
3212: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3213: fnd_log.string(fnd_log.LEVEL_PROCEDURE ,l_module_source, 'END->'||cache_default_nna);
3206: END IF;
3207: return cache_nna;
3208: ELSE
3209: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3210: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User NOT FOUND, using default');
3211: END IF;
3212: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3213: fnd_log.string(fnd_log.LEVEL_PROCEDURE ,l_module_source, 'END->'||cache_default_nna);
3214: END IF;
3208: ELSE
3209: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3210: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User NOT FOUND, using default');
3211: END IF;
3212: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3213: fnd_log.string(fnd_log.LEVEL_PROCEDURE ,l_module_source, 'END->'||cache_default_nna);
3214: END IF;
3215:
3216: return cache_default_nna; -- do not cache it, maybe it is about to change
3209: IF (fnd_log.LEVEL_STATEMENT>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3210: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'User NOT FOUND, using default');
3211: END IF;
3212: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3213: fnd_log.string(fnd_log.LEVEL_PROCEDURE ,l_module_source, 'END->'||cache_default_nna);
3214: END IF;
3215:
3216: return cache_default_nna; -- do not cache it, maybe it is about to change
3217: END IF;
3216: return cache_default_nna; -- do not cache it, maybe it is about to change
3217: END IF;
3218: EXCEPTION
3219: WHEN OTHERS THEN
3220: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3221: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
3222: END IF;
3223: raise;
3224:
3217: END IF;
3218: EXCEPTION
3219: WHEN OTHERS THEN
3220: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3221: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source, sqlerrm);
3222: END IF;
3223: raise;
3224:
3225: END getNickNameAttr;
3405: l_user_id FND_USER.user_ID%TYPE := p_user_id;
3406: l_user_name FND_USER.user_name%TYPE := p_user_name;
3407: l_module_source varchar2(200) := G_MODULE_SOURCE || 'CanSync:['||p_user_id||']';
3408: BEGIN
3409: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3410: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'BEGIN '||p_user_name||' userid:'||p_user_id);
3411: end if;
3412: if (l_user_id is null and l_user_name is null) THEN
3413: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3406: l_user_name FND_USER.user_name%TYPE := p_user_name;
3407: l_module_source varchar2(200) := G_MODULE_SOURCE || 'CanSync:['||p_user_id||']';
3408: BEGIN
3409: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3410: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'BEGIN '||p_user_name||' userid:'||p_user_id);
3411: end if;
3412: if (l_user_id is null and l_user_name is null) THEN
3413: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3414: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False, try it manually ');
3409: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3410: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'BEGIN '||p_user_name||' userid:'||p_user_id);
3411: end if;
3412: if (l_user_id is null and l_user_name is null) THEN
3413: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3414: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False, try it manually ');
3415: end if;
3416: return false;
3417: ELSIF (l_user_id is null) THEN
3410: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'BEGIN '||p_user_name||' userid:'||p_user_id);
3411: end if;
3412: if (l_user_id is null and l_user_name is null) THEN
3413: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3414: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False, try it manually ');
3415: end if;
3416: return false;
3417: ELSIF (l_user_id is null) THEN
3418: BEGIN
3417: ELSIF (l_user_id is null) THEN
3418: BEGIN
3419: select user_id into l_user_id from FND_USER where user_name =l_user_name;
3420: EXCEPTION WHEN OTHERS THEN
3421: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3422: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False, user not found ');
3423: end if;
3424: return false;
3425: END;
3418: BEGIN
3419: select user_id into l_user_id from FND_USER where user_name =l_user_name;
3420: EXCEPTION WHEN OTHERS THEN
3421: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3422: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False, user not found ');
3423: end if;
3424: return false;
3425: END;
3426: ELSIF (l_user_name is null) THEN
3426: ELSIF (l_user_name is null) THEN
3427: BEGIN
3428: select user_name into l_user_name from FND_USER where user_id =l_user_id;
3429: EXCEPTION WHEN OTHERS THEN
3430: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3431: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False, user not found ');
3432: end if;
3433: return false;
3434: END;
3427: BEGIN
3428: select user_name into l_user_name from FND_USER where user_id =l_user_id;
3429: EXCEPTION WHEN OTHERS THEN
3430: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3431: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False, user not found ');
3432: end if;
3433: return false;
3434: END;
3435:
3443: defined_z => l_profile_defined);
3444:
3445: if (not l_profile_defined or l_local_login = fnd_oid_util.G_LOCAL)
3446: then
3447: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3448: then
3449: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3450: 'value of APPS_SSO_LOCAL_LOGIN:: '|| l_local_login);
3451: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3445: if (not l_profile_defined or l_local_login = fnd_oid_util.G_LOCAL)
3446: then
3447: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3448: then
3449: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3450: 'value of APPS_SSO_LOCAL_LOGIN:: '|| l_local_login);
3451: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3452: 'Local user dont sych '|| l_user_name);
3453: end if;
3447: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3448: then
3449: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3450: 'value of APPS_SSO_LOCAL_LOGIN:: '|| l_local_login);
3451: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3452: 'Local user dont sych '|| l_user_name);
3453: end if;
3454: l_to_synch := FALSE;
3455: else
3459: defined_z => l_profile_defined);
3460:
3461: if (not l_profile_defined or l_allow_sync = fnd_oid_util.G_N)
3462: then
3463: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3464: then
3465: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3466: 'value of APPS_SSO_LDAP_SYNC '|| l_allow_sync);
3467: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3461: if (not l_profile_defined or l_allow_sync = fnd_oid_util.G_N)
3462: then
3463: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3464: then
3465: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3466: 'value of APPS_SSO_LDAP_SYNC '|| l_allow_sync);
3467: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3468: 'Synch profile is disabled for user ...dont sych '|| l_user_name);
3469: end if;
3463: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3464: then
3465: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3466: 'value of APPS_SSO_LDAP_SYNC '|| l_allow_sync);
3467: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source,
3468: 'Synch profile is disabled for user ...dont sych '|| l_user_name);
3469: end if;
3470: l_to_synch := FALSE;
3471: else
3471: else
3472: l_to_synch := TRUE;
3473: end if;
3474: end if;
3475: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3476: if (l_to_synch) THEN
3477: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->True' );
3478: ELSE
3479: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False' );
3473: end if;
3474: end if;
3475: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3476: if (l_to_synch) THEN
3477: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->True' );
3478: ELSE
3479: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False' );
3480: END IF;
3481: end if;
3475: if (fnd_log.LEVEL_PROCEDURE >= fnd_log.G_CURRENT_RUNTIME_LEVEL)then
3476: if (l_to_synch) THEN
3477: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->True' );
3478: ELSE
3479: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module_source,'END->False' );
3480: END IF;
3481: end if;
3482:
3483: return l_to_synch;
3483: return l_to_synch;
3484:
3485:
3486: EXCEPTION WHEN OTHERS THEN
3487: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3488: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source , sqlerrm);
3489: END IF;
3490: raise;
3491:
3484:
3485:
3486: EXCEPTION WHEN OTHERS THEN
3487: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3488: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source , sqlerrm);
3489: END IF;
3490: raise;
3491:
3492: END CanSync;
3499: l dbms_ldap.string_collection;
3500: m varchar2(100);
3501: l_module_source varchar2(400);
3502: BEGIN
3503: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3504: then
3505: l_module_source := G_MODULE_SOURCE || 'ProcessUpdateRec: ';
3506: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
3507: end if;
3502: BEGIN
3503: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3504: then
3505: l_module_source := G_MODULE_SOURCE || 'ProcessUpdateRec: ';
3506: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
3507: end if;
3508:
3509: ma := dbms_ldap.create_mod_array(num=> upd.count);
3510: i:= upd.first;
3520: i:=upd.next(i);
3521: END LOOP;
3522: i := dbms_ldap.modify_s(ldap,dn,ma);
3523:
3524: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3525: then
3526: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'END');
3527: end if;
3528:
3522: i := dbms_ldap.modify_s(ldap,dn,ma);
3523:
3524: if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL)
3525: then
3526: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'END');
3527: end if;
3528:
3529:
3530: EXCEPTION WHEN OTHERS THEN
3530: EXCEPTION WHEN OTHERS THEN
3531: if (ma is not null) then
3532: dbms_ldap.free_Mod_array(ma);
3533: END IF;
3534: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3535: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source , sqlerrm);
3536: END IF;
3537: raise;
3538: END ProcessUpdateRec;
3531: if (ma is not null) then
3532: dbms_ldap.free_Mod_array(ma);
3533: END IF;
3534: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3535: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module_source , sqlerrm);
3536: END IF;
3537: raise;
3538: END ProcessUpdateRec;
3539:
3570: shortest varchar2(4000);
3571: l_v varchar2(4000);
3572: BEGIN
3573:
3574: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3575: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module, 'BEGIN');
3576: END IF;
3577: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3578: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'in realm:'||realmDN||' dn:'||dn_z);
3571: l_v varchar2(4000);
3572: BEGIN
3573:
3574: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3575: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module, 'BEGIN');
3576: END IF;
3577: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3578: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'in realm:'||realmDN||' dn:'||dn_z);
3579: END IF;
3573:
3574: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3575: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module, 'BEGIN');
3576: END IF;
3577: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3578: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'in realm:'||realmDN||' dn:'||dn_z);
3579: END IF;
3580: if ( p_ldap_user.user_data.exists('orclguid') and p_ldap_user.user_data('orclguid').count>0 ) THEN
3581: p_ldap_user.user_guid := p_ldap_user.user_data('orclguid')(0);
3574: IF (fnd_log.LEVEL_PROCEDURE>= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3575: fnd_log.string(fnd_log.LEVEL_PROCEDURE, l_module, 'BEGIN');
3576: END IF;
3577: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3578: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'in realm:'||realmDN||' dn:'||dn_z);
3579: END IF;
3580: if ( p_ldap_user.user_data.exists('orclguid') and p_ldap_user.user_data('orclguid').count>0 ) THEN
3581: p_ldap_user.user_guid := p_ldap_user.user_data('orclguid')(0);
3582: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3578: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'in realm:'||realmDN||' dn:'||dn_z);
3579: END IF;
3580: if ( p_ldap_user.user_data.exists('orclguid') and p_ldap_user.user_data('orclguid').count>0 ) THEN
3581: p_ldap_user.user_guid := p_ldap_user.user_data('orclguid')(0);
3582: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3583: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'guid(from record):'||p_ldap_user.user_guid );
3584: END IF;
3585: else
3586: p_ldap_user.user_guid:=null;
3579: END IF;
3580: if ( p_ldap_user.user_data.exists('orclguid') and p_ldap_user.user_data('orclguid').count>0 ) THEN
3581: p_ldap_user.user_guid := p_ldap_user.user_data('orclguid')(0);
3582: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3583: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'guid(from record):'||p_ldap_user.user_guid );
3584: END IF;
3585: else
3586: p_ldap_user.user_guid:=null;
3587: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3583: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'guid(from record):'||p_ldap_user.user_guid );
3584: END IF;
3585: else
3586: p_ldap_user.user_guid:=null;
3587: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3588: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'NULL Guid (?)');
3589: END IF;
3590:
3591: END IF;
3584: END IF;
3585: else
3586: p_ldap_user.user_guid:=null;
3587: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3588: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'NULL Guid (?)');
3589: END IF;
3590:
3591: END IF;
3592:
3591: END IF;
3592:
3593: p_ldap_user.dn := dn_z; -- no validation
3594:
3595: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3596: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'dn(parameter):'||dn_z);
3597: END IF;
3598:
3599: realm := FND_SSO_REGISTRATION.getUserRealmIndex(p_ldap_user.dn);
3592:
3593: p_ldap_user.dn := dn_z; -- no validation
3594:
3595: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3596: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'dn(parameter):'||dn_z);
3597: END IF;
3598:
3599: realm := FND_SSO_REGISTRATION.getUserRealmIndex(p_ldap_user.dn);
3600: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3596: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'dn(parameter):'||dn_z);
3597: END IF;
3598:
3599: realm := FND_SSO_REGISTRATION.getUserRealmIndex(p_ldap_user.dn);
3600: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3601: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'realmIdx(from dn)'||realm);
3602: END IF;
3603:
3604: p_ldap_user.NickName_ATT_NAME := lower(FND_SSO_REGISTRATION.get_realm_attribute(realm,'orclcommonnicknameattribute'));
3597: END IF;
3598:
3599: realm := FND_SSO_REGISTRATION.getUserRealmIndex(p_ldap_user.dn);
3600: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3601: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'realmIdx(from dn)'||realm);
3602: END IF;
3603:
3604: p_ldap_user.NickName_ATT_NAME := lower(FND_SSO_REGISTRATION.get_realm_attribute(realm,'orclcommonnicknameattribute'));
3605: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3601: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'realmIdx(from dn)'||realm);
3602: END IF;
3603:
3604: p_ldap_user.NickName_ATT_NAME := lower(FND_SSO_REGISTRATION.get_realm_attribute(realm,'orclcommonnicknameattribute'));
3605: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3606: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'NickNameAttribute(realm)'||p_ldap_user.NickName_ATT_NAME );
3607: END IF;
3608:
3609: p_ldap_user.realmDN := FND_SSO_REGISTRATION.find_realm(realm);
3602: END IF;
3603:
3604: p_ldap_user.NickName_ATT_NAME := lower(FND_SSO_REGISTRATION.get_realm_attribute(realm,'orclcommonnicknameattribute'));
3605: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3606: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'NickNameAttribute(realm)'||p_ldap_user.NickName_ATT_NAME );
3607: END IF;
3608:
3609: p_ldap_user.realmDN := FND_SSO_REGISTRATION.find_realm(realm);
3610: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3606: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'NickNameAttribute(realm)'||p_ldap_user.NickName_ATT_NAME );
3607: END IF;
3608:
3609: p_ldap_user.realmDN := FND_SSO_REGISTRATION.find_realm(realm);
3610: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3611: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'realmDN(resolving):'|| p_ldap_user.realmDN );
3612: END IF;
3613:
3614: exp1 := dbms_ldap.explode_dn(lower(dn_z),0);
3607: END IF;
3608:
3609: p_ldap_user.realmDN := FND_SSO_REGISTRATION.find_realm(realm);
3610: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3611: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'realmDN(resolving):'|| p_ldap_user.realmDN );
3612: END IF;
3613:
3614: exp1 := dbms_ldap.explode_dn(lower(dn_z),0);
3615: i := instr(exp1(0),'=');
3619: for i in 1 .. exp1.last -- skip the first
3620: LOOP
3621: p_ldap_user.parent_DN := p_ldap_user.parent_DN || ',' || exp1(i);
3622: END LOOP;
3623: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3624: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'parentDN(from parameter dn)'||p_ldap_user.parent_DN);
3625: END IF;
3626: -- The username calculation:: Can by tricky
3627: -- case 0: No value
3620: LOOP
3621: p_ldap_user.parent_DN := p_ldap_user.parent_DN || ',' || exp1(i);
3622: END LOOP;
3623: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3624: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'parentDN(from parameter dn)'||p_ldap_user.parent_DN);
3625: END IF;
3626: -- The username calculation:: Can by tricky
3627: -- case 0: No value
3628: IF ( p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).count=0) THEN
3626: -- The username calculation:: Can by tricky
3627: -- case 0: No value
3628: IF ( p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).count=0) THEN
3629: p_ldap_user.user_name := null;
3630: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3631: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'nna has no value: username=NULL');
3632: END IF;
3633: -- case 1: only one value in the nickanme attribute
3634: ELSIF ( p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).count=1) THEN
3627: -- case 0: No value
3628: IF ( p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).count=0) THEN
3629: p_ldap_user.user_name := null;
3630: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3631: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'nna has no value: username=NULL');
3632: END IF;
3633: -- case 1: only one value in the nickanme attribute
3634: ELSIF ( p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).count=1) THEN
3635: p_ldap_user.user_name := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(0);
3632: END IF;
3633: -- case 1: only one value in the nickanme attribute
3634: ELSIF ( p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).count=1) THEN
3635: p_ldap_user.user_name := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(0);
3636: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3637: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'user_name(unique nna in record):'||p_ldap_user.user_name);
3638: END IF;
3639: ELSE
3640: -- case 2: several values, let's lookup on FND_USER to see if there is a match
3633: -- case 1: only one value in the nickanme attribute
3634: ELSIF ( p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).count=1) THEN
3635: p_ldap_user.user_name := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(0);
3636: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3637: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, 'user_name(unique nna in record):'||p_ldap_user.user_name);
3638: END IF;
3639: ELSE
3640: -- case 2: several values, let's lookup on FND_USER to see if there is a match
3641: i := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).first;
3639: ELSE
3640: -- case 2: several values, let's lookup on FND_USER to see if there is a match
3641: i := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).first;
3642: p_ldap_user.user_id:= null;
3643: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3644: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' several nna , lookinf for a best match');
3645: END IF;
3646: shortest := null;
3647: p_ldap_user.user_name :=null;
3640: -- case 2: several values, let's lookup on FND_USER to see if there is a match
3641: i := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).first;
3642: p_ldap_user.user_id:= null;
3643: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3644: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' several nna , lookinf for a best match');
3645: END IF;
3646: shortest := null;
3647: p_ldap_user.user_name :=null;
3648: while i is not null loop
3649: l_v:=p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(i);
3650:
3651:
3652: BEGIN
3653: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3654: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' testing nna:'||l_v);
3655: END IF;
3656:
3657: select user_id into p_ldap_user.user_id from fnd_user where
3650:
3651:
3652: BEGIN
3653: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3654: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' testing nna:'||l_v);
3655: END IF;
3656:
3657: select user_id into p_ldap_user.user_id from fnd_user where
3658: user_name=l_v and user_guid=p_ldap_user.user_guid;
3656:
3657: select user_id into p_ldap_user.user_id from fnd_user where
3658: user_name=l_v and user_guid=p_ldap_user.user_guid;
3659:
3660: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3661: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' there it is user_uid:'||p_ldap_user.user_id);
3662: END IF;
3663: if (p_ldap_user.user_name is null) THEN
3664: p_ldap_user.user_name := l_v;
3657: select user_id into p_ldap_user.user_id from fnd_user where
3658: user_name=l_v and user_guid=p_ldap_user.user_guid;
3659:
3660: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3661: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' there it is user_uid:'||p_ldap_user.user_id);
3662: END IF;
3663: if (p_ldap_user.user_name is null) THEN
3664: p_ldap_user.user_name := l_v;
3665: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3661: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' there it is user_uid:'||p_ldap_user.user_id);
3662: END IF;
3663: if (p_ldap_user.user_name is null) THEN
3664: p_ldap_user.user_name := l_v;
3665: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3666: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' tyring with '||l_v);
3667: END IF;
3668: ELSIF (length(p_ldap_user.user_name)>length(l_v)) THEN
3669: p_ldap_user.user_name:= l_v;
3662: END IF;
3663: if (p_ldap_user.user_name is null) THEN
3664: p_ldap_user.user_name := l_v;
3665: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3666: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' tyring with '||l_v);
3667: END IF;
3668: ELSIF (length(p_ldap_user.user_name)>length(l_v)) THEN
3669: p_ldap_user.user_name:= l_v;
3670: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3666: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' tyring with '||l_v);
3667: END IF;
3668: ELSIF (length(p_ldap_user.user_name)>length(l_v)) THEN
3669: p_ldap_user.user_name:= l_v;
3670: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3671: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' Better with shorter : '||l_v);
3672: END IF;
3673: END IF;
3674:
3667: END IF;
3668: ELSIF (length(p_ldap_user.user_name)>length(l_v)) THEN
3669: p_ldap_user.user_name:= l_v;
3670: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3671: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' Better with shorter : '||l_v);
3672: END IF;
3673: END IF;
3674:
3675: i:= p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME).next(i);
3680:
3681: END;
3682: end loop;
3683: if (p_ldap_user.user_name is null) THEN
3684: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3685: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' bad luck, using the first one then '||p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(0));
3686: END IF;
3687:
3688: p_ldap_user.user_name := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(0);
3681: END;
3682: end loop;
3683: if (p_ldap_user.user_name is null) THEN
3684: IF (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3685: fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module, ' bad luck, using the first one then '||p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(0));
3686: END IF;
3687:
3688: p_ldap_user.user_name := p_ldap_user.user_data(p_ldap_user.NickName_ATT_NAME)(0);
3689: END IF;
3689: END IF;
3690: END IF;
3691:
3692: EXCEPTION WHEN OTHERS THEN
3693: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3694: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module , sqlerrm);
3695: END IF;
3696: raise;
3697:
3690: END IF;
3691:
3692: EXCEPTION WHEN OTHERS THEN
3693: IF (fnd_log.LEVEL_EXCEPTION >= fnd_log.G_CURRENT_RUNTIME_LEVEL) THEN
3694: fnd_log.string(fnd_log.LEVEL_EXCEPTION, l_module , sqlerrm);
3695: END IF;
3696: raise;
3697:
3698: END ProcessLoadedLpadUserRecord;