~ubuntu-branches/ubuntu/wily/ginkgocadx/wily-proposed

« back to all changes in this revision

Viewing changes to src/cadxcore/main/controllers/controladorpermisos.h

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Tille
  • Date: 2011-05-02 08:09:26 UTC
  • Revision ID: james.westby@ubuntu.com-20110502080926-bql5wep49c7hg91t
Tags: upstream-2.4.1.1
ImportĀ upstreamĀ versionĀ 2.4.1.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  
 
3
 *  $Id: controladorpermisos.h 3521 2011-03-16 14:54:22Z carlos $
 
4
 *  Ginkgo CADx Project
 
5
 *
 
6
 *  Copyright 2008-10 MetaEmotion S.L. All rights reserved.
 
7
 *  http://ginkgo-cadx.com
 
8
 *
 
9
 *  This file is licensed under LGPL v3 license.
 
10
 *  See License.txt for details
 
11
 *
 
12
 *
 
13
 */
 
14
#pragma once
 
15
#include <api/api.h>
 
16
#include <api/icontroladorpermisos.h>
 
17
#include <map>
 
18
#include <string>
 
19
 
 
20
namespace GNC {
 
21
        namespace GCS {
 
22
 
 
23
                class EXTAPI ControladorPermisos: public IControladorPermisos {
 
24
                public:
 
25
 
 
26
                        typedef std::map<std::string, GNC::GCS::Permisos::EstadoPermiso> TipoMapaPermisos; //se indexan por id
 
27
                        typedef TipoMapaPermisos::iterator TipoIteradorMapaPermisos;
 
28
                        typedef std::map<std::string, TipoMapaPermisos*> TipoMapaPermisosNamespace; //se indexan por namespace
 
29
                        typedef TipoMapaPermisosNamespace::iterator TipoIteradorMapaPermisosNamespace;
 
30
                
 
31
                        typedef struct TipoDefinicionPermiso
 
32
                        {
 
33
                                std::string espacioNombres;
 
34
                                std::string id;
 
35
                                std::string descripcion;
 
36
                                std::string descripcionNamespace;
 
37
 
 
38
                                bool        activoPorDefecto;
 
39
                                std::string valorPorDefecto;
 
40
 
 
41
                                bool privado;
 
42
 
 
43
                                TipoDefinicionPermiso ()
 
44
                                {
 
45
                                        this->activoPorDefecto = true;
 
46
                                        this->privado = false;
 
47
                                }
 
48
 
 
49
                                TipoDefinicionPermiso (const std::string& espacioNombres, const std::string& descripcionNamespace, const std::string& id, const std::string& descripcion, bool privado, const std::string& valorPorDefecto, bool activoPorDefecto)
 
50
                                {
 
51
                                        this->espacioNombres = espacioNombres;
 
52
                                        this->id = id;
 
53
                                        this->descripcion = descripcion;
 
54
                                        this->descripcionNamespace = descripcionNamespace;
 
55
                                        this->privado = privado;
 
56
                                        this->activoPorDefecto = activoPorDefecto;
 
57
                                        this->valorPorDefecto = valorPorDefecto;
 
58
                                }
 
59
 
 
60
                                GNC::GCS::Permisos::EstadoPermiso GenerarPermisoPorDefecto()
 
61
                                {
 
62
                                        return GNC::GCS::Permisos::EstadoPermiso(valorPorDefecto, activoPorDefecto);
 
63
                                }
 
64
 
 
65
                        } TipoDefinicionPermiso;
 
66
 
 
67
                        typedef std::map<std::string, TipoDefinicionPermiso> TipoMapaDefiniciones;
 
68
 
 
69
                        static ControladorPermisos* Instance();
 
70
                        static void FreeInstance();
 
71
 
 
72
                        const TipoMapaDefiniciones& GetMapaDefiniciones();
 
73
                        TipoMapaPermisosNamespace GetPermisosFromXML(const std::string& xmlPermisos);
 
74
 
 
75
                //region "Realizacion de la interfaz IControladorPermisos
 
76
 
 
77
                        /** Carga el fichero XML de permisos **/
 
78
                        virtual void CargarXMLPermisos(const std::string& xmlPermisos, bool privados = false);
 
79
 
 
80
                        /** Resetea el estado y valor de todos los permisos a sus valores por defecto **/
 
81
                        virtual void ResetearValoresPorDefecto();
 
82
 
 
83
                        /** Metodo recomendado para obtener permisos **/
 
84
                        virtual GNC::GCS::Permisos::EstadoPermiso* ObtenerPermiso(const std::string& stdNamespace, const std::string& idSujeto);
 
85
 
 
86
                        /** Metodo recomendado para comprobar permisos **/
 
87
                        virtual GNC::GCS::Permisos::EstadoPermiso Get(const std::string& stdNamespace, const std::string& idSujeto);
 
88
 
 
89
                        /** Anyade una nueva definicion de permiso al conjunto **/
 
90
                        virtual void AddDefinicionPermiso(const std::string& espacioNombres, const std::string& descripcionNamespace, const std::string& id, const std::string& descripcion, bool privado, const std::string& valorPorDefecto, bool activoPorDefecto);
 
91
                // endregion
 
92
 
 
93
 
 
94
                protected:
 
95
                        ControladorPermisos();
 
96
                        ~ControladorPermisos();
 
97
                        void LimpiarPermisos();
 
98
                        TipoMapaPermisos* GetMapaPermisos(const std::string& stdNamespace);
 
99
                        //bool GetPermitido(TipoMapaPermisos* pMapaPermisos, const std::string& idSujeto);
 
100
 
 
101
                protected:
 
102
                        static ControladorPermisos* m_pInstance;
 
103
 
 
104
                        TipoMapaPermisosNamespace   m_mapaPermisos;
 
105
                        TipoMapaDefiniciones            m_mapaDefiniciones;
 
106
 
 
107
                };
 
108
        }
 
109
}