format 74
"Security" // default::Nette::Security
  revision 1
  modified_by 127 "neo"
  // class settings
  //class diagram settings
  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
  //use case diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
  //sequence diagram settings
  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default show_class_context_mode default show_msg_context_mode default
  //collaboration diagram settings
  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default show_msg_context default draw_all_relations default shadow default show_stereotype_properties default
  //object diagram settings
   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
  //component diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //deployment diagram settings
  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //state diagram settings
  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
  //activity diagram settings
  package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
  show_infonote default drawing_language default show_stereotype_properties default
  
  comment "This file is part of the Nette Framework (http://nette.org) 
Copyright (c) 2004 David Grudl (http://davidgrudl.com) 
For the full copyright and license information, please view the file license.txt that was distributed with this source code."
  classview 134271 "Class View"
    //class diagram settings
    draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
    //collaboration diagram settings
    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default show_msg_context default draw_all_relations default shadow default show_stereotype_properties default
    //object diagram settings
     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
    //sequence diagram settings
    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default show_class_context_mode default show_msg_context_mode default
    //state diagram settings
    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
    //class settings
    //activity diagram settings
    package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
    show_infonote default drawing_language default show_stereotype_properties default
    class 166015 "IAuthenticator"
      abstract visibility package stereotype "interface"
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Performs authentication."
      operation 389247 "authenticate"
	public explicit_return_type ""
	nparams 1
	  param in name "$credentials" explicit_type "array"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Performs an authentication against e.g. database.
and returns IIdentity on success or throws AuthenticationException"
      end
    end

    class 166143 "User"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "User authentication and authorization."
      classrelation 155007 // <generalisation>
	relation 155007 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 155007 // <generalisation>
	  b parent class_ref 142335 // Object
      end

      attribute 238975 "MANUAL"
	class_attribute const_attribute public explicit_type "mixed"
	init_value "IUserStorageMANUAL"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239103 "INACTIVITY"
	public explicit_type "mixed"
	init_value "IUserStorageINACTIVITY"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239231 "BROWSER_CLOSED"
	public explicit_type "mixed"
	init_value "IUserStorageBROWSER_CLOSED"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239359 "_guestRole"
	public explicit_type "string"
	init_value "'guest'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239487 "_authenticatedRole"
	public explicit_type "string"
	init_value "'authenticated'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239615 "_onLoggedIn"
	public explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239743 "_onLoggedOut"
	public explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239871 "_storage"
	private explicit_type ""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 239999 "_authenticator"
	private type class_ref 166015 // IAuthenticator
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 240127 "_authorizator"
	private explicit_type ""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 240255 "_context"
	private explicit_type ""
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      operation 389375 "__construct"
	public explicit_return_type "void"
	nparams 2
	  param in name "$storage" explicit_type ""
	  param in name "$context" explicit_type ""
	
	
	php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end

      operation 389503 "getStorage"
	public explicit_return_type ""
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end

      operation 389631 "login"
	public explicit_return_type "void"
	nparams 2
	  param in name "$id" explicit_type "mixed"
	    defaultvalue "NULL"
	  param in name "$password" explicit_type "mixed"
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Conducts the authentication process. Parameters are optional."
      end

      operation 389759 "logout"
	public explicit_return_type "void"
	nparams 1
	  param in name "$clearIdentity" explicit_type "mixed"
	    defaultvalue "FALSE"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Logs out the user from the current session."
      end

      operation 389887 "isLoggedIn"
	public explicit_return_type "bool"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Is this user authenticated?"
      end

      operation 390015 "getIdentity"
	public explicit_return_type ""
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns current user identity, if any."
      end

      operation 390143 "getId"
	public explicit_return_type "mixed"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns current user ID, if any."
      end

      operation 390271 "setAuthenticator"
	public return_type class_ref 166143 // User
	nparams 1
	  param in name "$handler" type class_ref 166015 // IAuthenticator
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Sets authentication handler."
      end

      operation 390399 "getAuthenticator"
	public return_type class_ref 166015 // IAuthenticator
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns authentication handler."
      end

      operation 390527 "setExpiration"
	public return_type class_ref 166143 // User
	nparams 3
	  param in name "$time" explicit_type "mixed"
	  param in name "$whenBrowserIsClosed" explicit_type "mixed"
	    defaultvalue "TRUE"
	  param in name "$clearIdentity" explicit_type "mixed"
	    defaultvalue "FALSE"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Enables log out after inactivity."
      end

      operation 390655 "getLogoutReason"
	public explicit_return_type "int"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Why was user logged out?"
      end

      operation 390783 "getRoles"
	public explicit_return_type "array"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns a list of effective roles that a user has been granted."
      end

      operation 390911 "isInRole"
	public explicit_return_type "bool"
	nparams 1
	  param in name "$role" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Is a user in the specified effective role?"
      end

      operation 391039 "isAllowed"
	public explicit_return_type "bool"
	nparams 2
	  param in name "$resource" explicit_type "mixed"
	    defaultvalue "IAuthorizatorALL"
	  param in name "$privilege" explicit_type "mixed"
	    defaultvalue "IAuthorizatorALL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Has a user effective access to the Resource? If $resource is NULL, then the query applies to all resources."
      end

      operation 391167 "setAuthorizator"
	public return_type class_ref 166143 // User
	nparams 1
	  param in name "$handler" explicit_type ""
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Sets authorization handler."
      end

      operation 391295 "getAuthorizator"
	public explicit_return_type ""
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns current authorization handler."
      end

      operation 391423 "setNamespace"
	public explicit_return_type "void"
	nparams 1
	  param in name "$namespace" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end

      operation 391551 "getNamespace"
	public explicit_return_type "void"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end

      operation 391679 "setAuthenticationHandler"
	public explicit_return_type "void"
	nparams 1
	  param in name "$v" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end

      operation 391807 "setAuthorizationHandler"
	public explicit_return_type "void"
	nparams 1
	  param in name "$v" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end
    end

    class 166271 "IResource"
      abstract visibility package stereotype "interface"
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Represents resource, an object to which access is controlled."
      operation 391935 "getResourceId"
	public explicit_return_type "string"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Returns a string identifier of the Resource."
      end
    end

    class 166399 "IAuthorizator"
      abstract visibility package stereotype "interface"
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Authorizator checks if a given role has authorization to access a given resource."
      operation 392063 "isAllowed"
	public explicit_return_type "bool"
	nparams 3
	  param in name "$role" explicit_type "mixed"
	  param in name "$resource" explicit_type "mixed"
	  param in name "$privilege" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Performs a role-based authorization."
      end
    end

    class 166527 "AuthenticationException"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Authentication exception."
      classrelation 155135 // <generalisation>
	relation 155135 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 155135 // <generalisation>
	  b parent class_ref 128511 // Exception
      end
    end

    class 166655 "Permission"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Access control list (ACL) functionality and privileges management.

This solution is mostly based on Zend_Acl (c) Zend Technologies USA Inc. (http://www.zend.com), new BSD license"
      classrelation 155263 // <generalisation>
	relation 155263 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 155263 // <generalisation>
	  b parent class_ref 142335 // Object
      end

      attribute 240383 "_roles"
	private explicit_type "array"
	init_value "array()"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 240511 "_resources"
	private explicit_type "array"
	init_value "array()"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 240639 "_rules"
	private explicit_type "array"
	init_value "array('allResources'=>array('allRoles'=>array('allPrivileges'=>array('type'=>selfDENY,'assert'=>NULL,),'byPrivilege'=>array(),),'byRole'=>array(),),'byResource'=>array(),)"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 240767 "_queriedRole"
	private explicit_type "mixed"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 240895 "_queriedResource"
	public explicit_type "mixed"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      operation 392191 "addRole"
	public return_type class_ref 166655 // Permission
	nparams 2
	  param in name "$role" explicit_type "mixed"
	  param in name "$parents" explicit_type "mixed"
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Adds a Role to the list. The most recently added parent takes precedence over parents that were previously added."
      end

      operation 392319 "hasRole"
	public explicit_return_type "bool"
	nparams 1
	  param in name "$role" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns TRUE if the Role exists in the list."
      end

      operation 392447 "checkRole"
	private explicit_return_type "void"
	nparams 2
	  param in name "$role" explicit_type "mixed"
	  param in name "$need" explicit_type "mixed"
	    defaultvalue "TRUE"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Checks whether Role is valid and exists in the list."
      end

      operation 392575 "getRoles"
	public explicit_return_type "array"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns all Roles."
      end

      operation 392703 "getRoleParents"
	public explicit_return_type "array"
	nparams 1
	  param in name "$role" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns existing Role's parents ordered by ascending priority."
      end

      operation 392831 "roleInheritsFrom"
	public explicit_return_type "bool"
	nparams 3
	  param in name "$role" explicit_type "mixed"
	  param in name "$inherit" explicit_type "mixed"
	  param in name "$onlyParents" explicit_type "mixed"
	    defaultvalue "FALSE"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns TRUE if $role inherits from $inherit. If $onlyParents is TRUE, then $role must inherit directly from $inherit."
      end

      operation 392959 "removeRole"
	public return_type class_ref 166655 // Permission
	nparams 1
	  param in name "$role" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Removes the Role from the list."
      end

      operation 393087 "removeAllRoles"
	public return_type class_ref 166655 // Permission
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Removes all Roles from the list."
      end

      operation 393215 "addResource"
	public return_type class_ref 166655 // Permission
	nparams 2
	  param in name "$resource" explicit_type "mixed"
	  param in name "$parent" explicit_type "mixed"
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Adds a Resource having an identifier unique to the list."
      end

      operation 393343 "hasResource"
	public explicit_return_type "bool"
	nparams 1
	  param in name "$resource" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns TRUE if the Resource exists in the list."
      end

      operation 393471 "checkResource"
	private explicit_return_type "void"
	nparams 2
	  param in name "$resource" explicit_type "mixed"
	  param in name "$need" explicit_type "mixed"
	    defaultvalue "TRUE"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Checks whether Resource is valid and exists in the list."
      end

      operation 393599 "getResources"
	public explicit_return_type "array"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns all Resources."
      end

      operation 393727 "resourceInheritsFrom"
	public explicit_return_type "bool"
	nparams 3
	  param in name "$resource" explicit_type "mixed"
	  param in name "$inherit" explicit_type "mixed"
	  param in name "$onlyParent" explicit_type "mixed"
	    defaultvalue "FALSE"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns TRUE if $resource inherits from $inherit. If $onlyParents is TRUE, then $resource must inherit directly from $inherit."
      end

      operation 393855 "removeResource"
	public return_type class_ref 166655 // Permission
	nparams 1
	  param in name "$resource" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Removes a Resource and all of its children."
      end

      operation 393983 "removeAllResources"
	public return_type class_ref 166655 // Permission
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Removes all Resources."
      end

      operation 394111 "allow"
	public return_type class_ref 166655 // Permission
	nparams 4
	  param in name "$roles" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$resources" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$privileges" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$assertion" explicit_type "mixed"
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Allows one or more Roles access to [certain $privileges upon] the specified Resource(s).
If $assertion is provided, then it must return TRUE in order for rule to apply."
      end

      operation 394239 "deny"
	public return_type class_ref 166655 // Permission
	nparams 4
	  param in name "$roles" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$resources" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$privileges" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$assertion" explicit_type "mixed"
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Denies one or more Roles access to [certain $privileges upon] the specified Resource(s).
If $assertion is provided, then it must return TRUE in order for rule to apply."
      end

      operation 394367 "removeAllow"
	public return_type class_ref 166655 // Permission
	nparams 3
	  param in name "$roles" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$resources" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$privileges" explicit_type "mixed"
	    defaultvalue "selfALL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Removes \"allow\" permissions from the list in the context of the given Roles, Resources, and privileges."
      end

      operation 394495 "removeDeny"
	public return_type class_ref 166655 // Permission
	nparams 3
	  param in name "$roles" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$resources" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$privileges" explicit_type "mixed"
	    defaultvalue "selfALL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Removes \"deny\" restrictions from the list in the context of the given Roles, Resources, and privileges."
      end

      operation 394623 "setRule"
	protected return_type class_ref 166655 // Permission
	nparams 6
	  param in name "$toAdd" explicit_type "mixed"
	  param in name "$type" explicit_type "mixed"
	  param in name "$roles" explicit_type "mixed"
	  param in name "$resources" explicit_type "mixed"
	  param in name "$privileges" explicit_type "mixed"
	  param in name "$assertion" explicit_type "mixed"
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Performs operations on Access Control List rules."
      end

      operation 394751 "isAllowed"
	public explicit_return_type "bool"
	nparams 3
	  param in name "$role" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$resource" explicit_type "mixed"
	    defaultvalue "selfALL"
	  param in name "$privilege" explicit_type "mixed"
	    defaultvalue "selfALL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns TRUE if and only if the Role has access to [certain $privileges upon] the Resource.

This method checks Role inheritance using a depth-first traversal of the Role list.
The highest priority parent (i.e., the parent most recently added) is checked first, and its respective parents are checked similarly before the lower-priority parents of the Role are checked."
      end

      operation 394879 "getQueriedRole"
	public explicit_return_type "mixed"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns real currently queried Role. Use by assertion."
      end

      operation 395007 "getQueriedResource"
	public explicit_return_type "mixed"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns real currently queried Resource. Use by assertion."
      end

      operation 395135 "searchRolePrivileges"
	private explicit_return_type "mixed"
	nparams 4
	  param in name "$all" explicit_type "mixed"
	  param in name "$role" explicit_type "mixed"
	  param in name "$resource" explicit_type "mixed"
	  param in name "$privilege" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Performs a depth-first search of the Role DAG, starting at $role, in order to find a rule allowing/denying $role access to a/all $privilege upon $resource."
      end

      operation 395263 "getRuleType"
	private explicit_return_type "mixed"
	nparams 3
	  param in name "$resource" explicit_type "mixed"
	  param in name "$role" explicit_type "mixed"
	  param in name "$privilege" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns the rule type associated with the specified Resource, Role, and privilege."
      end

      operation 395391 "getRules"
	private explicit_return_type ""
	nparams 3
	  param in name "$resource" explicit_type "mixed"
	  param in name "$role" explicit_type "mixed"
	  param in name "$create" explicit_type "mixed"
	    defaultvalue "FALSE"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns the rules associated with a Resource and a Role, or NULL if no such rules exist.
If the $create parameter is TRUE, then a rule set is first created and then returned to the caller."
      end

      classrelation 155391 // <realization>
	relation 155391 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 155391 // <realization>
	  b parent class_ref 166399 // IAuthorizator
      end
    end

    class 166783 "SimpleAuthenticator"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Trivial implementation of IAuthenticator."
      classrelation 155519 // <generalisation>
	relation 155519 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 155519 // <generalisation>
	  b parent class_ref 142335 // Object
      end

      attribute 241023 "_userlist"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      operation 395519 "__construct"
	public explicit_return_type "void"
	nparams 1
	  param in name "$userlist" explicit_type "array"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end

      operation 395647 "authenticate"
	public explicit_return_type ""
	nparams 1
	  param in name "$credentials" explicit_type "array"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Performs an authentication against e.g. database.
and returns IIdentity on success or throws AuthenticationException"
      end

      classrelation 155647 // <realization>
	relation 155647 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 155647 // <realization>
	  b parent class_ref 166015 // IAuthenticator
      end
    end

    class 166911 "IIdentity"
      abstract visibility package stereotype "interface"
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Represents the user of application."
      operation 395775 "getId"
	public explicit_return_type "mixed"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Returns the ID of user."
      end

      operation 395903 "getRoles"
	public explicit_return_type "array"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Returns a list of roles that the user is a member of."
      end
    end

    class 167039 "Identity"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Default implementation of IIdentity."
      classrelation 155775 // <generalisation>
	relation 155775 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 155775 // <generalisation>
	  b parent class_ref 145151 // FreezableObject
      end

      attribute 241151 "_id"
	private explicit_type "mixed"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 241279 "_roles"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 241407 "_data"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      operation 396031 "__construct"
	public explicit_return_type "void"
	nparams 3
	  param in name "$id" explicit_type "mixed"
	  param in name "$roles" explicit_type "mixed"
	    defaultvalue "NULL"
	  param in name "$data" explicit_type "mixed"
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${)}
{
  ${body}}
"
	
	
      end

      operation 396159 "setId"
	public return_type class_ref 167039 // Identity
	nparams 1
	  param in name "$id" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Sets the ID of user."
      end

      operation 396287 "getId"
	public explicit_return_type "mixed"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns the ID of user."
      end

      operation 396415 "setRoles"
	public return_type class_ref 167039 // Identity
	nparams 1
	  param in name "$roles" explicit_type "array"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Sets a list of roles that the user is a member of."
      end

      operation 396543 "getRoles"
	public explicit_return_type "array"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns a list of roles that the user is a member of."
      end

      operation 396671 "getData"
	public explicit_return_type "array"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns a user data."
      end

      operation 396799 "__set"
	public explicit_return_type "void"
	nparams 2
	  param in name "$key" explicit_type "mixed"
	  param in name "$value" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Sets user data value."
      end

      operation 396927 "__get"
	public explicit_return_type "mixed"
	nparams 1
	  param in name "$key" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Returns user data value."
      end

      operation 397055 "__isset"
	public explicit_return_type "bool"
	nparams 1
	  param in name "$key" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Is property defined?"
      end

      operation 397183 "__unset"
	public explicit_return_type "void"
	nparams 1
	  param in name "$name" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	
	
	comment "Removes property."
      end

      classrelation 155903 // <realization>
	relation 155903 -_-|>
	  a public
	    php "${type}"
	    classrelation_ref 155903 // <realization>
	  b parent class_ref 166911 // IIdentity
      end
    end

    class 167167 "IUserStorage"
      abstract visibility package stereotype "interface"
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Interface for persistent storage for user object data."
      operation 397311 "setAuthenticated"
	public explicit_return_type "void"
	nparams 1
	  param in name "$state" explicit_type "mixed"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Sets the authenticated status of this user."
      end

      operation 397439 "isAuthenticated"
	public explicit_return_type "bool"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Is this user authenticated?"
      end

      operation 397567 "setIdentity"
	public explicit_return_type "void"
	nparams 1
	  param in name "$identity" type class_ref 166911 // IIdentity
	    defaultvalue "NULL"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Sets the user identity."
      end

      operation 397695 "getIdentity"
	public explicit_return_type ""
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Returns current user identity, if any."
      end

      operation 397823 "setExpiration"
	public explicit_return_type "void"
	nparams 2
	  param in name "$time" explicit_type "mixed"
	  param in name "$flags" explicit_type "int"
	    defaultvalue "0"
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Enables log out from the persistent storage after inactivity."
      end

      operation 397951 "getLogoutReason"
	public explicit_return_type "int"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Why was user logged out?"
      end
    end

    class 167295 "IRole"
      abstract visibility package stereotype "interface"
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${visibility}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Represents role, an object that may request access to an IResource."
      operation 398079 "getRoleId"
	public explicit_return_type "string"
	nparams 0
	
	
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)};"
	
	
	comment "Returns a string identifier of the Role."
      end
    end
  end

  package_ref 134399 // Diagnostics
end
