Ejemplo n.º 1
0
        public object Evaluate(params object[] operands)
        {
            csCSecurityUser user = SecuritySystem.CurrentUser as csCSecurityUser;

            if (user == null)
            {
                return(null);
            }
            return(user.Staff);
        }
Ejemplo n.º 2
0
        /// <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;
                }
            }
        }