Commit 588f1ffd authored by Claes Sjofors's avatar Claes Sjofors

Java script fixes, and default priv for java environment changed to RtRead

parent 07c26ee1
...@@ -187,10 +187,13 @@ public class JopSpider { ...@@ -187,10 +187,13 @@ public class JopSpider {
"cli_arg4", "/HELPFILE", "/POPNAVIGATOR", "/BOOKMARK", "/INDEX", "cli_arg4", "/HELPFILE", "/POPNAVIGATOR", "/BOOKMARK", "/INDEX",
"/BASE", "/RETURNCOMMAND", "/WIDTH", "/HEIGHT", "/VERSION"}), "/BASE", "/RETURNCOMMAND", "/WIDTH", "/HEIGHT", "/VERSION"}),
new CliTable( "SET", new String[] {"cli_arg1", "cli_arg2", "/NAME", new CliTable( "SET", new String[] {"cli_arg1", "cli_arg2", "/NAME",
"/SOURCE", "/OBJECT", "/VALUE", "/BYPASS"}), "/SOURCE", "/OBJECT", "/VALUE", "/BYPASS", "/PUBLICWRITE"}),
new CliTable( "EXAMPLE", new String[] {"/NAME", "/HIERARCHY"}), new CliTable( "EXAMPLE", new String[] {"/NAME", "/HIERARCHY"}),
new CliTable( "CHECK", new String[] {"cli_arg1", "/METHOD", "/OBJECT"}), new CliTable( "CHECK", new String[] {"cli_arg1", "/METHOD", "/OBJECT"}),
new CliTable( "CALL", new String[] {"cli_arg1", "/METHOD", "/OBJECT"}) new CliTable( "CALL", new String[] {"cli_arg1", "/METHOD", "/OBJECT"}),
new CliTable( "LOGIN", new String[] {"cli_arg1", "cli_arg2"}),
new CliTable( "LOGOUT", null),
new CliTable( "SHOW", new String[] {"cli_arg1"}),
}; };
...@@ -593,13 +596,12 @@ public class JopSpider { ...@@ -593,13 +596,12 @@ public class JopSpider {
String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase(); String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase();
if ( parameter.length() >= cli_arg1.length() && if ( parameter.length() >= cli_arg1.length() &&
parameter.substring(0,cli_arg1.length()).equals(cli_arg1)) { parameter.substring(0,cli_arg1.length()).equals(cli_arg1)) {
// Command is "SET PARAMETER" // Command is "SET PARAMETER"
if ( root instanceof JopApplet) { String name;
String name; String value;
String value; PwrtStatus sts;
PwrtStatus sts;
local_cmd = true; local_cmd = true;
if ( cli.qualifierFound("/NAME")) if ( cli.qualifierFound("/NAME"))
name = cli.getQualValue("/NAME"); name = cli.getQualValue("/NAME");
else { else {
...@@ -613,11 +615,36 @@ public class JopSpider { ...@@ -613,11 +615,36 @@ public class JopSpider {
return 0; return 0;
} }
boolean bypass = cli.qualifierFound("/BYPASS"); boolean bypass = cli.qualifierFound("/BYPASS");
if ( !bypass ) { if ( bypass) {
System.out.println( "Bypass is obsolete");
}
boolean publicwrite = cli.qualifierFound("/PUBLICWRITE");
if ( publicwrite ) {
GdhrGetAttributeFlags retf = gdh.getAttributeFlags( name);
if ( retf.evenSts()) return 0;
if ( (retf.flags & Pwr.mAdef_publicwrite) == 0) {
System.out.println( "Not authorized");
return 0;
}
if ( ! gdh.isAuthorized( Pwr.mPrv_RtRead | Pwr.mPrv_RtWrite |
Pwr.mPrv_System | Pwr.mPrv_Maintenance |
Pwr.mPrv_Process | Pwr.mPrv_Instrument |
Pwr.mPrv_Operator1 | Pwr.mPrv_Operator2 |
Pwr.mPrv_Operator3 | Pwr.mPrv_Operator4 |
Pwr.mPrv_Operator5 | Pwr.mPrv_Operator6 |
Pwr.mPrv_Operator7 | Pwr.mPrv_Operator8 |
Pwr.mPrv_Operator9 | Pwr.mPrv_Operator10)) {
System.out.println( "Not authorized");
return 0;
}
}
else {
// Need RtWrite or System to set attribute // Need RtWrite or System to set attribute
if ( ! gdh.isAuthorized( if ( ! gdh.isAuthorized( Pwr.mPrv_RtWrite | Pwr.mPrv_System)) {
Pwr.mPrv_RtWrite | Pwr.mPrv_System)) { System.out.println( "Not authorized");
System.out.println( "No authorized");
return 0; return 0;
} }
} }
...@@ -625,6 +652,7 @@ public class JopSpider { ...@@ -625,6 +652,7 @@ public class JopSpider {
// Get type of attribute // Get type of attribute
GdhrGetAttributeChar ret = gdh.getAttributeChar( name); GdhrGetAttributeChar ret = gdh.getAttributeChar( name);
if ( ret.evenSts()) return 0; if ( ret.evenSts()) return 0;
System.out.println( "Char sts " + ret.sts);
if ( ret.typeId == Pwr.eType_Float32) { if ( ret.typeId == Pwr.eType_Float32) {
float setValue = Float.parseFloat( value); float setValue = Float.parseFloat( value);
...@@ -653,7 +681,6 @@ public class JopSpider { ...@@ -653,7 +681,6 @@ public class JopSpider {
if ( sts.evenSts()) if ( sts.evenSts())
System.out.println( "setObjectInfoError " + sts); System.out.println( "setObjectInfoError " + sts);
}
} }
String subwindow = "SUBWINDOW"; String subwindow = "SUBWINDOW";
...@@ -858,6 +885,41 @@ public class JopSpider { ...@@ -858,6 +885,41 @@ public class JopSpider {
} }
} }
else if ( command.equals("LOGOUT")) {
gdh.logout();
}
else if ( command.equals("LOGIN")) {
if ( cli.qualifierFound("cli_arg1") && cli.qualifierFound("cli_arg2")) {
String username = cli.getQualValue("cli_arg1");
String passwd = cli.getQualValue("cli_arg2");
passwd = JopCrypt.crypt( "aa", passwd);
int sts = gdh.login( username, passwd);
if ( (sts & 1) == 1)
System.out.println( "User " + username + " logged in");
else
System.out.println( "User not authorized");
}
else {
System.out.println( "Cmd: Syntax error\n");
return 0;
}
}
else if ( command.equals("SHOW")) {
if ( cli.qualifierFound("cli_arg1")) {
String parameter = "USER";
String cli_arg1 = cli.getQualValue("cli_arg1").toUpperCase();
if ( parameter.length() >= cli_arg1.length() &&
parameter.substring(0,cli_arg1.length()).equals(cli_arg1)) {
// Command is "SHOW USER"
String username = gdh.getUser();
if ( username == null)
username = "Not logged in";
int priv = gdh.getPrivilege();
System.out.println( "User: " + username + " " + priv);
}
}
}
} }
else { else {
System.out.println( "JopSpider: Parse error " + cli.getStsString()); System.out.println( "JopSpider: Parse error " + cli.getStsString());
......
...@@ -91,7 +91,7 @@ public class JopgCcm { ...@@ -91,7 +91,7 @@ public class JopgCcm {
CdhrObjid reto = gdh.getRootList(); CdhrObjid reto = gdh.getRootList();
sts = reto.sts; sts = reto.sts;
if ( reto.oddSts()) { if ( reto.oddSts()) {
CdhrString rets = gdh.objidToName( reto.objid, Cdh.mName_volumeStrict); CdhrString rets = gdh.objidToName( reto.objid, Cdh.mNName);
sts = rets.sts; sts = rets.sts;
if ( rets.oddSts()) if ( rets.oddSts())
ret.rstring = rets.str; ret.rstring = rets.str;
...@@ -120,7 +120,7 @@ public class JopgCcm { ...@@ -120,7 +120,7 @@ public class JopgCcm {
CdhrObjid reto = gdh.getNodeObject( 0); CdhrObjid reto = gdh.getNodeObject( 0);
sts = reto.sts; sts = reto.sts;
if ( reto.oddSts()) { if ( reto.oddSts()) {
CdhrString rets = gdh.objidToName( reto.objid, Cdh.mName_volumeStrict); CdhrString rets = gdh.objidToName( reto.objid, Cdh.mNName);
sts = rets.sts; sts = rets.sts;
if ( rets.oddSts()) if ( rets.oddSts())
ret.rstring = rets.str; ret.rstring = rets.str;
...@@ -156,7 +156,7 @@ public class JopgCcm { ...@@ -156,7 +156,7 @@ public class JopgCcm {
CdhrObjid reto = gdh.getClassList( retc.classId); CdhrObjid reto = gdh.getClassList( retc.classId);
sts = reto.sts; sts = reto.sts;
if ( reto.oddSts()) { if ( reto.oddSts()) {
CdhrString rets = gdh.objidToName( reto.objid, Cdh.mName_volumeStrict); CdhrString rets = gdh.objidToName( reto.objid, Cdh.mNName);
sts = rets.sts; sts = rets.sts;
if ( rets.oddSts()) if ( rets.oddSts())
ret.rstring = rets.str; ret.rstring = rets.str;
...@@ -193,7 +193,7 @@ public class JopgCcm { ...@@ -193,7 +193,7 @@ public class JopgCcm {
reto = gdh.getNextObject( reto.objid); reto = gdh.getNextObject( reto.objid);
sts = reto.sts; sts = reto.sts;
if ( reto.oddSts()) { if ( reto.oddSts()) {
CdhrString rets = gdh.objidToName( reto.objid, Cdh.mName_volumeStrict); CdhrString rets = gdh.objidToName( reto.objid, Cdh.mNName);
sts = rets.sts; sts = rets.sts;
if ( rets.oddSts()) if ( rets.oddSts())
ret.rstring = rets.str; ret.rstring = rets.str;
...@@ -275,7 +275,7 @@ public class JopgCcm { ...@@ -275,7 +275,7 @@ public class JopgCcm {
sts = reto.sts; sts = reto.sts;
} }
if ( Ccm.ODD(sts)) { if ( Ccm.ODD(sts)) {
CdhrString rets = gdh.objidToName( reto.objid, Cdh.mName_volumeStrict); CdhrString rets = gdh.objidToName( reto.objid, Cdh.mNName);
sts = rets.sts; sts = rets.sts;
if ( rets.oddSts()) if ( rets.oddSts())
ret.rstring = rets.str; ret.rstring = rets.str;
...@@ -313,7 +313,7 @@ public class JopgCcm { ...@@ -313,7 +313,7 @@ public class JopgCcm {
sts = reto.sts; sts = reto.sts;
} }
if ( Ccm.ODD(sts)) { if ( Ccm.ODD(sts)) {
CdhrString rets = gdh.objidToName( reto.objid, Cdh.mName_volumeStrict); CdhrString rets = gdh.objidToName( reto.objid, Cdh.mNName);
sts = rets.sts; sts = rets.sts;
if ( rets.oddSts()) if ( rets.oddSts())
ret.rstring = rets.str; ret.rstring = rets.str;
...@@ -351,7 +351,7 @@ public class JopgCcm { ...@@ -351,7 +351,7 @@ public class JopgCcm {
sts = reto.sts; sts = reto.sts;
} }
if ( Ccm.ODD(sts)) { if ( Ccm.ODD(sts)) {
CdhrString rets = gdh.objidToName( reto.objid, Cdh.mName_volumeStrict); CdhrString rets = gdh.objidToName( reto.objid, Cdh.mNName);
sts = rets.sts; sts = rets.sts;
if ( rets.oddSts()) if ( rets.oddSts())
ret.rstring = rets.str; ret.rstring = rets.str;
...@@ -465,12 +465,13 @@ public class JopgCcm { ...@@ -465,12 +465,13 @@ public class JopgCcm {
sts = 0; sts = 0;
} }
} }
if ( Ccm.EVEN(sts)) { if ( args.length == 2) {
if ( args.length == 2) { if ( Ccm.EVEN(sts))
args[1].value_int = sts; args[1].value_int = sts;
args[1].value_returned = true; else
args[1].var_decl = args[1].value_decl; args[1].value_int = 1;
} args[1].value_returned = true;
args[1].var_decl = args[1].value_decl;
} }
return ret; return ret;
} }
......
...@@ -48,6 +48,7 @@ public class Cdh { ...@@ -48,6 +48,7 @@ public class Cdh {
public static final int cManufactClassVolMin = (0 + (0 << 24) + (0 << 16) + (250 << 8) + 0); public static final int cManufactClassVolMin = (0 + (0 << 24) + (0 << 16) + (250 << 8) + 0);
public static final int cManufactClassVolMax = (0 + (0 << 24) + (0 << 16) + (254 << 8) + 254); public static final int cManufactClassVolMax = (0 + (0 << 24) + (0 << 16) + (254 << 8) + 254);
public static final int mNName = 0;
public static final int mName_volume = 1 << 0; public static final int mName_volume = 1 << 0;
public static final int mName_path = 1 << 1; public static final int mName_path = 1 << 1;
public static final int mName_object = 1 << 2; public static final int mName_object = 1 << 2;
......
...@@ -57,7 +57,8 @@ public class Gdh { ...@@ -57,7 +57,8 @@ public class Gdh {
private static String currentSystemGroup = null; private static String currentSystemGroup = null;
private static String currentUser = null; private static String currentUser = null;
private static String currentPassword = null; private static String currentPassword = null;
private static int currentPrivilege = Pwr.mAccess_AllPwr; private static int defaultPrivilege = Pwr.mPrv_RtRead;
private static int currentPrivilege = defaultPrivilege;
public Gdh( GdhApplIfc root) { public Gdh( GdhApplIfc root) {
...@@ -140,7 +141,7 @@ public class Gdh { ...@@ -140,7 +141,7 @@ public class Gdh {
currentSystemGroup = null; currentSystemGroup = null;
currentUser = null; currentUser = null;
currentPassword = null; currentPassword = null;
currentPrivilege = Pwr.mAccess_AllPwr; currentPrivilege = defaultPrivilege;
} }
/** /**
...@@ -156,6 +157,9 @@ public class Gdh { ...@@ -156,6 +157,9 @@ public class Gdh {
public String getUser() { public String getUser() {
return currentUser; return currentUser;
} }
public int getPrivilege() {
return currentPrivilege;
}
/** /**
Check if the current users privileges matches the access. Check if the current users privileges matches the access.
......
...@@ -1503,6 +1503,10 @@ public class Gdh ...@@ -1503,6 +1503,10 @@ public class Gdh
{ {
return currentUser; return currentUser;
} }
public int getPrivilege()
{
return currentPrivilege;
}
public boolean isAuthorized(int access) public boolean isAuthorized(int access)
......
...@@ -3083,7 +3083,7 @@ The label line is terminated with colon. ...@@ -3083,7 +3083,7 @@ The label line is terminated with colon.
include include
An script include-file containing functions can be included with the An script include-file containing functions can be included with the
#include statement. The default file extention is '.pwr_com' #include statement. The default file extention is '.rtt_com'
<b>Example <b>Example
...@@ -3808,7 +3808,7 @@ Returns the status of the operation. ...@@ -3808,7 +3808,7 @@ Returns the status of the operation.
string <t>name <t>name of the attribute to write to. string <t>name <t>name of the attribute to write to.
<arbitrary type)<t>value <t>the value to set. <arbitrary type)<t>value <t>the value to set.
int <t>publicwrite <t>if 1, write to and attribute defined as PublicWrite int <t>publicwrite <t>if 1, write to an attribute defined as PublicWrite
<t> <t>is allowed also without the RtWrite privilege. <t> <t>is allowed also without the RtWrite privilege.
<b>Example <b>Example
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment