Branch libreoffice-5-0-4
[LibreOffice.git] / include / osl / security.h
bloba8c37795b45165a007909ee856a50e967a1236e3
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_OSL_SECURITY_H
21 #define INCLUDED_OSL_SECURITY_H
23 #include <sal/config.h>
25 #include <rtl/ustring.h>
26 #include <sal/saldllapi.h>
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
32 typedef enum {
33 osl_Security_E_None,
34 osl_Security_E_UserUnknown,
35 osl_Security_E_WrongPassword,
36 osl_Security_E_Unknown,
37 osl_Security_E_FORCE_EQUAL_SIZE = SAL_MAX_ENUM
38 } oslSecurityError;
40 /** Process handle
41 @see osl_loginUser
42 @see osl_freeSecurityHandle
43 @see osl_executeProcess
45 typedef void* oslSecurity;
47 /** Create a security handle for the current user.
48 @return a security handle or NULL on failure.
49 @see osl_freeSecurityHandle
50 @see osl_executeProcess
51 @see osl_executeApplication
53 SAL_DLLPUBLIC oslSecurity SAL_CALL osl_getCurrentSecurity(void);
55 /** Deprecated API
56 Create a security handle for the denoted user.
57 Try to log in the user on the local system.
58 @param[in] strUserName denotes the name of the user to logg in.
59 @param[in] strPasswd the password for this user.
60 @param[out] pSecurity returns the security handle if user could be logged in.
61 @return osl_Security_E_None if user could be logged in, otherwise an error-code.
62 @see osl_freeSecurityHandle
63 @see osl_executeProcess
64 @see osl_executeApplication
66 SAL_DLLPUBLIC oslSecurityError SAL_CALL osl_loginUser(
67 rtl_uString *strUserName,
68 rtl_uString *strPasswd,
69 oslSecurity *pSecurity
72 /** Create a security handle for the denoted user.
73 Try to log in the user on the denoted file server. On success the homedir will be
74 the maped drive on this server.
75 @param[in] strUserName denotes the name of the user to logg in.
76 @param[in] strPasswd the password for this user.
77 @param[in] strFileServer denotes the file server on which the user is logged in.
78 @param[out] pSecurity returns the security handle if user could be logged in.
79 @return osl_Security_E_None if user could be logged in, otherwise an error-code.
80 @see osl_freeSecurityHandle
81 @see osl_executeProcess
82 @see osl_executeApplication
84 SAL_DLLPUBLIC oslSecurityError SAL_CALL osl_loginUserOnFileServer(
85 rtl_uString *strUserName,
86 rtl_uString *strPasswd,
87 rtl_uString *strFileServer,
88 oslSecurity *pSecurity
91 /** Query if the user who is denotes by this security has administrator rights.
92 @param[in] Security the security handle for th user.
93 @return True, if the user has adminsitrator rights, otherwise false.
95 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_isAdministrator(
96 oslSecurity Security);
98 /** Free the security handle, created by osl_loginUser or osl_getCurrentSecurity.
99 @param[in] Security the security handle.
100 @see osl_loginUser
102 SAL_DLLPUBLIC void SAL_CALL osl_freeSecurityHandle(
103 oslSecurity Security);
105 /** Get the login ident for the user of this security handle.
106 @param[in] Security the security handle.
107 @param[out] strIdent the string that receives the ident on success.
108 @return True, if the security handle is valid, otherwise False.
110 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_getUserIdent(
111 oslSecurity Security, rtl_uString **strIdent);
113 /** Get the login name for the user of this security handle.
114 @param[in] Security the security handle.
115 @param[out] strName the string that receives the user name on success.
116 @return True, if the security handle is valid, otherwise False.
118 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_getUserName(
119 oslSecurity Security, rtl_uString **strName);
121 /** Get the home directory of the user of this security handle.
122 @param[in] Security the security handle.
123 @param[out] strDirectory the string that receives the directory path on success.
124 @return True, if the security handle is valid, otherwise False.
126 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_getHomeDir(
127 oslSecurity Security, rtl_uString **strDirectory);
129 /** Get the directory for configuration data of the user of this security handle.
130 @param[in] Security the security handle.
131 @param[out] strDirectory the string that receives the directory path on success.
132 @return True, if the security handle is valid, otherwise False.
134 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_getConfigDir(
135 oslSecurity Security, rtl_uString **strDirectory);
138 /** Load Profile of the User
139 Implemented just for Windows
140 @param[in] Security previously fetch Security of the User
141 @return True if the Profile could successfully loaded, False otherwise.
144 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_loadUserProfile(
145 oslSecurity Security);
148 /** Unload a User Profile
149 Implemented just for Windows
150 @param[in] Security previously fetch Security of the User
151 @return nothing is returned!
154 SAL_DLLPUBLIC void SAL_CALL osl_unloadUserProfile(
155 oslSecurity Security);
157 #ifdef __cplusplus
159 #endif
161 #endif // INCLUDED_OSL_SECURITY_H
163 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */