~x2go/x2go/x2goclient_master

« back to all changes in this revision

Viewing changes to src/LDAPSession.h

  • Committer: Mihai Moldovan
  • Date: 2015-03-04 20:15:47 UTC
  • Revision ID: git-v1:b7398771a7abd84ddcff407063edb95dd0a205d3
general: move *.cpp and *.h files to src/ and *.ts files to src/i18n/.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**************************************************************************
 
2
*   Copyright (C) 2005-2015 by Oleksandr Shneyder                         *
 
3
*   o.shneyder@phoca-gmbh.de                                              *
 
4
*                                                                         *
 
5
*   This program is free software; you can redistribute it and/or modify  *
 
6
*   it under the terms of the GNU General Public License as published by  *
 
7
*   the Free Software Foundation; either version 2 of the License, or     *
 
8
*   (at your option) any later version.                                   *
 
9
*   This program is distributed in the hope that it will be useful,       *
 
10
*   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 
11
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 
12
*   GNU General Public License for more details.                          *
 
13
*                                                                         *
 
14
*   You should have received a copy of the GNU General Public License     *
 
15
*   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 
16
***************************************************************************/
 
17
 
 
18
#ifndef LDAPSESSION_H
 
19
#define LDAPSESSION_H
 
20
#define LDAP_DEPRECATED 1
 
21
#include "x2goclientconfig.h"
 
22
 
 
23
#ifdef USELDAP
 
24
#include <ldap.h>
 
25
#include <string>
 
26
#include <list>
 
27
using namespace std;
 
28
 
 
29
struct LDAPExeption
 
30
{
 
31
        LDAPExeption ( string type,string str ) {err_type=type;err_str=str;}
 
32
        string err_type;
 
33
        string err_str;
 
34
};
 
35
 
 
36
class ByteArray
 
37
{
 
38
        public:
 
39
                ByteArray();
 
40
                ByteArray ( const ByteArray& );
 
41
                ~ByteArray();
 
42
                const char* getData() {return data;}
 
43
                string asString() {return data;}
 
44
                int length() {return size;}
 
45
                void load ( const char*,int );
 
46
                void fromStdStr ( const string& );
 
47
                void operator = ( const ByteArray& );
 
48
        private:
 
49
                void _delete();
 
50
                char* data;
 
51
                int size;
 
52
};
 
53
 
 
54
 
 
55
struct LDAPBinValue
 
56
{
 
57
        string attr;
 
58
        list<ByteArray> value;
 
59
};
 
60
 
 
61
struct LDAPStringValue
 
62
{
 
63
        string attr;
 
64
        list<string> value;
 
65
};
 
66
 
 
67
typedef  list<LDAPStringValue> LDAPStringEntry;
 
68
typedef  list<LDAPBinValue> LDAPBinEntry;
 
69
#endif
 
70
 
 
71
class LDAPSession
 
72
{
 
73
#ifdef USELDAP
 
74
        public:
 
75
                LDAPSession ( string,int,string,string, bool simple=false,
 
76
                              bool start_tls=true );
 
77
                ~LDAPSession();
 
78
                void addStringValue ( string dn,
 
79
                                      const list<LDAPStringValue>& values );
 
80
                void remove ( string );
 
81
                static list<string> getStringAttrValues (
 
82
                    const LDAPStringEntry& entry,
 
83
                    string attr );
 
84
                static list<ByteArray> getBinAttrValues (
 
85
                    const LDAPBinEntry& entry,
 
86
                    string attr );
 
87
                void modifyStringValue ( string dn,
 
88
                                         const list<LDAPStringValue>& values );
 
89
                void stringSearch ( string dn,const list<string> &attributes,
 
90
                                    string searchParam,
 
91
                                    list<LDAPStringEntry> &result );
 
92
                void binSearch ( string dn,const list<string> &attributes,
 
93
                                 string searchParam,
 
94
                                 list<LDAPBinEntry> &result );
 
95
 
 
96
        private:
 
97
                LDAP* ld;
 
98
#endif
 
99
};
 
100
 
 
101
#endif