ILIAS  Release_4_4_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilShibbolethRoleAssignmentRule Class Reference

Shibboleth role assignment rule. More...

+ Collaboration diagram for ilShibbolethRoleAssignmentRule:

Public Member Functions

 __construct ($a_rule_id=0)
 setRuleId ($a_id)
 getRuleId ()
 setRoleId ($a_id)
 getRoleId ()
 setName ($a_name)
 getName ()
 setValue ($a_value)
 getValue ()
 enablePlugin ($a_status)
 isPluginActive ()
 enableAddOnUpdate ($a_status)
 isAddOnUpdateEnabled ()
 enableRemoveOnUpdate ($a_status)
 isRemoveOnUpdateEnabled ()
 setPluginId ($a_id)
 getPluginId ()
 conditionToString ()
 validate ()
 delete ()
 add ()
 update ()
 matches ($a_data)

Data Fields

const ERR_MISSING_NAME = 'shib_missing_attr_name'
const ERR_MISSING_VALUE = 'shib_missing_attr_value'
const ERR_MISSING_ROLE = 'shib_missing_role'
const ERR_MISSING_PLUGIN_ID = 'shib_missing_plugin_id'
const TABLE_NAME = 'shib_role_assignment'

Protected Member Functions

 wildcardCompare ($a_str1, $a_str2)

Protected Attributes

 $db

Private Member Functions

 read ()

Private Attributes

 $rule_id = 0
 $role_id = 0
 $attribute_name = ''
 $attribute_value = ''
 $plugin_active = false
 $add_on_update = false
 $remove_on_update = false
 $plugin_id = 0

Detailed Description

Shibboleth role assignment rule.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Fabian Schmid fabia.nosp@m.n.sc.nosp@m.hmid@.nosp@m.ilub.nosp@m..unib.nosp@m.e.ch
Version
$Id$

Definition at line 35 of file class.ilShibbolethRoleAssignmentRule.php.

Constructor & Destructor Documentation

ilShibbolethRoleAssignmentRule::__construct (   $a_rule_id = 0)
Parameters
int$a_rule_id

Definition at line 83 of file class.ilShibbolethRoleAssignmentRule.php.

References read().

{
global $ilDB;
$this->db = $ilDB;
$this->rule_id = $a_rule_id;
$this->read();
}

+ Here is the call graph for this function:

Member Function Documentation

ilShibbolethRoleAssignmentRule::add ( )
Returns
bool

Definition at line 271 of file class.ilShibbolethRoleAssignmentRule.php.

References $query, getName(), getPluginId(), getRoleId(), getValue(), isAddOnUpdateEnabled(), isPluginActive(), isRemoveOnUpdateEnabled(), and setRuleId().

{
$next_id = $this->db->nextId(self::TABLE_NAME);
$query = 'INSERT INTO ' . self::TABLE_NAME . ' (rule_id,role_id,name,value,plugin,plugin_id,add_on_update,remove_on_update ) ' . 'VALUES( '
. $this->db->quote($next_id, 'integer') . ', ' . $this->db->quote($this->getRoleId(), 'integer') . ', '
. $this->db->quote($this->getName(), 'text') . ', ' . $this->db->quote($this->getValue(), 'text') . ', '
. $this->db->quote((int)$this->isPluginActive(), 'integer') . ', ' . $this->db->quote((int)$this->getPluginId(), 'integer') . ', '
. $this->db->quote((int)$this->isAddOnUpdateEnabled(), 'integer') . ', '
. $this->db->quote((int)$this->isRemoveOnUpdateEnabled(), 'integer') . ') ';
$this->db->manipulate($query);
$this->setRuleId($this->db->getLastInsertId());
return true;
}

+ Here is the call graph for this function:

ilShibbolethRoleAssignmentRule::conditionToString ( )
Returns
string

Definition at line 222 of file class.ilShibbolethRoleAssignmentRule.php.

References $lng, getName(), getPluginId(), getValue(), and isPluginActive().

{
global $lng;
if ($this->isPluginActive()) {
return $lng->txt('shib_plugin_id') . ': ' . $this->getPluginId();
} else {
return $this->getName() . '=' . $this->getValue();
}
}

+ Here is the call graph for this function:

ilShibbolethRoleAssignmentRule::delete ( )
Returns
bool

Definition at line 260 of file class.ilShibbolethRoleAssignmentRule.php.

References $query, and getRuleId().

{
$query = 'DELETE FROM ' . self::TABLE_NAME . ' ' . 'WHERE rule_id = ' . $this->db->quote($this->getRuleId(), 'integer');
$this->db->manipulate($query);
return true;
}

+ Here is the call graph for this function:

ilShibbolethRoleAssignmentRule::enableAddOnUpdate (   $a_status)
Parameters
$a_status

Definition at line 174 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by read().

{
$this->add_on_update = $a_status;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::enablePlugin (   $a_status)
Parameters
$a_status

Definition at line 158 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by read().

{
$this->plugin_active = $a_status;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::enableRemoveOnUpdate (   $a_status)
Parameters
$a_status

Definition at line 190 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by read().

{
$this->remove_on_update = $a_status;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::getName ( )
Returns
string

Definition at line 134 of file class.ilShibbolethRoleAssignmentRule.php.

References $attribute_name.

Referenced by add(), conditionToString(), matches(), update(), and validate().

{
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::getPluginId ( )
Returns
int

Definition at line 214 of file class.ilShibbolethRoleAssignmentRule.php.

References $plugin_id.

Referenced by add(), conditionToString(), matches(), update(), and validate().

{
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::getRoleId ( )
Returns
int

Definition at line 118 of file class.ilShibbolethRoleAssignmentRule.php.

References $role_id.

Referenced by add(), update(), and validate().

{
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::getRuleId ( )
Returns
int

Definition at line 102 of file class.ilShibbolethRoleAssignmentRule.php.

References $rule_id.

Referenced by delete(), read(), and update().

{
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::getValue ( )
Returns
string

Definition at line 150 of file class.ilShibbolethRoleAssignmentRule.php.

References $attribute_value.

Referenced by add(), conditionToString(), matches(), update(), and validate().

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::isAddOnUpdateEnabled ( )
Returns
bool

Definition at line 182 of file class.ilShibbolethRoleAssignmentRule.php.

References $add_on_update.

Referenced by add(), and update().

{
return (bool)$this->add_on_update;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::isPluginActive ( )
Returns
bool

Definition at line 166 of file class.ilShibbolethRoleAssignmentRule.php.

References $plugin_active.

Referenced by add(), conditionToString(), matches(), update(), and validate().

{
return (bool)$this->plugin_active;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::isRemoveOnUpdateEnabled ( )
Returns
bool

Definition at line 198 of file class.ilShibbolethRoleAssignmentRule.php.

References $remove_on_update.

Referenced by add(), and update().

{
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::matches (   $a_data)
Parameters
$a_data
Returns
bool

Definition at line 308 of file class.ilShibbolethRoleAssignmentRule.php.

References ilShibbolethRoleAssignmentRules\callPlugin(), getName(), getPluginId(), getValue(), isPluginActive(), and wildcardCompare().

{
if ($this->isPluginActive()) {
}
// No value
if (! isset($a_data[$this->getName()])) {
return false;
}
$values = $a_data[$this->getName()];
if (is_array($values)) {
return in_array($this->getValue(), $values);
} else {
return $this->wildcardCompare($this->getValue(), $values);
#return $this->getValue() == $values;
}
}

+ Here is the call graph for this function:

ilShibbolethRoleAssignmentRule::read ( )
private
Returns
bool

Definition at line 344 of file class.ilShibbolethRoleAssignmentRule.php.

References $query, $res, $row, DB_FETCHMODE_OBJECT, enableAddOnUpdate(), enablePlugin(), enableRemoveOnUpdate(), getRuleId(), setName(), setPluginId(), setRoleId(), and setValue().

Referenced by __construct().

{
if (! $this->getRuleId()) {
return true;
}
$query = 'SELECT * FROM ' . self::TABLE_NAME . ' ' . 'WHERE rule_id = ' . $this->db->quote($this->getRuleId(), 'integer');
$res = $this->db->query($query);
while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) {
$this->setRoleId($row->role_id);
$this->setName($row->name);
$this->setValue($row->value);
$this->enablePlugin($row->plugin);
$this->setPluginId($row->plugin_id);
$this->enableAddOnUpdate($row->add_on_update);
$this->enableRemoveOnUpdate($row->remove_on_update);
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::setName (   $a_name)
Parameters
$a_name

Definition at line 126 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by read().

{
$this->attribute_name = $a_name;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::setPluginId (   $a_id)
Parameters
$a_id

Definition at line 206 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by read().

{
$this->plugin_id = $a_id;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::setRoleId (   $a_id)
Parameters
$a_id

Definition at line 110 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by read().

{
$this->role_id = $a_id;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::setRuleId (   $a_id)
Parameters
$a_id

Definition at line 94 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by add().

{
$this->rule_id = $a_id;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::setValue (   $a_value)
Parameters
$a_value

Definition at line 142 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by read().

{
$this->attribute_value = $a_value;
}

+ Here is the caller graph for this function:

ilShibbolethRoleAssignmentRule::update ( )
Returns
bool

Definition at line 289 of file class.ilShibbolethRoleAssignmentRule.php.

References $query, getName(), getPluginId(), getRoleId(), getRuleId(), getValue(), isAddOnUpdateEnabled(), isPluginActive(), and isRemoveOnUpdateEnabled().

{
$query = 'UPDATE ' . self::TABLE_NAME . ' ' . 'SET role_id = ' . $this->db->quote($this->getRoleId(), 'integer') . ', ' . 'name = '
. $this->db->quote($this->getName(), 'text') . ', ' . 'value = ' . $this->db->quote($this->getValue(), 'text') . ', ' . 'plugin = '
. $this->db->quote((int)$this->isPluginActive(), 'integer') . ', ' . 'plugin_id = '
. $this->db->quote((int)$this->getPluginId(), 'integer') . ', ' . 'add_on_update = '
. $this->db->quote((int)$this->isAddOnUpdateEnabled(), 'integer') . ', ' . 'remove_on_update = '
. $this->db->quote((int)$this->isRemoveOnUpdateEnabled(), 'integer') . ' '
. 'WHERE rule_id = ' . $this->db->quote($this->getRuleId(), 'integer');
$this->db->manipulate($query);
return true;
}

+ Here is the call graph for this function:

ilShibbolethRoleAssignmentRule::validate ( )
Returns
string

Definition at line 235 of file class.ilShibbolethRoleAssignmentRule.php.

References ERR_MISSING_NAME, ERR_MISSING_PLUGIN_ID, ERR_MISSING_ROLE, ERR_MISSING_VALUE, getName(), getPluginId(), getRoleId(), getValue(), and isPluginActive().

{
if (! $this->getRoleId()) {
}
if (! $this->isPluginActive()) {
if (! $this->getName()) {
}
if (! $this->getValue()) {
}
} else {
// check plugin id is given
if (! $this->getPluginId()) {
}
}
return '';
}

+ Here is the call graph for this function:

ilShibbolethRoleAssignmentRule::wildcardCompare (   $a_str1,
  $a_str2 
)
protected
Parameters
$a_str1
$a_str2
Returns
bool

Definition at line 332 of file class.ilShibbolethRoleAssignmentRule.php.

References $GLOBALS.

Referenced by matches().

{
$pattern = str_replace('*', '.*?', $a_str1);
$GLOBALS['ilLog']->write(__METHOD__ . ': Replace pattern:' . $pattern . ' => ' . $a_str2);
return (bool)preg_match("/" . $pattern . "/us", $a_str2);
// return (bool)preg_match('/^' . $pattern . '$/i', $a_str2);
}

+ Here is the caller graph for this function:

Field Documentation

ilShibbolethRoleAssignmentRule::$add_on_update = false
private

Definition at line 69 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by isAddOnUpdateEnabled().

ilShibbolethRoleAssignmentRule::$attribute_name = ''
private

Definition at line 57 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by getName().

ilShibbolethRoleAssignmentRule::$attribute_value = ''
private

Definition at line 61 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by getValue().

ilShibbolethRoleAssignmentRule::$db
protected

Definition at line 45 of file class.ilShibbolethRoleAssignmentRule.php.

ilShibbolethRoleAssignmentRule::$plugin_active = false
private

Definition at line 65 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by isPluginActive().

ilShibbolethRoleAssignmentRule::$plugin_id = 0
private

Definition at line 77 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by getPluginId().

ilShibbolethRoleAssignmentRule::$remove_on_update = false
private

Definition at line 73 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by isRemoveOnUpdateEnabled().

ilShibbolethRoleAssignmentRule::$role_id = 0
private

Definition at line 53 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by getRoleId().

ilShibbolethRoleAssignmentRule::$rule_id = 0
private

Definition at line 49 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by getRuleId().

const ilShibbolethRoleAssignmentRule::ERR_MISSING_NAME = 'shib_missing_attr_name'

Definition at line 37 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by validate().

const ilShibbolethRoleAssignmentRule::ERR_MISSING_PLUGIN_ID = 'shib_missing_plugin_id'

Definition at line 40 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by validate().

const ilShibbolethRoleAssignmentRule::ERR_MISSING_ROLE = 'shib_missing_role'

Definition at line 39 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by validate().

const ilShibbolethRoleAssignmentRule::ERR_MISSING_VALUE = 'shib_missing_attr_value'

Definition at line 38 of file class.ilShibbolethRoleAssignmentRule.php.

Referenced by validate().

const ilShibbolethRoleAssignmentRule::TABLE_NAME = 'shib_role_assignment'

Definition at line 41 of file class.ilShibbolethRoleAssignmentRule.php.


The documentation for this class was generated from the following file: