summaryrefslogtreecommitdiffstats
path: root/sesman/access.c
diff options
context:
space:
mode:
Diffstat (limited to 'sesman/access.c')
-rw-r--r--sesman/access.c205
1 files changed, 102 insertions, 103 deletions
diff --git a/sesman/access.c b/sesman/access.c
index 0037de3f..00c9c381 100644
--- a/sesman/access.c
+++ b/sesman/access.c
@@ -1,21 +1,20 @@
-/*
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- xrdp: A Remote Desktop Protocol server.
- Copyright (C) Jay Sorg 2005-2010
-*/
+/**
+ * xrdp: A Remote Desktop Protocol server.
+ *
+ * Copyright (C) Jay Sorg 2004-2012
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/**
*
@@ -27,102 +26,102 @@
#include "sesman.h"
-extern struct config_sesman* g_cfg; /* in sesman.c */
+extern struct config_sesman *g_cfg; /* in sesman.c */
/******************************************************************************/
int DEFAULT_CC
-access_login_allowed(char* user)
+access_login_allowed(char *user)
{
- int gid;
- int ok;
+ int gid;
+ int ok;
+
+ if ((0 == g_strncmp(user, "root", 5)) && (0 == g_cfg->sec.allow_root))
+ {
+ log_message(LOG_LEVEL_WARNING,
+ "ROOT login attempted, but root login is disabled");
+ return 0;
+ }
+
+ if (0 == g_cfg->sec.ts_users_enable)
+ {
+ LOG_DBG("Terminal Server Users group is disabled, allowing authentication",
+ 1);
+ return 1;
+ }
+
+ if (0 != g_getuser_info(user, &gid, 0, 0, 0, 0))
+ {
+ log_message(LOG_LEVEL_ERROR, "Cannot read user info! - login denied");
+ return 0;
+ }
+
+ if (g_cfg->sec.ts_users == gid)
+ {
+ LOG_DBG("ts_users is user's primary group");
+ return 1;
+ }
+
+ if (0 != g_check_user_in_group(user, g_cfg->sec.ts_users, &ok))
+ {
+ log_message(LOG_LEVEL_ERROR, "Cannot read group info! - login denied");
+ return 0;
+ }
+
+ if (ok)
+ {
+ return 1;
+ }
+
+ log_message(LOG_LEVEL_INFO, "login denied for user %s", user);
- if ((0 == g_strncmp(user, "root", 5)) && (0 == g_cfg->sec.allow_root))
- {
- log_message(LOG_LEVEL_WARNING,
- "ROOT login attempted, but root login is disabled");
return 0;
- }
-
- if (0 == g_cfg->sec.ts_users_enable)
- {
- LOG_DBG("Terminal Server Users group is disabled, allowing authentication",
- 1);
- return 1;
- }
-
- if (0 != g_getuser_info(user, &gid, 0, 0, 0, 0))
- {
- log_message(LOG_LEVEL_ERROR, "Cannot read user info! - login denied");
- return 0;
- }
-
- if (g_cfg->sec.ts_users == gid)
- {
- LOG_DBG("ts_users is user's primary group");
- return 1;
- }
-
- if (0 != g_check_user_in_group(user, g_cfg->sec.ts_users, &ok))
- {
- log_message(LOG_LEVEL_ERROR, "Cannot read group info! - login denied");
- return 0;
- }
-
- if (ok)
- {
- return 1;
- }
-
- log_message(LOG_LEVEL_INFO, "login denied for user %s", user);
-
- return 0;
}
/******************************************************************************/
int DEFAULT_CC
-access_login_mng_allowed(char* user)
+access_login_mng_allowed(char *user)
{
- int gid;
- int ok;
+ int gid;
+ int ok;
+
+ if ((0 == g_strncmp(user, "root", 5)) && (0 == g_cfg->sec.allow_root))
+ {
+ log_message(LOG_LEVEL_WARNING,
+ "[MNG] ROOT login attempted, but root login is disabled");
+ return 0;
+ }
+
+ if (0 == g_cfg->sec.ts_admins_enable)
+ {
+ LOG_DBG("[MNG] Terminal Server Admin group is disabled,"
+ "allowing authentication", 1);
+ return 1;
+ }
+
+ if (0 != g_getuser_info(user, &gid, 0, 0, 0, 0))
+ {
+ log_message(LOG_LEVEL_ERROR, "[MNG] Cannot read user info! - login denied");
+ return 0;
+ }
+
+ if (g_cfg->sec.ts_admins == gid)
+ {
+ LOG_DBG("[MNG] ts_users is user's primary group");
+ return 1;
+ }
+
+ if (0 != g_check_user_in_group(user, g_cfg->sec.ts_admins, &ok))
+ {
+ log_message(LOG_LEVEL_ERROR, "[MNG] Cannot read group info! - login denied");
+ return 0;
+ }
+
+ if (ok)
+ {
+ return 1;
+ }
+
+ log_message(LOG_LEVEL_INFO, "[MNG] login denied for user %s", user);
- if ((0 == g_strncmp(user, "root", 5)) && (0 == g_cfg->sec.allow_root))
- {
- log_message(LOG_LEVEL_WARNING,
- "[MNG] ROOT login attempted, but root login is disabled");
- return 0;
- }
-
- if (0 == g_cfg->sec.ts_admins_enable)
- {
- LOG_DBG("[MNG] Terminal Server Admin group is disabled,"
- "allowing authentication",1);
- return 1;
- }
-
- if (0 != g_getuser_info(user, &gid, 0, 0, 0, 0))
- {
- log_message(LOG_LEVEL_ERROR, "[MNG] Cannot read user info! - login denied");
return 0;
- }
-
- if (g_cfg->sec.ts_admins == gid)
- {
- LOG_DBG("[MNG] ts_users is user's primary group");
- return 1;
- }
-
- if (0 != g_check_user_in_group(user, g_cfg->sec.ts_admins, &ok))
- {
- log_message(LOG_LEVEL_ERROR, "[MNG] Cannot read group info! - login denied");
- return 0;
- }
-
- if (ok)
- {
- return 1;
- }
-
- log_message(LOG_LEVEL_INFO, "[MNG] login denied for user %s", user);
-
- return 0;
}