Ejemplo n.º 1
0
        /// <summary>
        /// Removes specified user or group permissions from active folder.
        /// </summary>
        /// <param name="aclEntry">User or group.</param>
        public void Remove(UserFolderAcl aclEntry)
        {
            /* DeleteUserFolderAcl <virtualServerID> "<folderOwnerUser>" "<folder>" "<userOrGroup>"
                  Responses:
                    +OK                     
                    -ERR <errorText>
            */

            string id = Guid.NewGuid().ToString();

            // Call TCP DeleteUserFolderAcl
            m_pFolder.User.VirtualServer.Server.TcpClient.TcpStream.WriteLine("DeleteUserFolderAcl " + 
                m_pFolder.User.VirtualServer.VirtualServerID + " " + 
                TextUtils.QuoteString(m_pFolder.User.UserName) + " " + 
                TextUtils.QuoteString(m_pFolder.FolderFullPath) + " " + 
                TextUtils.QuoteString(aclEntry.UserOrGroup)
            );
                        
            string response = m_pFolder.User.VirtualServer.Server.ReadLine();
            if(!response.ToUpper().StartsWith("+OK")){
                throw new Exception(response);
            }

            m_pAclEntries.Remove(aclEntry);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Removes specified user or group permissions from active folder.
        /// </summary>
        /// <param name="aclEntry">User or group.</param>
        public void Remove(UserFolderAcl aclEntry)
        {
            /* DeleteUserFolderAcl <virtualServerID> "<folderOwnerUser>" "<folder>" "<userOrGroup>"
             *    Responses:
             +OK
             *      -ERR <errorText>
             */

            string id = Guid.NewGuid().ToString();

            // Call TCP DeleteUserFolderAcl
            m_pFolder.User.VirtualServer.Server.TcpClient.TcpStream.WriteLine("DeleteUserFolderAcl " +
                                                                              m_pFolder.User.VirtualServer.VirtualServerID + " " +
                                                                              TextUtils.QuoteString(m_pFolder.User.UserName) + " " +
                                                                              TextUtils.QuoteString(m_pFolder.FolderFullPath) + " " +
                                                                              TextUtils.QuoteString(aclEntry.UserOrGroup)
                                                                              );

            string response = m_pFolder.User.VirtualServer.Server.ReadLine();

            if (!response.ToUpper().StartsWith("+OK"))
            {
                throw new Exception(response);
            }

            m_pAclEntries.Remove(aclEntry);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Adds specified user or group permissions to active folder.
        /// </summary>
        /// <param name="userOrGroup">User or group.</param>
        /// <param name="permissions">Permissions to allow.</param>
        /// <returns>Returns added UserFolderAcl.</returns>
        public UserFolderAcl Add(string userOrGroup, IMAP_ACL_Flags permissions)
        {
            /* SetUserFolderAcl <virtualServerID> "<folderOwnerUser>" "<folder>" "<userOrGroup>" <flags:int32>
             *    Responses:
             +OK
             *      -ERR <errorText>
             */

            string id = Guid.NewGuid().ToString();

            // Call TCP SetUserFolderAcl
            m_pFolder.User.VirtualServer.Server.TcpClient.TcpStream.WriteLine("SetUserFolderAcl " + m_pFolder.User.VirtualServer.VirtualServerID + " " + TextUtils.QuoteString(m_pFolder.User.UserName) + " " + TextUtils.QuoteString(m_pFolder.FolderFullPath) + " " + TextUtils.QuoteString(userOrGroup) + " " + (int)permissions);

            string response = m_pFolder.User.VirtualServer.Server.ReadLine();

            if (!response.ToUpper().StartsWith("+OK"))
            {
                throw new Exception(response);
            }

            UserFolderAcl acl = new UserFolderAcl(this, m_pFolder, userOrGroup, permissions);

            m_pAclEntries.Add(acl);
            return(acl);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Adds specified user or group permissions to active folder.
        /// </summary>
        /// <param name="userOrGroup">User or group.</param>
        /// <param name="permissions">Permissions to allow.</param>
        /// <returns>Returns added UserFolderAcl.</returns>
        public UserFolderAcl Add(string userOrGroup,IMAP_ACL_Flags permissions)
        {
            /* SetUserFolderAcl <virtualServerID> "<folderOwnerUser>" "<folder>" "<userOrGroup>" <flags:int32>
                  Responses:
                    +OK                     
                    -ERR <errorText>
            */

            string id = Guid.NewGuid().ToString();

            // Call TCP SetUserFolderAcl
            m_pFolder.User.VirtualServer.Server.TcpClient.TcpStream.WriteLine("SetUserFolderAcl " + m_pFolder.User.VirtualServer.VirtualServerID + " " + TextUtils.QuoteString(m_pFolder.User.UserName) + " " + TextUtils.QuoteString(m_pFolder.FolderFullPath) + " " + TextUtils.QuoteString(userOrGroup) + " " + (int)permissions);
                        
            string response = m_pFolder.User.VirtualServer.Server.ReadLine();
            if(!response.ToUpper().StartsWith("+OK")){
                throw new Exception(response);
            }

            UserFolderAcl acl = new UserFolderAcl(this,m_pFolder,userOrGroup,permissions);
            m_pAclEntries.Add(acl);
            return acl;
        }