src.com.ibm.as400.access.UserPermission Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk8 Show documentation
Show all versions of jt400-jdk8 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: UserPermission.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2001 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.access;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
* Represents the authority of a specific user.
* Instances of UserPermission are returned by {@link Permission#getUserPermission(String) Permission.getUserPermission()}
**/
public class UserPermission
implements Cloneable,
Serializable
{
static final long serialVersionUID = 4L;
/**
* Constant indicating that no operation has been done.
**/
final static int COMMIT_NONE = -1;
/**
* Constant indicating that this user has just been added.
**/
final static int COMMIT_ADD = 0;
/**
* Constant indicating that this item has been changed for the object.
**/
final static int COMMIT_REMOVE = 1;
/**
* Constant indicating that this user has just been removed.
**/
final static int COMMIT_CHANGE = 2;
/**
* Constant indicating that this user permission has just been set from authorization list.
**/
final static int COMMIT_FROM_AUTL = 3;
/**
* Constant indicating that this user is neither a user nor a group.
* It may be a *PUBLIC, *NTWIRF, or *NTWEFF.
**/
public final static int GROUPINDICATOR_SPECIALVALUE = 0;
/**
* Constant indicating that this user profile is a user.
**/
public final static int GROUPINDICATOR_USER = 1;
/**
* Constant indicating that this user profile is a group.
**/
public final static int GROUPINDICATOR_GROUP = 2;
// Basic authorities mapping to detailed authorities.
final static boolean[][] basicAutMapping = {
{true, true, true, true, true,
true, true, true, true, true },
{false,false,false,false,false,
false,false,false,false,false },
{true, false,false,false,false,
true, false,false,false,true },
{true, false,false,false,false,
true, true, true, true, true }
};
//Constant indicating basic authority type.
final static int BASIC_USER_DEF = -1;
final static int BASIC_ALL = 0;
final static int BASIC_EXCLUDE = 1;
final static int BASIC_USE = 2;
final static int BASIC_CHANGE = 3;
//Constant indicating data authority type.
final static int DATA_READ = 5;
final static int DATA_ADD = 6;
final static int DATA_UPDATE = 7;
final static int DATA_DELETE = 8;
final static int DATA_EXECUTE = 9;
//Constant indicating object authority type.
final static int OBJECT_OPERATION = 0;
final static int OBJECT_MANAGEMENT = 1;
final static int OBJECT_EXIST = 2;
final static int OBJECT_ALTER = 3;
final static int OBJECT_REFERENCE = 4;
//Authorities information.
boolean[] authorities_;
//Data authority information.
String dataAuthority_;
//Object authority informatin.
int objectAuthority_;
// Authorization list management flag.
private boolean autListMgt_;
// Commit flag
private int committed_;
// The value indicating whether this user profile is a user
// profile or a group profile.
private int groupIndicator_;
// User profile name.
private String userName_;
// Indicates whether the user is from authorization list.
private boolean fromAuthorizationList_;
/**
* Constructs a UserPermission object.
* @param userProfileName The name of the user profile.
*
**/
UserPermission(String userProfileName)
{
authorities_ = new boolean[10];
for(int i=0;i
* -1 COMMIT_NONE means no change and any operation to the object.
* 0 COMMIT_ADD means this user permission which was added
* to the object has not been committed.
* 1 COMMIT_REMOVE means this user permission which was
* removed from the object has not been committed.
* 2 COMMIT_CHANGE means the changes of the content have
* not committed.
*
* @see #setCommitted
**/
int getCommitted()
{
return committed_;
}
/**
* Returns the value indicating if the user profile is a group profile.
* @return The value indicating if the user profile is a group profile.
*
**/
public int getGroupIndicator()
{
return groupIndicator_;
}
/**
* Returns the user profile name for this permission.
* @return The user profile name for this permission.
*
**/
public String getUserID()
{
return userName_;
}
/**
* Indicates whether the user permission is from authorization list.
* @return true if the user is from authorization list;
* false otherwise.
**/
public boolean isFromAuthorizationList()
{
return fromAuthorizationList_;
}
/**
* Indicates whether the user has the authority of authorization list management.
* It is valid only for the object which is an authorization list.
* @return true if the user has the authority of authorization list
* management; false otherwise.
*
**/
public boolean isAuthorizationListManagement()
{
return autListMgt_;
}
/**
* Serialization support.
**/
private void readObject(ObjectInputStream s)
throws ClassNotFoundException, IOException
{
s.defaultReadObject();
s.readObject();
}
/**
* Sets the authority of authorization list management.
* It is valid only for the object which is an authorizaiton list.
* @param autListMgt true if the user has the authority
* of authorization list management; false otherwise.
*
**/
public synchronized void setAuthorizationListManagement(boolean autListMgt )
{
autListMgt_ = autListMgt;
if (getCommitted() == COMMIT_NONE)
{
setCommitted(COMMIT_CHANGE);
}
return;
}
/**
* Sets the committed signal.
* @param commit The committed signal.
* @see #getCommitted()
**/
void setCommitted(int commit)
{
committed_ = commit;
return;
}
/**
* Sets the permission of user as coming from an authorization list.
* This is valid only if the user is *PUBLIC and the authorization list
* exists. If set to true, all of the other authorities will be set to false.
* If any of the other authorities are set to true,
* this value is automatically set to false.
* @param fromAutList true if the user is from the authorization list;
* false otherwise.
*
**/
public synchronized void setFromAuthorizationList(boolean fromAutList)
{
if (fromAuthorizationList_ == fromAutList)
return;
if (fromAutList == true)
{
fromAuthorizationList_ = fromAutList;
for(int i=0;i