package com.orientechnologies.orient.core.metadata.security;
import com.orientechnologies.orient.core.db.record.OIdentifiable;
import com.orientechnologies.orient.core.record.impl.ODocument;
import java.io.Serializable;
import java.util.Set;
/**
* @author Andrey Lomakin (a.lomakin-at-orientechnologies.com)
* @since 03/11/14
*/
public interface OSecurityUser extends Serializable {
enum STATUSES {
SUSPENDED, ACTIVE
}
OSecurityRole allow(final ORule.ResourceGeneric resourceGeneric, String resourceSpecific, final int iOperation);
OSecurityRole checkIfAllowed(final ORule.ResourceGeneric resourceGeneric, String resourceSpecific, final int iOperation);
boolean isRuleDefined(final ORule.ResourceGeneric resourceGeneric, String resourceSpecific);
@Deprecated
OSecurityRole allow(final String iResource, final int iOperation);
@Deprecated
OSecurityRole checkIfAllowed(final String iResource, final int iOperation);
@Deprecated
boolean isRuleDefined(final String iResource);
boolean checkPassword(final String iPassword);
String getName();
OSecurityUser setName(final String iName);
String getPassword();
OSecurityUser setPassword(final String iPassword);
OSecurityUser.STATUSES getAccountStatus();
void setAccountStatus(OSecurityUser.STATUSES accountStatus);
Set<? extends OSecurityRole> getRoles();
OSecurityUser addRole(final String iRole);
OSecurityUser addRole(final OSecurityRole iRole);
boolean removeRole(final String iRoleName);
boolean hasRole(final String iRoleName, final boolean iIncludeInherited);
OIdentifiable getIdentity();
ODocument getDocument();
}