Ejemplo n.º 1
0
        private void permissionCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            CheckBox chkBox = sender as CheckBox;

            if (chkBox != null)
            {
                // Find out which permission has changed
                Permission permission = Permission.None;
                foreach (Permission p in Enum.GetValues(typeof(Permission)))
                {
                    if (chkBox.Name.Contains(SecurityDemoHelper.GetPermissionString(p)))
                    {
                        permission = p;
                        break;
                    }
                }
                // Check if the permission is set
                char           domainName        = (char)cboDomain.SelectedItem;
                SecurityAccess access            = chkBox.Name.Contains("View") ? SecurityAccess.View : SecurityAccess.Modify;
                bool           permissionGranted = owner.SecurityManager.IsGranted(permission, access, domainName);

                // Update only if the granted state changed
                if (permissionGranted != chkBox.Checked)
                {
                    StandardRole role = (StandardRole)cboUser.SelectedItem;
                    // Set General or Domain permissions
                    if (permission == Permission.Designs || permission == Permission.Security || permission == Permission.Templates)
                    {
                        if (chkBox.Checked)
                        {
                            owner.SecurityManager.AddPermissions(role, permission, access);
                        }
                        else
                        {
                            owner.SecurityManager.RemovePermissions(role, permission, access);
                        }
                    }
                    else
                    {
                        if (chkBox.Checked)
                        {
                            owner.SecurityManager.AddPermissions(domainName, role, permission, access);
                        }
                        else
                        {
                            owner.SecurityManager.RemovePermissions(domainName, role, permission, access);
                        }
                    }


                    UpdateSecurityControls();
                }
            }
        }
Ejemplo n.º 2
0
        private void UpdateDomainPermissionCtrls(IEnumerable <ISecurityDomainObject> securityObjects, Type objType)
        {
            lblCurrentSecObj.Text = (objType != null) ? objType.Name : string.Empty;
            string currObjDom = string.Empty;

            if (securityObjects != null)
            {
                foreach (ISecurityDomainObject obj in securityObjects)
                {
                    if (obj == null)
                    {
                        continue;
                    }
                    if (currObjDom.IndexOf(obj.SecurityDomainName) < 0)
                    {
                        currObjDom += string.Format("{0}{1}", string.IsNullOrEmpty(currObjDom) ? "" : ", ", obj.SecurityDomainName);
                    }
                }
                lblCurrentDomain.Text = currObjDom;
            }

            string currGenPermissions = string.Empty;
            string currDomPermissions = string.Empty;

            foreach (Permission permission in Enum.GetValues(typeof(Permission)))
            {
                switch (permission)
                {
                case Permission.All:
                case Permission.None:
                    // Nothing to do
                    break;

                case Permission.Designs:
                case Permission.Security:
                case Permission.Templates:
                    // Update effective permissions
                    if (!string.IsNullOrEmpty(currGenPermissions))
                    {
                        currGenPermissions += ", ";
                    }
                    currGenPermissions += SecurityDemoHelper.GetPermissionString(permission);
                    break;

                case Permission.Connect:
                case Permission.Data:
                case Permission.Delete:
                case Permission.Insert:
                case Permission.Layout:
                case Permission.Present:
                    if (securityObjects != null)
                    {
                        if (SecurityManager.IsGranted(permission, securityObjects))
                        {
                            if (!string.IsNullOrEmpty(currDomPermissions))
                            {
                                currDomPermissions += ", ";
                            }
                            currDomPermissions += SecurityDemoHelper.GetPermissionString(permission);
                        }
                    }
                    break;

                default:
                    Debug.Fail("Unhandled Permission!");
                    break;
                }
            }
            if (string.IsNullOrEmpty(currGenPermissions))
            {
                currGenPermissions = Permission.None.ToString();
            }
            lblCurrentGenPerm.Text = currGenPermissions;
            if (string.IsNullOrEmpty(currDomPermissions))
            {
                currDomPermissions = Permission.None.ToString();
            }
            lblCurrentDomPerm.Text = currDomPermissions;
        }