Version 2, last updated by franiglesias at December 16, 2009 22:11 UTC

Rule (Reglas de Acceso)

Las reglas de acceso (Rule) nos permiten definir cómo pueden acceder los usuarios a los recursos de la aplicación, tanto acciones como objetos.

Tienen las siguientes propiedades

  • id
  • name
  • subject_class
  • subject_fk
  • action
  • object_class
  • object_fk
  • permission
  • precedence

Name

Es una descripción textual para humanos breve del contenido o función de la regla.

Action

La acción a la que afecta la regla. Se define con una cadena de texto de la forma

/:plugin/:controller/:action

Por ejemplo:

/contents/channels/admin_index

Se puede usar el carácter % como comodín para definir conjuntos de acciones, por ejemplo en:

/:plugin/:controller/%

La regla haría referencia a cualquier acción del controlador indicado.

Ejemplos

/channels/%
%/items/%

Subject_class

La clase del "sujeto" de los permisos de acceso de la regla. Puede ser User o Group.

Subject_fk

El identificador único del sujeto. Para indicar que vale para todos los sujetos se usa el comodín %

Object_class

La clase del objeto sobre el que el sujeto tiene permisos de acceso. Se puede usar el comodín % para indicar que la regla se aplica a cualquier tipo de objeto.

Object_fk

El identificador único del objeto sobre el que se tienen permisos de acceso. Se puede usar el comodín %.

Permission

Puede tomar los valores: 1 (allow, permitir) o 0 (deny, denegar). Indica si el sujeto tiene acceso a ese objeto y/o acción.

Precedence

Se trata de un valor que permite al sistema ordenar las reglas para determinar el si un sujeto tiene acceso a una acción, objeto o conjunto de objetos. La precedencia tiene especial importancia cuando se combinan reglas y algunas permiten el acceso y otras lo deniegan.

Este valor se establece en el momento de creación de las reglas y tiene cuatro niveles, de mayor a menor:

RULE_SYSTEM: Son las reglas por defecto del sistema y nos aseguran que existe un grupo de usuarios root con acceso total, así como que los usuarios registrados tienen acceso a las acciones de acceso a su cuenta. También nos permite fijar un acceso mínimo.

Estas reglas se crean al iniciar el sistema.

RULE_OWNER: Cuando un usuario crea un objeto se convierte en su propietario, con todos los derechos de acceso a ese objeto.

Estas reglas se crean cuando se crea un objeto.

RULE_INDIVIDUAL: Son reglas que pueden definir los administradores y que afectan a un usuario específico.

RULE_POLICY: Son reglas que pueden definir los administradores y que afectan a un grupo específico.