format 75 "security" // iplan::security revision 18 modified_by 5 "jviqueira" // 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 php_dir "iplan/security" php_namespace "iplan\\security" classview 167173 "Security Diagram" //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 associated_deployment_view deploymentview_ref 167429 // Security Deployment classdiagram 160773 "Security Classes" draw_all_relations no 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 comment "La idea de las clases de seguridad es administrar usuarios, módulos (por ahora no existen como tal pero un Facade y sus incumbencias se le parece) y permisos del sistema; así como también provee el objeto central que \"pega\" toda la aplicación y provee de un contexto Hay un conjunto de entidades que son persistentes: User, Profile, Action y Facade; las otras son propias de la aplicación web. Todas las representaciones se contrajeron a su mínima expresión, es decir que no cuentan con información de metadata como \"fecha de creación\", \"fecha de modificación\", etc..., ni de históricos dado que eso se deja para una mejora posterior o su implementación en ORMObject (en forma uniforme para todo). Un usuario puede tener varios perfiles asociados, dichos perfiles tienen \"acciones\". La misma acción puede formar parte de más de un perfil, de modo que queda: User <- M:N -> Profile <- M:N -> Action La Acción: Al final se consolidó como una sola cosa que consta de un nombre \"humano\", una descripción más detallada y un código de URL que es una abreviatura a usar en la URL para dicho comando. La acción se puede llamar para que devuelva un HTML o se puede llamar como AJAX, para que devuelva un XML válido. En realidad en ambos casos lo que obtiene es un \"Renderable\" sobre el cual se llama a ->display() para HTML o ->parse() para XML. El urlCode lo autogenera el sistema de modo tal que no se repita y que desde afuera de la aplicación no se sepa de que se trata. En los templates se puede usar el alias del Facade \".method\" para indicar la acción del sistema. Nota: los urlCode NO PUEDEN modificarse, dado que el hacerlo haría necesario limpiar toda la caché de templates para que efectivamente las referencias se refresquen. Si se mira desde el punto de vista de HTML, el concepto sobre el cual se basa la acción es que cualquier cosa que se haga en la aplicación muestra una pantalla (aunque sea de error) y que algo similar sucede en el AJAX, pero en vez de devolver HTML es un XML más sencillo. Volviendo al HTML un ejemplo sería: URL-> index.php se instancia una Application y al no haber acción en forma predeterminada llama a la Action predeterminada: login Action:login->do() hace un require_once(facade->file) luego llama a facade->class:method() retorna un Renderable retorna el Renderable obtenido Context:set(Renderable::params); Dependiendo de: case AJAX: templateXML->setContent(Renderable->template); END case HTML: templateHTML->setContent(Renderable->template); END El Facade: Lo que en otros frameworks sería un módulo acá no existe, pero hay un \"Facade\" que se puede registrar indicando un archivo PHP donde se define una clase hija de AbstractManager. Dicha implementación define una función listMethods() que se emplea al crear (registrar) acciones nuevas. El listMethods() se usa porque dentro del Facade pueden existir métodos que sean de uso interno. Se puede agregar un Facade y luego las acciones de dicho Facade estarán disponibles para optarse desde la lista de acciones. La \"Application\" es responsable de cargar todos los Facade que puede ver el usuario y obtener los alias. Obviamente algunos datos iniciales deben ser cargados en la base de datos tales como el \"Admin\" y sus permisos básicos. " size A4 end class 396165 "User" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 437509 "name" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string $name el nombre real del usuario" end attribute 437637 "surname" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string $surname el apellido real del usuario" end attribute 437765 "username" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string $username el nombre de usuario escogido por o para el usuario" end attribute 437893 "password" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string $password el hash de la clave del usuario" end classrelation 506629 // relation 504837 ---|> a public php "${type}" classrelation_ref 506629 // b parent class_ref 141317 // ORMObject end classrelation 507141 // profiles () relation 505349 ---> a role_name "profiles" multiplicity "*" protected comment "@var array $profiles la lista de perfiles que tiene habilitado el usuario" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 507141 // profiles () b parent class_ref 396293 // Profile end operation 679813 "define" preserve_cpp_body_indent cpp_virtual public return_type class_ref 236293 // ORMDefinition nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Retorna un objeto de definición predeterminado al cual hay que agregarle los mapeos pertinentes. @return ORMDefinition la definición default" end end class 396293 "Profile" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 438149 "name" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" end attribute 438277 "description" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" end classrelation 541317 // users () relation 539397 ---> a role_name "users" multiplicity "*" protected comment "@var array $users la lista de usuarios del perfil" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 541317 // users () b parent class_ref 396165 // User end classrelation 506757 // relation 504965 ---|> a public php "${type}" classrelation_ref 506757 // b parent class_ref 141317 // ORMObject end classrelation 507013 // actions () relation 505221 o--> a role_name "actions" multiplicity "*" protected comment "@var array $actions la lista de acciones relacionadas al perfil " php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 507013 // actions () b parent class_ref 396421 // Action end operation 679941 "define" preserve_cpp_body_indent cpp_virtual public return_type class_ref 236293 // ORMDefinition nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Retorna un objeto de definición predeterminado al cual hay que agregarle los mapeos pertinentes. @return ORMDefinition la definición default" end end class 396421 "Action" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 438533 "description" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" end attribute 438405 "name" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" end attribute 445829 "method" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string $method el método a llamar" end attribute 438661 "urlCode" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string un código textual del comando" end attribute 465925 "hint" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string un texto para mostrar en los componentes que realicen o ejecuten esta acción" end classrelation 506885 // relation 505093 ---|> a public php "${type}" classrelation_ref 506885 // b parent class_ref 141317 // ORMObject end classrelation 513797 // relation 512005 -_-> a default php "${type}" classrelation_ref 513797 // b parent class_ref 410117 // Renderable end classrelation 514053 // facade () relation 512261 ---> a role_name "facade" multiplicity "1" protected comment "@var Facade $facade Una representación de la clase a ser invocada y su definición" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 514053 // facade () b parent class_ref 410245 // Facade end classrelation 541445 // profiles () relation 539525 ---> a role_name "profiles" multiplicity "*" protected comment "@var array $profiles la lista de perfiles que utilizan la acción" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 541445 // profiles () b parent class_ref 396293 // Profile end operation 658181 "execute" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Invoca a las funciones que realizan la acción y retorna un Renderable con el resultado. No me dejó ponerle \"do()\" porque \"do\" está reservado :S @return Renderable el objeto que renderiza la salida." end operation 680069 "define" preserve_cpp_body_indent cpp_virtual public return_type class_ref 236293 // ORMDefinition nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Retorna un objeto de definición predeterminado al cual hay que agregarle los mapeos pertinentes. @return ORMDefinition la definición default" end end class 410117 "Renderable" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 445189 "template" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" end attribute 445317 "params" protected explicit_type "array" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" end operation 664837 "__construct" preserve_cpp_body_indent public explicit_return_type "" nparams 2 param in name "templateName" explicit_type "string" param in name "arguments" explicit_type "array" preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)} { ${body}} " preserve_python_body_indent comment "@param string $templateName el nombre o alias del template definido en el Facade @param array $arguments los argumentos que serán traducidos a variables para el template @return Renderable Una clase capaz de renderizar el template." end end class 410245 "Facade" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 445445 "class" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string $class el nombre de la clase \"Facade\"" end attribute 445573 "file" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string file el archivo donde se encuentra el facade" end classrelation 514181 // relation 512389 ---|> a public php "${type}" classrelation_ref 514181 // b parent class_ref 141317 // ORMObject end attribute 452613 "alias" protected explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var string $alias un título descriptivo para el usuario" end operation 680197 "define" preserve_cpp_body_indent cpp_virtual public return_type class_ref 236293 // ORMDefinition nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Retorna un objeto de definición predeterminado al cual hay que agregarle los mapeos pertinentes. @return ORMDefinition la definición default" end end class 416901 "AbstractManager" abstract visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" classrelation 527749 // application () relation 525957 ---> a role_name "application" private comment "@var Application la instancia de la aplicación que maneja la clase" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 527749 // application () b parent class_ref 423557 // Application set_oper operation_ref 679557 // setApplication end operation 679557 "setApplication" force_body_gen public explicit_return_type "void" nparams 1 param in name "value" type class_ref 423557 // Application cpp_name_spec "set_${name}" java_name_spec "set${Name}" php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)} { $this->application = ${p0}; } " php_name_spec "set${Name}" python_name_spec "set${Name}" idl_name_spec "set_${name}" set_of_relation classrelation_ref 527749 // application () end operation 679685 "listMethods" abstract preserve_cpp_body_indent cpp_virtual public explicit_return_type "array" nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Retorna una lista de métodos que pueden ser invocados desde la aplicación. @return array Un arreglo (clave, valor) donde la clave es un string con el nombre ficticio de la operación y el valor el nombre del método que le corresponde." end end class 417029 "Context" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 486021 "application" private type class_ref 423557 // Application cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var iplan\\security\\Application la aplicación que generó el contexto" end attribute 452741 "user" private type class_ref 396165 // User cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" get_oper operation_ref 707845 // getUser comment "@var User el usuario logueado o null si no se inició sesión" end attribute 452869 "globals" private explicit_type "array" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@param array $globals un arreglo donde se almacenan las variables de sesión y otros que se quieran pasar globalmente a través de la sesión" end operation 707461 "__construct" preserve_cpp_body_indent public return_type class_ref 417029 // Context nparams 2 param in name "application" type class_ref 423557 // Application param in name "user" type class_ref 396165 // User preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)} { ${body}} " preserve_python_body_indent comment "Crea el contexto de la aplicación para el usuario indicado. @param iplan\\security\\Application $application la aplicación a la cual pertenece el contexto @param iplan\\security\\User $user el usuario de la aplicación @return iplan\\security\\Context El contexto de la aplicación." end operation 672389 "set" preserve_cpp_body_indent public explicit_return_type "bool" nparams 2 param in name "name" explicit_type "string" param in name "value" explicit_type "mixed" defaultvalue "null" preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)} { ${body}} " preserve_python_body_indent comment "Guarda un valor en la sesión activa. @param string $name el nombre de la variable de sesión cuyo valor se quiere establecer @param mixed $value el valor de dicha variable, si se deja en null se borra la variable @return boolean Un indicador del resultado de la operación. Si es False quiere decir que no se efectuó." end operation 707589 "get" preserve_cpp_body_indent public explicit_return_type "mixed" nparams 1 param in name "name" explicit_type "string" preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Recupera una variable del contexto de la aplicación. @param string $name el nombre de la variable a recuperar. @return mixed El valor que tuviese configurado dicha propiedad o una excepción en caso de que la misma no esté definida." end operation 707845 "getUser" force_body_gen const cpp_inline public return_type class_ref 396165 // User nparams 0 cpp_name_spec "get_${name}" final java_name_spec "get${Name}" php_final php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { return $this->user; } " php_name_spec "get${Name}" python_name_spec "get${Name}" idl_name_spec "get_${name}" get_of_attribute attribute_ref 452741 // user end operation 708101 "getParam" preserve_cpp_body_indent public explicit_return_type "mixed" nparams 3 param in name "name" explicit_type "string" param in name "default" explicit_type "mixed" defaultvalue "null" param in name "where" explicit_type "string" defaultvalue "'PGR'" preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)} { ${body}} " preserve_python_body_indent comment "Recupera un parámetro pasado al script. @param string $name el nombre del parámetro @param mixed $default el valor a devolver en caso que el parámetro no se encuentre @param string $where un string que indica en qué contexto buscar: P=POST, G=GET, R=REQUEST @return mixed El valor recuperado" end end class 423557 "Application" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 472709 "instance" private type class_ref 423557 // Application cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var Application variable que alberga la instancia de la aplicación" end attribute 459397 "orm" private type class_ref 167685 // ORM cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" get_oper operation_ref 679173 // getORM comment "@var ORM la instancia del manejador de objetos de la aplicación" end attribute 472581 "twig" private explicit_type "" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" comment "@var Twig_Environment la instancia del motor de templates" end classrelation 541573 // menus () relation 539653 *--> a role_name "menus" multiplicity "1..*" private comment "@var array la lista de menus de la aplicación" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 541573 // menus () b parent class_ref 430085 // Menu end classrelation 527365 // context () relation 525573 ---> a role_name "context" multiplicity "1" private comment "@var Enviroment una instancia con los valores globales registrados por los usuarios" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 527365 // context () b parent class_ref 417029 // Context end operation 693253 "__construct" preserve_cpp_body_indent private explicit_return_type "" nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}function ${name}${(}${)} { ${body}} " preserve_python_body_indent end operation 693381 "getInstance" class_operation preserve_cpp_body_indent public return_type class_ref 423557 // Application nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Devuelve la aplicación actual o, en caso de no existir, genera una nueva. @return Application La instancia de la aplicación" end operation 679173 "getORM" force_body_gen const cpp_inline public return_type class_ref 167685 // ORM nparams 0 cpp_name_spec "get_${name}" final java_name_spec "get${Name}" php_final php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { return $this->orm; } " php_name_spec "get${Name}" python_name_spec "get${Name}" idl_name_spec "get_${name}" get_of_attribute attribute_ref 459397 // orm comment "Retorna la instancia ORM de la aplicación. @return ORM El ORM de la aplicación." end operation 679301 "getParam" preserve_cpp_body_indent public explicit_return_type "mixed" nparams 3 param in name "name" explicit_type "string" param in name "default" explicit_type "mixed" defaultvalue "null" param in name "where" explicit_type "string" defaultvalue "'PGR'" preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)} { ${body}} " preserve_python_body_indent comment "Recupera un parámetro pasado al script. @param string $name el nombre del parámetro @param mixed $default el valor a devolver en caso que el parámetro no se encuentre @param string $where un string que indica en qué contexto buscar: P=POST, G=GET, R=REQUEST @return mixed El valor recuperado" end operation 707717 "getContext" preserve_cpp_body_indent public return_type class_ref 417029 // Context nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Recupera el contexto de la aplicación. @return iplan\\security\\Context El contexto de la aplicación." end operation 679045 "parseParams" preserve_cpp_body_indent public explicit_return_type "bool" nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Verifica qué se debe hacer según los parámetros de la URL. @return boolean True si todo anda bien, False sino." end operation 693509 "install" class_operation preserve_cpp_body_indent public explicit_return_type "bool" nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "ATENCIÓN: DROPEA TODAS LAS TABLAS, RELACIONES, CONTRAINTS Y GENERADORES. Método para generar los valores iniciales en las tablas: - Usuarios: Admin, Client - Profiles: Administrator, Client - Actions: Login, Logout - Facades: GeneralManager, UserManager @return boolean retorna true para el caso que todo salga bien" end classrelation 527877 // relation 526085 -_-> a default php "${type}" classrelation_ref 527877 // b parent class_ref 416901 // AbstractManager end end class 430085 "Menu" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" attribute 466053 "name" private explicit_type "string" cpp_decl "" java_decl "" php_decl " ${comment}${visibility}${const}${static}${var}${name}${value}; " python_decl "" idl_decl "" end classrelation 534405 // relation 532613 ---|> a public php "${type}" classrelation_ref 534405 // b parent class_ref 141317 // ORMObject end classrelation 534533 // action () relation 532741 o--> a role_name "action" multiplicity "1" protected comment "@var Action $action la acción que ejecuta el menú" php " ${comment}${visibility}${const}${static}${var}${name}${value}; " classrelation_ref 534533 // action () b parent class_ref 396421 // Action end end class 430213 "GeneralManager" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" classrelation 534661 // relation 532869 ---|> a public php "${type}" classrelation_ref 534661 // b parent class_ref 416901 // AbstractManager end operation 686725 "mailTo" preserve_cpp_body_indent public explicit_return_type "" nparams 6 param in name "from" explicit_type "string" param in name "to" explicit_type "array" param in name "title" explicit_type "string" param in name "body" explicit_type "string" param in name "cc" explicit_type "array" defaultvalue "null" param in name "bcc" explicit_type "array" defaultvalue "null" preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)} { ${body}} " preserve_python_body_indent comment "Envía un email a través del smtp del sistema. @param string $from la dirección de correo remitente. Puede usarse el formato \"Nombre\" (el nombre incluye las comillas) @param array $to una lista de direcciones a las cuales enviar el mensaje, cada dirección de correo destino se rigue bajo las mismas reglas de formato de $from @param string $title el título del mensaje @param string $body el cuerpo del mensaje, puede ser código html @param array $cc la lista de destinatarios con copia, puede usar formato \"Nombre\" @param array $bcc la lista de destinatarios con copia oculta, puede usar el formato anterior " end operation 714885 "html" preserve_cpp_body_indent public explicit_return_type "string" nparams 1 param in name "text" explicit_type "string" preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Convierte una cadena de texto a su equivalente en HTML pero con los caracteres especiales escapados. @páram string $text el texto a codificar return string La cadena original con los caracteres especiales codificados como entidades HTML." end end class 410373 "SecurityManager" visibility package cpp_decl "" java_decl "" php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} { ${members}} " python_2_2 python_decl "" idl_decl "" explicit_switch_type "" operation 707333 "__construct" preserve_cpp_body_indent public return_type class_ref 410373 // SecurityManager nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Constructor de la clase" end operation 707205 "listMethods" preserve_cpp_body_indent cpp_virtual public explicit_return_type "array" nparams 0 preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)} { ${body}} " preserve_python_body_indent comment "Retorna una lista de métodos que pueden ser invocados desde la aplicación. @return array Un arreglo (clave, valor) donde la clave es un string con el nombre ficticio de la operación y el valor el nombre del método que le corresponde." end operation 708229 "defaultPage" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param inout name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Muesta la home page que se ve sin iniciar sesión. @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return iplan\\security\\renderable La página en cuestión." end operation 671621 "login" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param inout name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Acción que intenta autenticar un usuario en el sistema o, en caso que se llame sin parámetros, devuelve el formulario de login. @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return Renderable Si la autenticación es concretada correctamente retorna un Renderable con la página principal de la aplicación, sino remite de nuevo al login (si hubo error con un mensaje, sino vacío)." end operation 707973 "mainPage" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param inout name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Retorna la página principal. @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return iplan\\security\\Renderable El objeto que permite mostrar la página principal." end operation 708357 "logout" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param inout name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Termina la sesión y vuelve a la defaultPage. @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return iplan\\security\\Renderable La home page que corresponde cuando no se inició sesión." end operation 671749 "addUser" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param inout name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Agrega un usuario al sistema. @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return iplan\\security\\Renderable La página de agregado de usuario o la anterior si se completaron los datos." end operation 672133 "modifyUser" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param in name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Devuelve la página de modificación de usuario o actualiza sus datos si los mismos son completados. @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return iplan\\security\\Renderable El formulario de modificación de usuario o la página anterior si se completaron los datos y la modificación se hizo con éxito." end operation 672005 "changePassword" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param in name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Cambia la clave del usuario dado. @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return Rendereable un mensaje con el resultado de la operación que luego vuelve a la página anterior." end operation 671877 "deleteUser" preserve_cpp_body_indent public return_type class_ref 410117 // Renderable nparams 1 param in name "context" type class_ref 417029 // Context preserve_java_body_indent preserve_php_body_indent php_def " ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)} { ${body}} " preserve_python_body_indent comment "Borra un usuario de la base @param iplan\\security\\Context $context el contexto donde se solicitó la acción. @return Renderable La pantalla en la cual estaba el usuario o un mensaje de error y la página anterior." end classrelation 520709 // relation 518917 ---|> a public php "${type}" classrelation_ref 520709 // b parent class_ref 416901 // AbstractManager end classrelation 527493 // relation 525701 -_-> a default php "${type}" classrelation_ref 527493 // b parent class_ref 410117 // Renderable end end end deploymentview 167429 "Security Deployment" //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 ncouples 1 key "uses" value "" artifact 304517 "Renderable" stereotype "source" php_src " " associated_classes class_ref 410117 // Renderable end end artifact 304773 "AbstractManager" stereotype "source" php_src " " associated_classes class_ref 416901 // AbstractManager end end artifact 311429 "Application" stereotype "source" php_src " " associated_classes class_ref 423557 // Application end ncouples 1 key "uses" value "use \\iplan\\orm\\ORM;" end artifact 311557 "Context" stereotype "source" php_src " " associated_classes class_ref 417029 // Context end end artifact 318085 "GeneralManager" stereotype "source" php_src " " associated_classes class_ref 430213 // GeneralManager end end artifact 324613 "SecurityManager" stereotype "source" php_src " " associated_classes class_ref 410373 // SecurityManager end end end deploymentview 173957 "Security Data Deployment" //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 ncouples 1 key "uses" value "use \\iplan\\orm\\ORMDefinition;" artifact 297861 "Action" stereotype "source" php_src " " associated_classes class_ref 396421 // Action end end artifact 304389 "Facade" stereotype "source" php_src " " associated_classes class_ref 410245 // Facade end end artifact 297733 "Profile" stereotype "source" php_src " " associated_classes class_ref 396293 // Profile end end artifact 297605 "User" stereotype "source" php_src " " associated_classes class_ref 396165 // User end end end end