1"""
2"""
3
4# Created on 2016.08.31
5#
6# Author: Giovanni Cannata
7#
8# Copyright 2014 - 2020 Giovanni Cannata
9#
10# This file is part of ldap3.
11#
12# ldap3 is free software: you can redistribute it and/or modify
13# it under the terms of the GNU Lesser General Public License as published
14# by the Free Software Foundation, either version 3 of the License, or
15# (at your option) any later version.
16#
17# ldap3 is distributed in the hope that it will be useful,
18# but WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20# GNU Lesser General Public License for more details.
21#
22# You should have received a copy of the GNU Lesser General Public License
23# along with ldap3 in the COPYING and COPYING.LESSER files.
24# If not, see <http://www.gnu.org/licenses/>.
25
26
27# result codes
28RESULT_SUCCESS = 0
29RESULT_OPERATIONS_ERROR = 1
30RESULT_PROTOCOL_ERROR = 2
31RESULT_TIME_LIMIT_EXCEEDED = 3
32RESULT_SIZE_LIMIT_EXCEEDED = 4
33RESULT_COMPARE_FALSE = 5
34RESULT_COMPARE_TRUE = 6
35RESULT_AUTH_METHOD_NOT_SUPPORTED = 7
36RESULT_STRONGER_AUTH_REQUIRED = 8
37RESULT_RESERVED = 9
38RESULT_REFERRAL = 10
39RESULT_ADMIN_LIMIT_EXCEEDED = 11
40RESULT_UNAVAILABLE_CRITICAL_EXTENSION = 12
41RESULT_CONFIDENTIALITY_REQUIRED = 13
42RESULT_SASL_BIND_IN_PROGRESS = 14
43RESULT_NO_SUCH_ATTRIBUTE = 16
44RESULT_UNDEFINED_ATTRIBUTE_TYPE = 17
45RESULT_INAPPROPRIATE_MATCHING = 18
46RESULT_CONSTRAINT_VIOLATION = 19
47RESULT_ATTRIBUTE_OR_VALUE_EXISTS = 20
48RESULT_INVALID_ATTRIBUTE_SYNTAX = 21
49RESULT_NO_SUCH_OBJECT = 32
50RESULT_ALIAS_PROBLEM = 33
51RESULT_INVALID_DN_SYNTAX = 34
52RESULT_ALIAS_DEREFERENCING_PROBLEM = 36
53RESULT_INAPPROPRIATE_AUTHENTICATION = 48
54RESULT_INVALID_CREDENTIALS = 49
55RESULT_INSUFFICIENT_ACCESS_RIGHTS = 50
56RESULT_BUSY = 51
57RESULT_UNAVAILABLE = 52
58RESULT_UNWILLING_TO_PERFORM = 53
59RESULT_LOOP_DETECTED = 54
60RESULT_NAMING_VIOLATION = 64
61RESULT_OBJECT_CLASS_VIOLATION = 65
62RESULT_NOT_ALLOWED_ON_NON_LEAF = 66
63RESULT_NOT_ALLOWED_ON_RDN = 67
64RESULT_ENTRY_ALREADY_EXISTS = 68
65RESULT_OBJECT_CLASS_MODS_PROHIBITED = 69
66RESULT_AFFECT_MULTIPLE_DSAS = 71
67RESULT_OTHER = 80
68RESULT_LCUP_RESOURCES_EXHAUSTED = 113
69RESULT_LCUP_SECURITY_VIOLATION = 114
70RESULT_LCUP_INVALID_DATA = 115
71RESULT_LCUP_UNSUPPORTED_SCHEME = 116
72RESULT_LCUP_RELOAD_REQUIRED = 117
73RESULT_CANCELED = 118
74RESULT_NO_SUCH_OPERATION = 119
75RESULT_TOO_LATE = 120
76RESULT_CANNOT_CANCEL = 121
77RESULT_ASSERTION_FAILED = 122
78RESULT_AUTHORIZATION_DENIED = 123
79RESULT_E_SYNC_REFRESH_REQUIRED = 4096
80
81RESULT_CODES = {
82    RESULT_SUCCESS: 'success',
83    RESULT_OPERATIONS_ERROR: 'operationsError',
84    RESULT_PROTOCOL_ERROR: 'protocolError',
85    RESULT_TIME_LIMIT_EXCEEDED: 'timeLimitExceeded',
86    RESULT_SIZE_LIMIT_EXCEEDED: 'sizeLimitExceeded',
87    RESULT_COMPARE_FALSE: 'compareFalse',
88    RESULT_COMPARE_TRUE: 'compareTrue',
89    RESULT_AUTH_METHOD_NOT_SUPPORTED: 'authMethodNotSupported',
90    RESULT_RESERVED: 'reserved',
91    RESULT_STRONGER_AUTH_REQUIRED: 'strongerAuthRequired',
92    RESULT_REFERRAL: 'referral',
93    RESULT_ADMIN_LIMIT_EXCEEDED: 'adminLimitExceeded',
94    RESULT_UNAVAILABLE_CRITICAL_EXTENSION: 'unavailableCriticalExtension',
95    RESULT_CONFIDENTIALITY_REQUIRED: 'confidentialityRequired',
96    RESULT_SASL_BIND_IN_PROGRESS: 'saslBindInProgress',
97    RESULT_NO_SUCH_ATTRIBUTE: 'noSuchAttribute',
98    RESULT_UNDEFINED_ATTRIBUTE_TYPE: 'undefinedAttributeType',
99    RESULT_INAPPROPRIATE_MATCHING: 'inappropriateMatching',
100    RESULT_CONSTRAINT_VIOLATION: 'constraintViolation',
101    RESULT_ATTRIBUTE_OR_VALUE_EXISTS: 'attributeOrValueExists',
102    RESULT_INVALID_ATTRIBUTE_SYNTAX: 'invalidAttributeSyntax',
103    RESULT_NO_SUCH_OBJECT: 'noSuchObject',
104    RESULT_ALIAS_PROBLEM: 'aliasProblem',
105    RESULT_INVALID_DN_SYNTAX: 'invalidDNSyntax',
106    RESULT_ALIAS_DEREFERENCING_PROBLEM: 'aliasDereferencingProblem',
107    RESULT_INAPPROPRIATE_AUTHENTICATION: 'inappropriateAuthentication',
108    RESULT_INVALID_CREDENTIALS: 'invalidCredentials',
109    RESULT_INSUFFICIENT_ACCESS_RIGHTS: 'insufficientAccessRights',
110    RESULT_BUSY: 'busy',
111    RESULT_UNAVAILABLE: 'unavailable',
112    RESULT_UNWILLING_TO_PERFORM: 'unwillingToPerform',
113    RESULT_LOOP_DETECTED: 'loopDetected',
114    RESULT_NAMING_VIOLATION: 'namingViolation',
115    RESULT_OBJECT_CLASS_VIOLATION: 'objectClassViolation',
116    RESULT_NOT_ALLOWED_ON_NON_LEAF: 'notAllowedOnNonLeaf',
117    RESULT_NOT_ALLOWED_ON_RDN: 'notAllowedOnRDN',
118    RESULT_ENTRY_ALREADY_EXISTS: 'entryAlreadyExists',
119    RESULT_OBJECT_CLASS_MODS_PROHIBITED: 'objectClassModsProhibited',
120    RESULT_AFFECT_MULTIPLE_DSAS: 'affectMultipleDSAs',
121    RESULT_OTHER: 'other',
122    RESULT_LCUP_RESOURCES_EXHAUSTED: 'lcupResourcesExhausted',
123    RESULT_LCUP_SECURITY_VIOLATION: 'lcupSecurityViolation',
124    RESULT_LCUP_INVALID_DATA: 'lcupInvalidData',
125    RESULT_LCUP_UNSUPPORTED_SCHEME: 'lcupUnsupportedScheme',
126    RESULT_LCUP_RELOAD_REQUIRED: 'lcupReloadRequired',
127    RESULT_CANCELED: 'canceled',
128    RESULT_NO_SUCH_OPERATION: 'noSuchOperation',
129    RESULT_TOO_LATE: 'tooLate',
130    RESULT_CANNOT_CANCEL: 'cannotCancel',
131    RESULT_ASSERTION_FAILED: 'assertionFailed',
132    RESULT_AUTHORIZATION_DENIED: 'authorizationDenied',
133    RESULT_E_SYNC_REFRESH_REQUIRED: 'e-syncRefreshRequired'
134}
135
136# do not raise exception for (in raise_exceptions connection mode)
137DO_NOT_RAISE_EXCEPTIONS = [RESULT_SUCCESS, RESULT_COMPARE_FALSE, RESULT_COMPARE_TRUE, RESULT_REFERRAL, RESULT_SASL_BIND_IN_PROGRESS, RESULT_SIZE_LIMIT_EXCEEDED, RESULT_TIME_LIMIT_EXCEEDED]
138