public object Evaluate(params object[] operands) { csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser; if (user == null) { return(null); } return(user.Staff); }
/// <summary> /// /// </summary> /// <param name="os"></param> /// <param name="ctx"></param> /// <param name="server_name"></param> /// <param name="group"></param> static public void UpdateUserListFromActiveDirectoryGroup(IObjectSpace os, PrincipalContext ctx, String server_name, GroupPrincipal group) { IDictionary <String, csCSecurityUser> os_users = new Dictionary <String, csCSecurityUser>(); IDictionary <String, Boolean> processed_names = new Dictionary <String, Boolean>(); foreach (csCSecurityUser os_user in os.GetObjects <csCSecurityUser>(null, true)) { String name = os_user.UserName; String[] name_parts = name.Split('\\'); if (name_parts.Length == 2) { name = name_parts[1]; } os_users[name] = os_user; } foreach (UserPrincipal ad_user in group.Members) { csCSecurityUser os_user = null; if (os_users.ContainsKey(ad_user.SamAccountName)) { os_user = os_users[ad_user.SamAccountName]; } else { os_user = os.CreateObject <csCSecurityUser>(); os_user.UserName = server_name + '\\' + ad_user.SamAccountName; os_user.StaffBuhCode = ad_user.SamAccountName; } if (!(bool)ad_user.Enabled) { os_user.IsActive = false; } processed_names[ad_user.SamAccountName] = true; } foreach (String name in os_users.Keys) { if (!processed_names.ContainsKey(name)) { os_users[name].IsActive = false; } } }