home *** CD-ROM | disk | FTP | other *** search
- package netscape.security;
-
- class UserHtmlDialog {
- UserTarget itsTarget;
- Principal itsPrin;
- Privilege itsPrivelege;
- Object itsData;
- static Object lock = new Object();
- static UserHtmlDialog theCurrentDialog = null;
- private static final int PERMISSION_NOT_SET = 0;
- private static final int ALLOWED_FOREVER = 1;
- private static final int ALLOWED_SESSION = 2;
- private static final int FORBIDDEN_FOREVER = 3;
- private static final int BLANK_SESSION = 4;
-
- public UserHtmlDialog(Target var1, Principal var2, Object var3) {
- if (var1 == null) {
- throw new ForbiddenTargetException("no target");
- } else if (!(var1 instanceof UserTarget)) {
- throw new ForbiddenTargetException("target not a user target");
- } else {
- this.itsTarget = (UserTarget)var1;
- this.itsPrin = var2;
- this.itsData = var3;
- }
- }
-
- public synchronized Privilege show() {
- Privilege var1 = Privilege.findPrivilege(2, 1);
- PrivilegeManager var2 = PrivilegeManager.getPrivilegeManager();
- if (var2 == null) {
- return var1;
- } else {
- Object var4 = lock;
- synchronized(var4){}
-
- try {
- try {
- while(theCurrentDialog != null) {
- try {
- lock.wait();
- } catch (InterruptedException var17) {
- System.out.println("interrupted before dialog!");
- ((Throwable)var17).printStackTrace(System.out);
- Privilege var3 = var1;
- return var3;
- }
- }
-
- theCurrentDialog = this;
- var1 = this.displayHtmlDialog();
- return var1;
- } catch (Throwable var18) {
- System.out.println("interrupted during dialog!");
- var18.printStackTrace(System.out);
- return var1;
- } finally {
- theCurrentDialog = null;
- lock.notifyAll();
- }
- } catch (Throwable var20) {
- throw var20;
- }
- }
- }
-
- private Privilege displayHtmlDialog() {
- Privilege var1 = Privilege.findPrivilege(2, 1);
- PrivilegeManager var5 = PrivilegeManager.getPrivilegeManager();
- String var6 = "<option>" + this.itsTarget.getDescription();
- String var7 = this.itsTarget.getRisk();
- String var8 = this.itsPrin.toString();
- boolean var9 = !this.itsPrin.isCodebase();
- int var2 = var5.getPrivilegeFromUser(var8, var6, var7, var9);
- byte var3;
- byte var4;
- if (var2 == 1) {
- var3 = 1;
- var4 = 2;
- } else if (var2 == 2) {
- var3 = 1;
- var4 = 1;
- } else if (var2 == 3) {
- var3 = 0;
- var4 = 2;
- } else {
- var3 = 2;
- var4 = 1;
- }
-
- var1 = Privilege.findPrivilege(var3, var4);
- return var1;
- }
- }
-