com.articulate.sigma.User Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sigma-component Show documentation
Show all versions of sigma-component Show documentation
Sigma knowledge engineering system is an system for developing, viewing and debugging theories in first
order logic. It works with Knowledge Interchange Format (KIF) and is optimized for the Suggested Upper Merged
Ontology (SUMO) www.ontologyportal.org.
/** This code is copyright Articulate Software (c) 2005.
This software is released under the GNU Public License .
Users of this code also consent, by use of this code, to credit Articulate Software
and Ted Gordon in any writings, briefings, publications, presentations, or
other representations of any software which incorporates, builds on, or uses this
code. */
package com.articulate.sigma;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/** *****************************************************************
* A class that encrypts a string and checks it against another stored
* encrypted string, in order to validate a user login.
*/
public class User {
private static final String CHARSET = "UTF-8";
private String username;
/** Encrypted password */
private String password;
/** A String which is one of: user, administrator */
private String role = "user";
/** A HashMap of String keys and String values */
private Map attributes = new HashMap();
/** A List of String keys consisting of unique project names. */
private List projects = new ArrayList();
/** *****************************************************************
*/
public String toString() {
return username + "\n" + password + "\n" + role + "\n";
}
/** *****************************************************************
* Read in an XML object
*/
public void fromXML(BasicXMLelement xml) {
username = (String) xml.attributes.get("name");
password = (String) xml.attributes.get("password");
try {
password = URLDecoder.decode(password,CHARSET);
}
catch (UnsupportedEncodingException uee) {
System.out.println("Error in User.fromXML(): Unsupported encoding exception: "
+ uee.getMessage());
}
setRole((String) xml.attributes.get("role"));
System.out.println("Read role: " + xml.attributes.get("role"));
//System.out.println("INFO in PasswordService.processUserFile(): Number of projects: " + element.subelements.size());
for (int j = 0; j < xml.subelements.size(); j++) {
BasicXMLelement subelement = (BasicXMLelement) xml.subelements.get(j);
if (subelement.tagname.equalsIgnoreCase("project")) {
String projectName = (String) subelement.attributes.get("name");
projects.add(projectName);
}
else {
if (subelement.tagname.equalsIgnoreCase("attribute")) {
String attribute = (String) subelement.attributes.get("name");
String value = (String) subelement.attributes.get("value");
attributes.put(attribute,value);
}
else
System.out.println("Error in User.fromXML(): Bad element: " + subelement.tagname);
}
}
}
/** *****************************************************************
* Create an XML-formatted String
*/
public String toXML() {
StringBuffer result = new StringBuffer();
try {
result.append("\n");
}
catch (UnsupportedEncodingException uee) {
System.out.println("Error in User.toXML(): Unsupported encoding exception: " + uee.getMessage());
}
Iterator it = attributes.keySet().iterator();
while (it.hasNext()) {
String attribute = (String) it.next();
String value = (String) attributes.get(attribute);
result.append(" \n");
}
Iterator it2 = projects.iterator();
while (it2.hasNext()) {
String project = (String) it.next();
result.append(" \n");
}
result.append(" \n");
return result.toString();
}
/** *****************************************************************
*/
public void setUsername(String uname) {
username = uname;
return;
}
/** *****************************************************************
*/
public String getUsername() {
return username;
}
/** *****************************************************************
*/
public void setPassword(String newPassword) {
password = newPassword;
return;
}
/** *****************************************************************
*/
public String getPassword() {
return password;
}
/** *****************************************************************
*/
public void setAttribute(String k, String v) {
this.attributes.put(k, v);
return;
}
/** *****************************************************************
*/
public String getAttribute(String k) {
return this.attributes.get(k);
}
/** *****************************************************************
*/
public void setRole(String newRole) {
if (Arrays.asList(StringUtil.encrypt(PasswordService.USER_ROLE, CHARSET),
StringUtil.encrypt(PasswordService.ADMIN_ROLE, CHARSET))
.contains(newRole))
role = newRole;
else
System.out.println("Error in User.setRole(): Bad role name: " + newRole);
return;
}
/** *****************************************************************
*/
public String getRole() {
return role;
}
/** *****************************************************************
*/
public boolean addProject(String projectName) {
boolean result = false;
if (StringUtil.isNonEmptyString(projectName)) {
String canonicalName = projectName.intern();
if (!projects.contains(canonicalName))
result = projects.add(canonicalName);
}
return result;
}
/** *****************************************************************
*/
public boolean removeProject(String projectName) {
boolean result = false;
if (StringUtil.isNonEmptyString(projectName)) {
result = projects.remove(projectName.intern());
}
return result;
}
/** *****************************************************************
*/
public List getProjects() {
return projects;
}
/** *****************************************************************
*/
public static void main(String[] args) {
}
}