LCOV - code coverage report
Current view: top level - source3/passdb - pdb_compat.c (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 29 42 69.0 %
Date: 2024-04-21 15:09:00 Functions: 4 4 100.0 %

          Line data    Source code
       1             : /* 
       2             :    Unix SMB/CIFS implementation.
       3             :    struct samu access routines
       4             :    Copyright (C) Jeremy Allison                 1996-2001
       5             :    Copyright (C) Luke Kenneth Casson Leighton   1996-1998
       6             :    Copyright (C) Gerald (Jerry) Carter          2000-2001
       7             :    Copyright (C) Andrew Bartlett                2001-2002
       8             :    Copyright (C) Stefan (metze) Metzmacher      2002
       9             : 
      10             :    This program is free software; you can redistribute it and/or modify
      11             :    it under the terms of the GNU General Public License as published by
      12             :    the Free Software Foundation; either version 3 of the License, or
      13             :    (at your option) any later version.
      14             : 
      15             :    This program is distributed in the hope that it will be useful,
      16             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      17             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      18             :    GNU General Public License for more details.
      19             : 
      20             :    You should have received a copy of the GNU General Public License
      21             :    along with this program.  If not, see <http://www.gnu.org/licenses/>.
      22             : */
      23             : 
      24             : #include "includes.h"
      25             : #include "passdb.h"
      26             : #include "../libcli/security/security.h"
      27             : 
      28             : #undef DBGC_CLASS
      29             : #define DBGC_CLASS DBGC_PASSDB
      30             : 
      31       47986 : uint32_t pdb_get_user_rid (const struct samu *sampass)
      32             : {
      33           6 :         uint32_t u_rid;
      34             : 
      35       47986 :         if (sampass)
      36       47986 :                 if (sid_peek_check_rid(get_global_sam_sid(), pdb_get_user_sid(sampass),&u_rid))
      37       47986 :                         return u_rid;
      38             : 
      39           0 :         return (0);
      40             : }
      41             : 
      42       44420 : uint32_t pdb_get_group_rid (struct samu *sampass)
      43             : {
      44           6 :         uint32_t g_rid;
      45             : 
      46       44420 :         if (sampass)
      47       44420 :                 if (sid_peek_check_rid(get_global_sam_sid(), pdb_get_group_sid(sampass),&g_rid))
      48       44420 :                         return g_rid;
      49           0 :         return (0);
      50             : }
      51             : 
      52       96313 : bool pdb_set_user_sid_from_rid (struct samu *sampass, uint32_t rid, enum pdb_value_state flag)
      53             : {
      54          40 :         struct dom_sid u_sid;
      55          40 :         struct dom_sid_buf buf;
      56          40 :         const struct dom_sid *global_sam_sid;
      57             : 
      58       96313 :         if (!sampass)
      59           0 :                 return False;
      60             : 
      61       96313 :         if (!(global_sam_sid = get_global_sam_sid())) {
      62           0 :                 DEBUG(1, ("pdb_set_user_sid_from_rid: Could not read global sam sid!\n"));
      63           0 :                 return False;
      64             :         }
      65             : 
      66       96313 :         if (!sid_compose(&u_sid, global_sam_sid, rid)) {
      67           0 :                 return False;
      68             :         }
      69             : 
      70       96313 :         if (!pdb_set_user_sid(sampass, &u_sid, flag))
      71           0 :                 return False;
      72             : 
      73       96313 :         DEBUG(10, ("pdb_set_user_sid_from_rid:\n\tsetting user sid %s from rid %d\n", 
      74             :                    dom_sid_str_buf(&u_sid, &buf), rid));
      75             : 
      76       96273 :         return True;
      77             : }
      78             : 
      79           6 : bool pdb_set_group_sid_from_rid (struct samu *sampass, uint32_t grid, enum pdb_value_state flag)
      80             : {
      81           6 :         struct dom_sid g_sid;
      82           6 :         struct dom_sid_buf buf;
      83           6 :         const struct dom_sid *global_sam_sid;
      84             : 
      85           6 :         if (!sampass)
      86           0 :                 return False;
      87             : 
      88           6 :         if (!(global_sam_sid = get_global_sam_sid())) {
      89           0 :                 DEBUG(1, ("pdb_set_user_sid_from_rid: Could not read global sam sid!\n"));
      90           0 :                 return False;
      91             :         }
      92             : 
      93           6 :         if (!sid_compose(&g_sid, global_sam_sid, grid)) {
      94           0 :                 return False;
      95             :         }
      96             : 
      97           6 :         if (!pdb_set_group_sid(sampass, &g_sid, flag))
      98           0 :                 return False;
      99             : 
     100           6 :         DEBUG(10, ("pdb_set_group_sid_from_rid:\n\tsetting group sid %s from rid %d\n", 
     101             :                    dom_sid_str_buf(&g_sid, &buf), grid));
     102             : 
     103           0 :         return True;
     104             : }
     105             : 

Generated by: LCOV version 1.14