/// <summary>
    /// Items changed event handler.
    /// </summary>
    protected void UniSelector_OnItemsSelected(object sender, EventArgs e)
    {
        CheckModifyPermissions();

        // Get new items from selector
        string newValues = ValidationHelper.GetString(contactSelector.Value, null);

        string[] newItems = newValues.Split(new[]
        {
            ';'
        }, StringSplitOptions.RemoveEmptyEntries);

        foreach (string item in newItems)
        {
            // Check if relation already exists
            int itemId = ValidationHelper.GetInteger(item, 0);
            ContactGroupMemberInfo cgmi = ContactGroupMemberInfo.Provider.Get(cgi.ContactGroupID, itemId, ContactGroupMemberTypeEnum.Contact);
            if (cgmi == null)
            {
                ContactGroupMemberInfo.Provider.Add(cgi.ContactGroupID, itemId,
                                                    ContactGroupMemberTypeEnum.Contact,
                                                    MemberAddedHowEnum.Manual);
            }
            else if (!cgmi.ContactGroupMemberFromManual)
            {
                cgmi.ContactGroupMemberFromManual = true;
                ContactGroupMemberInfo.Provider.Set(cgmi);
            }
        }

        gridElem.ReloadData();
        pnlUpdate.Update();
        contactSelector.Value = null;
    }
 /// <summary>
 /// Unigrid button clicked.
 /// </summary>
 protected void gridElem_OnAction(string actionName, object actionArgument)
 {
     // Perform 'remove' action
     if (actionName == "remove")
     {
         // Delete the object
         int         accountId = ValidationHelper.GetInteger(actionArgument, 0);
         AccountInfo account   = AccountInfoProvider.GetAccountInfo(accountId);
         if (account != null)
         {
             // User has no permission to modify site accounts
             if (((account.AccountSiteID > 0) && !modifySiteAccounts) || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false))
             {
                 CMSPage.RedirectToCMSDeskAccessDenied(ModuleEntry.CONTACTMANAGEMENT, "ModifyAccounts");
             }
             // User has no permission to modify global accounts
             else if ((account.AccountSiteID == 0) && !modifyGlobalAccounts || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false))
             {
                 CMSPage.RedirectToCMSDeskAccessDenied(ModuleEntry.CONTACTMANAGEMENT, "ModifyGlobalAccounts");
             }
             // User has permission
             else
             {
                 // Get the relationship object
                 ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, accountId, ContactGroupMemberTypeEnum.Account);
                 if (mi != null)
                 {
                     ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi);
                 }
             }
         }
     }
 }
    /// <summary>
    /// Attempt to remove user from group event handler.
    /// </summary>
    private void cContactGroups_OnRemoveFromGroup(object sender, EventArgs e)
    {
        int contactGroupID = ValidationHelper.GetInteger(sender, 0);

        if (contactGroupID != 0)
        {
            ContactGroupInfo removedGroup = ContactGroupInfoProvider.GetContactGroupInfo(contactGroupID);
            if (UserCanManageGroup(removedGroup) || UserCanManageContact(editedContact))
            {
                // Get the relationship object
                ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(contactGroupID, editedContact.ContactID, ContactGroupMemberTypeEnum.Contact);
                if (mi != null)
                {
                    ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi);
                }
            }
        }
    }
Beispiel #4
0
    /// <summary>
    /// Unigrid button clicked.
    /// </summary>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        // Perform 'remove' action
        if (actionName == "remove")
        {
            // Delete the object
            int         contactId = ValidationHelper.GetInteger(actionArgument, 0);
            ContactInfo contact   = ContactInfoProvider.GetContactInfo(contactId);
            if (contact != null)
            {
                // User has no permission to modify site contacts
                if (((contact.ContactSiteID > 0) && !modifySiteContacts) || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false))
                {
                    CMSPage.RedirectToCMSDeskAccessDenied("CMS.ContactManagement", "ModifyContacts");
                }
                // User has no permission to modify global contacts
                else if ((contact.ContactSiteID == 0) && !modifyGlobalContacts || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false))
                {
                    CMSPage.RedirectToCMSDeskAccessDenied("CMS.ContactManagement", "ModifyGlobalContacts");
                }
                // User has permission
                else
                {
                    // Get the relationship object
                    ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, contactId, ContactGroupMemberTypeEnum.Contact);
                    if (mi != null)
                    {
                        ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi);
                    }
                }
            }

            // Check modify permission
            if ((siteID > 0) && !(CheckPermissions("cms.contactmanagement", "ModifyContactGroups")))
            {
                return;
            }
            else if ((siteID == 0) && !(CheckPermissions("cms.contactmanagement", "ModifyGlobalContactGroups")))
            {
                return;
            }
        }
    }
    /// <summary>
    /// Unigrid button clicked.
    /// </summary>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        // Perform 'remove' action
        if (actionName == "remove")
        {
            // Delete the object
            int         accountId = ValidationHelper.GetInteger(actionArgument, 0);
            AccountInfo account   = AccountInfoProvider.GetAccountInfo(accountId);
            if (account != null)
            {
                CheckModifyPermissions();

                // Get the relationship object
                ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, accountId, ContactGroupMemberTypeEnum.Account);
                if (mi != null)
                {
                    ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi);
                }
            }
        }
    }
    /// <summary>
    /// Adds contact to group. Called when the "Add contact to group" button is pressed.
    /// Exepects the CreateContact and CreateContactGroup methods to be run first.
    /// </summary>
    private bool AddContactToGroup()
    {
        // Get dataset of contacts
        string where = "ContactLastName LIKE N'My New Contact%'";
        InfoDataSet<ContactInfo> contacts = ContactInfoProvider.GetContacts(where, null, 1, null);

        // Get the contact group
        ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if (!DataHelper.DataSourceIsEmpty(contacts) && (group != null))
        {
            // Get the contact from dataset
            ContactInfo contact = contacts.First<ContactInfo>();

            // Create the contact - contactgroup relationship
            ContactGroupMemberInfo newContactGroupMember = new ContactGroupMemberInfo()
                                                               {
                                                                   ContactGroupMemberContactGroupID = group.ContactGroupID,
                                                                   ContactGroupMemberType = ContactGroupMemberTypeEnum.Contact,
                                                                   ContactGroupMemberRelatedID = contact.ContactID,
                                                                   ContactGroupMemberFromManual = true
                                                               };

            // Save the contact group
            ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(newContactGroupMember);

            return true;
        }

        return false;
    }
    /// <summary>
    /// Adds account to group. Called when the "Add account to group" button is pressed.
    /// Expects the CreateAccount and CreateGroup methods to be run first.
    /// </summary>
    private bool AddAccountToGroup()
    {
        // Get the accounts
        InfoDataSet<AccountInfo> accounts = AccountInfoProvider.GetAccounts("AccountName = 'My New Account'", null);

        // Get the contact group
        ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if ((!DataHelper.DataSourceIsEmpty(accounts)) && (group != null))
        {
            // Get account
            AccountInfo account = accounts.First<AccountInfo>();

            // Create new account - contact group relationship
            ContactGroupMemberInfo newContactGroupMember = new ContactGroupMemberInfo()
                                                               {
                                                                   ContactGroupMemberContactGroupID = group.ContactGroupID,
                                                                   ContactGroupMemberType = ContactGroupMemberTypeEnum.Account,
                                                                   ContactGroupMemberRelatedID = account.AccountID
                                                               };

            // Save the object
            ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(newContactGroupMember);

            return true;
        }

        return false;
    }
Beispiel #8
0
    /// <summary>
    /// Adds account to group. Called when the "Add account to group" button is pressed.
    /// Expects the CreateAccount and CreateGroup methods to be run first.
    /// </summary>
    private bool AddAccountToGroup()
    {
        // Get the account
        AccountInfo account = AccountInfoProvider.GetAccountInfo("My New Account", CMSContext.CurrentSiteName);

        // Get the contact group
        ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if ((account != null) && (group != null))
        {
            // Create new account - contact group relationship
            ContactGroupMemberInfo newContactGroupMember = new ContactGroupMemberInfo()
                {
                    ContactGroupMemberContactGroupID = group.ContactGroupID,
                    ContactGroupMemberType = ContactGroupMemberTypeEnum.Account,
                    ContactGroupMemberRelatedID = account.AccountID
                };

            // Save the object
            ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(newContactGroupMember);

            return true;
        }

        return false;
    }