Esempio n. 1
0
        /// <summary>
        /// Selection has Owner or Current
        /// </summary>
        /// <returns>true if it has owner or Current</returns>
        public bool SelectionHasOwnerOrCurrent()
        {
            TreeModel tModel;

            TreeSelection tSelect   = UserTreeView.Selection;
            Array         treePaths = tSelect.GetSelectedRows(out tModel);

            // remove compiler warning
            if (tModel != null)
            {
                tModel = null;
            }

            foreach (TreePath tPath in treePaths)
            {
                TreeIter iter;

                if (UserTreeStore.GetIter(out iter, tPath))
                {
                    iFolderUser user =
                        (iFolderUser)UserTreeStore.GetValue(iter, 0);
                    if (user.UserID == ifolder.OwnerID)
                    {
                        return(true);
                    }
                    if (user.UserID == ifolder.CurrentUserID)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Esempio n. 2
0
 private bool IsCheckBoxEnabled(iFolderUser member, string accessID, string ownerID, bool flag)
 {
     if (member.IsOwner)
     {
         return(false);
     }
     if (accessID == member.ID)
     {
         return(false);
     }
     if (accessID == ownerID)
     {
         return(true);
     }
     if (IsGroupMember(member.ID, accessID) && (member.MemberRights == Rights.Admin))
     {
         if (flag)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(true);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Bind the Data to the Page.
        /// </summary>
        private void BindData()
        {
            try
            {
                ChangeEntryType changeEntryType = (ChangeEntryType)Enum.Parse(typeof(ChangeEntryType), type);

                switch (changeEntryType)
                {
                case ChangeEntryType.File:
                case ChangeEntryType.Directory:
                    // entry
                    iFolderEntry entry = web.GetEntry(ifolderID, itemID);
                    ItemName.Text = entry.Path;
                    break;

                case ChangeEntryType.Member:
                    iFolderUser member = web.GetUser(itemID);
                    ItemName.Text = member.FullName;
                    break;
                }
            }
            catch (SoapException ex)
            {
                if (!HandleException(ex))
                {
                    throw;
                }
            }

            BindHistoryData();
        }
Esempio n. 4
0
        private void ShowStatus()
        {
            string      StatusMessage  = Request.QueryString.Get("status");
            string      SecondaryAdmin = Request.QueryString.Get("secondaryadmin");
            string      GroupName      = Request.QueryString.Get("groupname");
            iFolderUser user           = web.GetUser(SecondaryAdmin);

            if (StatusMessage.Equals("SUCCESS"))
            {
                SuccessLabel.BackColor = System.Drawing.Color.LightGreen;
                SuccessLabel.Text      = op + "  :  " + "SUCCESSFUL";
                if (op == "ADD")
                {
                    string SuccessText = String.Format(GetString("GROUPRIGHTSADDSUCCESSFUL"), "<b>", user.FullName, "</b>", "<b>", GroupName, "</b>");
                    StatusLabel.Text = SuccessText;
                }
                else if (op == "EDIT")
                {
                    string SuccessText = String.Format(GetString("GROUPRIGHTSEDITSUCCESSFUL"), "<b>", user.FullName, "</b>", "<b>", GroupName, "</b>");
                    StatusLabel.Text = SuccessText;
                }
                RepeatButton.Text = GetString("REPEAT");
            }
            else
            {
                StatusLabel.Text  = String.Format(GetString("GROUPRIGHTSADDFAILURE"), "<b>", user.FullName, "</b>", "<b>", GroupName, "</b>");
                RepeatButton.Text = GetString("TRYAGAIN");
            }
        }
Esempio n. 5
0
        /// <summary>
        /// event handler that gets called when the delete user button is clicked.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        protected void OnDeleteButton_Click(object source, EventArgs e)
        {
            foreach (string userID in CheckedUsers.Keys)
            {
                // bugbug!! - need a call to delete by user ids.
                try
                {
                    iFolderUser user = web.GetUser(userID);
                    web.DeleteUser(user.UserName);
                }
                catch (Exception ex)
                {
                    string errMsg = String.Format(GetString("ERRORCANNOTDELETEUSER"), userID);
                    TopNav.ShowError(errMsg, ex);
                    return;
                }
            }

            // clear the checked members.
            CheckedUsers.Clear();
            AllUsersCheckBox.Checked = false;

            // set the action buttons.
            SetActionButtons();

            // rebind the data source with the new data.
            GetUsers();
        }
Esempio n. 6
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="domainID">Domain ID</param>
 /// <param name="type">SimiasEvent Type</param>
 public SimiasEvent(string domainID, SimiasEventType type)
 {
     this.ifUser    = null;
     this.ifolderID = null;
     this.userID    = null;
     this.domainID  = domainID;
     this.type      = type;
 }
Esempio n. 7
0
        private void AccessCellTextDataFunc(Gtk.TreeViewColumn tree_column,
                                            Gtk.CellRenderer cell, Gtk.TreeModel tree_model,
                                            Gtk.TreeIter iter)
        {
            iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0);

            ((CellRendererText)cell).Text = GetDisplayRights(user.Rights);
        }
Esempio n. 8
0
 /// <summary>
 /// constructor for memberinfo
 /// </summary>
 /// <param name="user"></param>
 /// <param name="removable"></param>
 public MemberInfo(iFolderUser user, bool removable)
 {
     this.id        = user.ID;
     this.username  = user.UserName;
     this.fullName  = user.FullName;
     this.removable = removable;
     this.created   = DateTime.Now;
 }
Esempio n. 9
0
 /// <summary>
 /// Cnostructor
 /// </summary>
 /// <param name="iFolderID">iFolder ID</param>
 /// <param name="ifldrUser">iFolder User</param>
 /// <param name="UserID">User ID</param>
 /// <param name="type">SimiasEvent Type</param>
 public SimiasEvent(string iFolderID, iFolderUser ifldrUser,
                    string UserID, SimiasEventType type)
 {
     this.ifUser    = ifldrUser;
     this.ifolderID = iFolderID;
     this.userID    = UserID;
     this.domainID  = null;
     this.type      = type;
 }
Esempio n. 10
0
        /// <summary>
        /// event handler that gets called when the provision user button is clicked.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        protected void OnProvisionButton_Click(object source, EventArgs e)
        {
            string uplist = "";
            string plist  = "";

            foreach (string userid in CheckedUsers.Keys)
            {
                int preference = GetRightsForUser(userid);
                if (preference == -1)
                {
                    preference = 0xffff;
                }
                UserGroupAdminRights rights = new UserGroupAdminRights((int)preference);
                if (!rights.ProvisioningAllowed)
                {
                    continue;
                }

                iFolderUser ProvisionedUser = web.GetUser(userid);
                if (ProvisionedUser.HomeServer == null || ProvisionedUser.HomeServer == String.Empty || ProvisionedUser.HomeServer == "")
                {
                    uplist += userid;
                    uplist += ":";
                }
                else
                {
                    plist += userid;
                    plist += ":";
                    plist += ProvisionedUser.HomeServer;
                    plist += ":";
                }
            }

            /// clear the hastable
            ServerProvisioningNames.Clear();
            if ((uplist == null || uplist == string.Empty) && (plist == null || plist == string.Empty))
            {
                string errormessage = GetString("ERRORACCESSEXCEPTION");
                TopNav.ShowError(errormessage);
                return;
            }

            /// call the next page to provision the users
            Response.Redirect(String.Format("ProvisionUsers.aspx?&userlist={0}&puserlist={1}", uplist, plist));
        }
Esempio n. 11
0
        private void UserCellPixbufDataFunc(Gtk.TreeViewColumn tree_column,
                                            Gtk.CellRenderer cell, Gtk.TreeModel tree_model,
                                            Gtk.TreeIter iter)
        {
            iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0);

            if (user.UserID == ifolder.OwnerID)
            {
                ((CellRendererPixbuf)cell).Pixbuf = OwnerUserPixbuf;
            }
            else if (user.UserID == ifolder.CurrentUserID)
            {
                ((CellRendererPixbuf)cell).Pixbuf = CurrentUserPixbuf;
            }
            else
            {
                ((CellRendererPixbuf)cell).Pixbuf = NormalUserPixbuf;
            }
        }
Esempio n. 12
0
        private void StateCellTextDataFunc(Gtk.TreeViewColumn tree_column,
                                           Gtk.CellRenderer cell, Gtk.TreeModel tree_model,
                                           Gtk.TreeIter iter)
        {
            iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0);

            if (ifolder.OwnerID == user.UserID)
            {
                ((CellRendererText)cell).Text = Util.GS("Owner");
            }
            else if (user.State != "Member")
            {
                ((CellRendererText)cell).Text = Util.GS("Invited User");
            }
            else
            {
                ((CellRendererText)cell).Text = Util.GS("iFolder User");
            }
        }
Esempio n. 13
0
        /// <summary>
        /// SetSelectedUserRights
        /// </summary>
        /// <param name="rights">Rights</param>
        private void SetSelectedUserRights(string rights)
        {
            TreeModel tModel;

            // User clicked on rights
            TreeSelection tSelect = UserTreeView.Selection;

            Array treePaths =
                tSelect.GetSelectedRows(out tModel);

            foreach (TreePath tPath in treePaths)
            {
                TreeIter iter;

                if (UserTreeStore.GetIter(out iter, tPath))
                {
                    iFolderUser user =
                        (iFolderUser)tModel.GetValue(iter, 0);

                    try
                    {
                        ifws.SetUserRights(ifolder.ID,
                                           user.UserID,
                                           rights);
                        user.Rights = rights;

                        tModel.SetValue(iter, 0, user);
                    }
                    catch (Exception e)
                    {
                        iFolderExceptionDialog ied =
                            new iFolderExceptionDialog(
                                topLevelWindow, e);
                        ied.Run();
                        ied.Hide();
                        ied.Destroy();
                        ied = null;
                    }
                }
            }
        }
Esempio n. 14
0
        private void UserCellTextDataFunc(Gtk.TreeViewColumn tree_column,
                                          Gtk.CellRenderer cell, Gtk.TreeModel tree_model,
                                          Gtk.TreeIter iter)
        {
            iFolderUser user = (iFolderUser)tree_model.GetValue(iter, 0);

            if ((user.FN != null) && (user.FN.Length > 0))
            {
                if (duplicateMembers.Contains(user.FN))
                {
                    ((CellRendererText)cell).Text = string.Format("{0} ({1})", user.FN, user.Name);
                }
                else
                {
                    ((CellRendererText)cell).Text = user.FN;
                }
            }
            else
            {
                ((CellRendererText)cell).Text = user.Name;
            }
        }
Esempio n. 15
0
        /// <summary>
        /// User Data Commmand
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        private void UserData_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            try
            {
                // add
                iFolderUser user = web.GetUser((string)e.CommandArgument);

                members.Add(user.ID, new MemberInfo(user));

                // reset pagging
                MemberPagging.Index = 0;

                BindUserData();
                BindMemberData();
            }
            catch (SoapException ex)
            {
                if (!HandleException(ex))
                {
                    throw;
                }
            }
        }
Esempio n. 16
0
        /// <summary>
        /// Event handler that gets called when the delete button is clicked.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        protected void OnDeleteClicked(object source, EventArgs e)
        {
            LinkButton   lb     = source as LinkButton;
            DataGridItem item   = lb.Parent.Parent as DataGridItem;
            string       userID = item.Cells[AccountsIDColumn].Text;
            iFolderUser  user   = web.GetUser(userID);

            bool deleted = false;

            iFolderServer[] iFolderServers = web.GetServers();
            foreach (iFolderServer server in iFolderServers)
            {
                if (server.IsMaster)
                {
                    UriBuilder remoteurl = new UriBuilder(server.PublicUrl);
                    remoteurl.Path = (new Uri(web.Url)).PathAndQuery;
                    web.Url        = remoteurl.Uri.ToString();
                    try
                    {
                        deleted = web.DeleteFromUserMoveQueue(user.ID);
                        if (deleted == true)
                        {
                            lb.Text    = GetString("DELETED");
                            lb.Enabled = false;
                        }
                    }
                    catch (Exception ex)
                    {
                        TopNav.ShowError(ex.Message);
                        web.Url = currentServerURL;
                        return;
                    }
                }
            }
            web.Url = currentServerURL;
        }
Esempio n. 17
0
        /// <summary>
        /// Do Login
        /// </summary>
        /// <param name="username">Username</param>
        /// <param name="password">Password</param>
        /// <param name="check">Perform browser checks.</param>
        private void DoLogin(string username, string password, bool check)
        {
            // client information
            log.Info(Context, "Client Information: {0}, {1}, {2}",
                     username, Context.Request.UserHostName,
                     Context.Request.UserAgent);

            // expires for new cookies
            DateTime expires = DateTime.Now + TimeSpan.FromDays(30);

            // check for cookies
            if (check)
            {
                HttpCookie testCookie = Request.Cookies["test"];
                if (testCookie == null)
                {
                    Message.Text = "LOGIN.NOCOOKIES";

                    // log access
                    log.Info(Context, "Login Failed: Browser Cookies Disabled");

                    return;
                }
            }

            // check for running scripts
            // NOTE: check the value for iChain
            if (check)
            {
                string noscript = Request.Form.Get("noscript");
                if ((noscript != null) && (noscript == "true"))
                {
                    Message.Text = "LOGIN.NOSCRIPT";

                    // log access
                    log.Info(Context, "Login Failed: Browser Scripts Disabled");

                    return;
                }
            }

            try
            {
                // connection
                iFolderWeb weblogin = new iFolderWeb();

                // update web url
                // always use the original path from the WSDL file
                string url = Environment.GetEnvironmentVariable("SimiasUrl");
                if (url == null)
                {
                    url = System.Configuration.ConfigurationSettings.AppSettings.Get("SimiasUrl");
                }

#if TESTING
                url = "http://localhost:8086";
#endif

                UriBuilder loginUrl = new UriBuilder(url);
                loginUrl.Path = (new Uri(weblogin.Url)).PathAndQuery;
                weblogin.Url  = loginUrl.Uri.ToString();

                UTF8Encoding utf8Name = new UTF8Encoding();
                byte[]       encodedCredsByteArray = utf8Name.GetBytes(username);
                string       iFolderUserBase64     = Convert.ToBase64String(encodedCredsByteArray);

                encodedCredsByteArray = utf8Name.GetBytes(password);
                string iFolderPassBase64 = Convert.ToBase64String(encodedCredsByteArray);



                // credentials
                weblogin.PreAuthenticate = true;
                weblogin.Credentials     = new NetworkCredential(iFolderUserBase64, iFolderPassBase64);

                // cookies
                weblogin.CookieContainer = new CookieContainer();
                //Initial Login
                iFolderUser loginuser = null;;
                try
                {
                    loginuser = weblogin.GetAuthenticatedUser();
                }
                catch (WebException ex)
                {
                    log.Info(Context, ex, "Login Failed");
                    string ccode = LanguageList.SelectedValue == null ? "en" : LanguageList.SelectedValue;
                    Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(ccode);
                    if (!HandleException(ex))
                    {
                        throw;
                    }
                    return;
                }
                catch (Exception e)
                {
                    //for now give a general message
                    log.Info(Context, e, "Login Failed");
                    string ccode = LanguageList.SelectedValue == null ? "en" : LanguageList.SelectedValue;
                    Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(ccode);
                    Message.Text = "LOGIN.UNAUTHORIZED";
                    return;
                }


                url = weblogin.GetHomeServerForUser(loginuser.UserName, password);

                iFolderWeb web = new iFolderWeb();

                UriBuilder webUrl = new UriBuilder(url);
                webUrl.Path = (new Uri(web.Url)).PathAndQuery;

                web.Url = webUrl.Uri.ToString();

                string multibyteserver = weblogin.GetServerStatus();

                // credentials
                web.PreAuthenticate = true;
                if (multibyteserver == "no")
                {
                    web.Credentials = new NetworkCredential(username, password);
                }
                else
                {
                    web.Credentials = new NetworkCredential(iFolderUserBase64, iFolderPassBase64);
                }

                // cookies
                web.CookieContainer = new CookieContainer();

                // user, system, and server
                iFolderUser user = null;
                try
                {
                    user = web.GetAuthenticatedUser();
                }
                catch (WebException ex)
                {
                    log.Info(Context, ex, "Login Failed");
                    if (!HandleException(ex))
                    {
                        throw;
                    }
                    return;
                }
                catch (Exception e)
                {
                    //for now give a general message
                    log.Info(Context, e, "Login Failed");
                    Message.Text = "LOGIN.UNAUTHORIZED";
                    return;
                }

                Session["Connection"] = web;
                Session["User"]       = user;
                iFolderSystem system = web.GetSystem();
                Session["System"] = system;
                iFolderServer server = web.GetHomeServer();
                Session["Server"] = server;

                encodedCredsByteArray = utf8Name.GetBytes(user.UserName);
                iFolderUserBase64     = Convert.ToBase64String(encodedCredsByteArray);

                // new username cookie for 30 days
                Response.Cookies.Remove("username");
                Response.Cookies["username"].Value   = (multibyteserver == "no") ? user.UserName : iFolderUserBase64;
                Response.Cookies["username"].Expires = expires;
                Response.Cookies["username"].Path    = "/ifolder/";
                Session["Language"] = "en";
                string code = "en";
                // ui language
                if (LanguageList.SelectedValue == null || LanguageList.SelectedValue == String.Empty)
                {
                    /// Case when single sign on happens without the login page so no language selected
                    if ((Request.UserLanguages != null) && (Request.UserLanguages.Length > 0))
                    {
                        code = Request.UserLanguages[0];
                        if (!(code.StartsWith("zh") || code.StartsWith("pt")))
                        {
                            code = code.Substring(0, 2);
                        }
                        Session["Language"] = code;
                    }
                }
                else
                {
                    /// Normal login so select from the list
                    code = LanguageList.SelectedValue;
                    Session["Language"] = LanguageList.SelectedValue;
                }

                // settings
                WebSettings settings = new WebSettings(web);
                Session["Settings"] = settings;

                Response.Cookies["language"].Value   = code;
                Response.Cookies["language"].Expires = expires;
                Response.Cookies["language"].Path    = "/ifolder/";

                // log access
                log.Info(Context, "Login Successful");

                // redirect
                FormsAuthentication.RedirectFromLoginPage(user.UserName, false);
            }
            catch (WebException ex)
            {
                // log access
                log.Info(Context, ex, "Login Failed");

                if (!HandleException(ex))
                {
                    throw;
                }
            }
            catch (Exception ex)
            {
                // log access
                log.Info(Context, ex, "Login Failed");

                throw;
            }
        }
Esempio n. 18
0
        /// <summary>
        /// Creates a DataSource containing user names from a search.
        /// </summary>
        /// <returns>An DataView object containing the ifolder users.</returns>
        private DataView CreateMemberList()
        {
            DataTable dt = new DataTable();
            DataRow   dr;

            dt.Columns.Add(new DataColumn("VisibleField", typeof(bool)));
            dt.Columns.Add(new DataColumn("IDField", typeof(string)));
            dt.Columns.Add(new DataColumn("NameField", typeof(string)));
            dt.Columns.Add(new DataColumn("FullNameField", typeof(string)));
            dt.Columns.Add(new DataColumn("ProvisionedField", typeof(string)));

            string SelectedUserList = Request.QueryString.Get("UserList");

            string [] ListOfSelectedUsers = SelectedUserList.Split(new char[] { ':' });
            for (int index = CurrentUserOffset; (index < (ListOfSelectedUsers.Length - 1) && index < (CurrentUserOffset + MemberList.PageSize)); index++)
            {
                iFolderUser user = web.GetUser(ListOfSelectedUsers[index]);
                /// Those users will be displayed who were passed from previous page
                dr    = dt.NewRow();
                dr[0] = true;
                dr[1] = user.ID;
                dr[2] = user.UserName;
                dr[3] = user.FullName;
                dr[4] = "false";

                dt.Rows.Add(dr);
            }

            string pSelectedUserList = Request.QueryString.Get("PUserList");

            string [] pListOfSelectedUsers = pSelectedUserList.Split(new char[] { ':' });
            for (int index = 0; (index < (pListOfSelectedUsers.Length - 1) && dt.Rows.Count < MemberList.PageSize); index++)
            {
                iFolderUser user = web.GetUser(pListOfSelectedUsers[index++]);
                /// Those users will be displayed who were passed from previous page
                dr    = dt.NewRow();
                dr[0] = true;
                dr[1] = user.ID;
                dr[2] = user.UserName;
                dr[3] = user.FullName;
                dr[4] = "true";

                dt.Rows.Add(dr);
            }

            // If the page size is not full, finish it with empty entries.
            for (int i = dt.Rows.Count; i < MemberList.PageSize; ++i)
            {
                dr    = dt.NewRow();
                dr[0] = false;
                dr[1] = String.Empty;
                //dr[ 2 ] = false;
                dr[2] = String.Empty;
                dr[3] = String.Empty;
                dr[4] = String.Empty;

                dt.Rows.Add(dr);
            }

            // Remember the total number of users.
            TotalUsers = (ListOfSelectedUsers.Length - 1) + (pListOfSelectedUsers.Length - 1);

            // Build the data view from the table.
            return(new DataView(dt));
        }
Esempio n. 19
0
 private ListViewItem addiFolderUserToListView(iFolderUser ifolderUser)
 {
     ListViewItem lvitem;
        lock (subscrHT)
        {
     lvitem = (ListViewItem)subscrHT[ifolderUser.ID];
     if (lvitem == null)
     {
      bool addItem = true;
      ListViewItem lvi;
      lock (userIDHT)
      {
       lvi = (ListViewItem)userIDHT[ifolderUser.UserID];
       if (lvi != null)
       {
        if (!ifolderUser.State.Equals(member))
        {
     addItem = false;
     try
     {
      connectToWebService();
      ifWebService.RemoveiFolderUser(currentiFolder.ID, ifolderUser.UserID);
     }
     catch
     {
     }
        }
        else if (!((ShareListMember)lvi.Tag).iFolderUser.State.Equals(member))
        {
     lvi.Remove();
     subscrHT.Remove(((ShareListMember)lvi.Tag).iFolderUser.ID);
     userIDHT.Remove(ifolderUser.UserID);
        }
       }
      }
      if (addItem)
      {
       ShareListMember slMember = new ShareListMember();
       slMember.iFolderUser = ifolderUser;
       string[] items = new string[3];
       items[0] = (ifolderUser.FN != null) && !ifolderUser.FN.Equals(string.Empty) ? ifolderUser.FN : ifolderUser.Name;
       items[1] = stateToString(ifolderUser.State, ifolderUser.IsOwner);
       int imageIndex = 1;
       items[2] = rightsToString(ifolderUser.Rights);
       if ((currentUser != null) && currentUser.UserID.Equals(ifolderUser.UserID))
       {
        imageIndex = 0;
       }
       else if ((ifolderUser.State != null) && !ifolderUser.State.Equals(member))
       {
        imageIndex = 2;
       }
       lvitem = new ListViewItem(items, imageIndex);
       if (ifolderUser.State.Equals(inviting))
       {
        slMember.Added = true;
       }
       else
       {
        subscrHT.Add(slMember.iFolderUser.ID, lvitem);
       }
       lvitem.Tag = slMember;
       lock (userIDHT)
       {
        bool duplicateName = false;
        foreach (ListViewItem item in userIDHT.Values)
        {
     if (lvitem.SubItems[0].Text.ToLower().Equals(item.SubItems[0].Text.ToLower()))
     {
      duplicateName = true;
      ShareListMember slm = (ShareListMember)item.Tag;
      item.SubItems[0].Text = string.Format("{0} ({1})", slm.iFolderUser.FN, slm.iFolderUser.Name);
     }
        }
        if (duplicateName)
        {
     lvitem.SubItems[0].Text = string.Format("{0} ({1})", ifolderUser.FN, ifolderUser.Name);
        }
        shareWith.Items.Add(lvitem);
        userIDHT[slMember.iFolderUser.UserID] = lvitem;
       }
      }
     }
        }
        return lvitem;
 }
Esempio n. 20
0
        /// <summary>
        /// Page_Load
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Page_Load(object sender, System.EventArgs e)
        {
            // connection
            web = Session["Connection"] as iFolderAdmin;
            currentServerURL = web.Url;

            // localization
            rm = Application["RM"] as ResourceManager;

            string userID = Session["UserID"] as String;

            if (userID != null)
            {
                sysAccessPolicy = web.GetUserSystemRights(userID, null);
            }
            else
            {
                sysAccessPolicy = 0;
            }
            uRights = new UserSystemAdminRights(sysAccessPolicy);
            if (uRights.SecondaryAdminAddAllowed == false)
            {
                Page.Response.Redirect(String.Format("Error.aspx?ex={0}&Msg={1}", GetString("ACCESSDENIED"), GetString("ACCESSDENIEDERROR")));
            }

            if (!IsPostBack)
            {
                // Initialize the localized fields.

                AggregateDiskQuotaLabel.Text = "Set the Aggregate Disk Quota Limit For Entire Group: ";
                StorageUnitLabel.Text        = GetString("MB");

                NoOfiFoldersList.Items[0].Text     = GetString("ALLOW");
                NoOfiFoldersList.Items[0].Selected = true;

                DiskQuotaRightsList.Items[0].Text     = GetString("ALLOW");
                DiskQuotaRightsList.Items[0].Selected = true;

                FileSizeRightsList.Items[0].Text     = GetString("ALLOW");
                FileSizeRightsList.Items[0].Selected = true;

                SyncIntervalRightsList.Items[0].Text     = GetString("ALLOW");
                SyncIntervalRightsList.Items[0].Selected = true;

                FileListRightsList.Items[0].Text     = GetString("ALLOW");
                FileListRightsList.Items[0].Selected = true;

                SharingRightsList.Items[0].Text     = GetString("ALLOWMODIFYSHARINGPOLICY");
                SharingRightsList.Items[0].Selected = true;

                EncryptionRightsList.Items[0].Text     = GetString("ALLOWMODIFYENCRYPTIONPOLICY");
                EncryptionRightsList.Items[0].Selected = true;

                ProvisioningRightsList.Items[0].Text     = GetString("ALLOWUSERPROVISIONING");
                ProvisioningRightsList.Items[1].Text     = GetString("ALLOWUSERENABLING");
                ProvisioningRightsList.Items[0].Selected = true;
                ProvisioningRightsList.Items[1].Selected = true;

                iFolderRightsList.Items[0].Text     = GetString("ALLOWORPHANIFOLDEROWNERSHIP");
                iFolderRightsList.Items[1].Text     = GetString("ALLOWIFOLDERENABLING");
                iFolderRightsList.Items[2].Text     = GetString("ALLOWSHAREDMEMBERRIGHTS");
                iFolderRightsList.Items[3].Text     = GetString("ALLOWDELETEIFOLDERRIGHTS");
                iFolderRightsList.Items[0].Selected = true;
                iFolderRightsList.Items[1].Selected = true;
                iFolderRightsList.Items[2].Selected = true;
                iFolderRightsList.Items[3].Selected = true;

                iFolderUser user = web.GetUser(SecondaryAdmin);
                string      LebelDisplay;
                if (GetString(op) == "Add")
                {
                    LebelDisplay = GetString("ASSIGNADMINRIGHTS");
                }
                else
                {
                    LebelDisplay = GetString(op) + " " + GetString("ADMINRIGHTSFOR");
                }
                AdminFullNameLabel.Text = LebelDisplay + user.FullName;

                SaveAdminRights.Text   = GetString("SAVE");
                CancelAdminRights.Text = GetString("CANCEL");

                InitializeGroupList();
            }
        }
Esempio n. 21
0
 public iFolderUserChangedEventArgs(iFolderUser ifUser, string iFolderID)
 {
     this.user = ifUser;
        this.ifolderID = iFolderID;
 }
Esempio n. 22
0
        /// <summary>
        /// Do Login
        /// </summary>
        /// <param name="username">Username</param>
        /// <param name="password">Password</param>
        /// <param name="check">Perform browser checks.</param>
        private void DoLogin(string username, string password, bool check)
        {
            // client information
            log.Info(Context, "Client Information: {0}, {1}, {2}",
                     username, Context.Request.UserHostName,
                     Context.Request.UserAgent);

            // expires for new cookies
            DateTime expires = DateTime.Now + TimeSpan.FromDays(30);

            // check for cookies
            if (check)
            {
                HttpCookie testCookie = Request.Cookies["test"];
                if (testCookie == null)
                {
                    MessageType.Text = rm.GetString("LOGINERROR");
                    MessageText.Text = "LOGINNOCOOKIES";

                    // log access
                    log.Info(Context, "Login Failed: Browser Cookies Disabled");

                    return;
                }
            }

            // check for running scripts
            // NOTE: check the value for iChain
            if (check)
            {
                string noscript = Request.Form.Get("noscript");
                if ((noscript != null) && (noscript == "true"))
                {
                    MessageType.Text = rm.GetString("LOGINERROR");
                    MessageText.Text = "LOGINNOSCRIPT";

                    // log access
                    log.Info(Context, "Login Failed: Browser Scripts Disabled");

                    return;
                }
            }

            try
            {
                // connection
                iFolderAdmin web = new iFolderAdmin();

                // update web url
                // always use the original path from the WSDL file
                string simiasUrl = Environment.GetEnvironmentVariable("SimiasUrl");
                if (simiasUrl == null)
                {
                    simiasUrl = System.Configuration.ConfigurationSettings.AppSettings.Get("SimiasUrl");
                }

                UriBuilder webUrl = new UriBuilder(simiasUrl);

                webUrl.Path = (new Uri(web.Url)).PathAndQuery;
                web.Url     = webUrl.Uri.ToString();

                UTF8Encoding utf8Name = new UTF8Encoding();
                byte[]       encodedCredsByteArray = utf8Name.GetBytes(username);
                string       iFolderUserBase64     = Convert.ToBase64String(encodedCredsByteArray);

                encodedCredsByteArray = utf8Name.GetBytes(password);
                string iFolderPassBase64 = Convert.ToBase64String(encodedCredsByteArray);

                // credentials
                web.PreAuthenticate = true;
                web.Credentials     = new NetworkCredential(iFolderUserBase64, iFolderPassBase64);

                // in only one path this value will persist, that is when language cookie is null
                Session["Language"] = "en";
                string code = Session["Language"] as string;
                // ui language
                if (LanguageList.SelectedValue == null || LanguageList.SelectedValue == String.Empty)
                {
                    /// Case when single sign on happens without the login page so no language selected

                    if ((Request.UserLanguages != null) && (Request.UserLanguages.Length > 0))
                    {
                        code = Request.UserLanguages[0];
                        if (!(code.StartsWith("zh") || code.StartsWith("pt")))
                        {
                            code = code.Substring(0, 2);
                        }
                        else
                        {
                            // On Single sign-on Browser sends language as zh-cn,zh-tw and pt-br .
                            // Help files are placed in a folder with names zh-CN,zh-TW and pt-BR .
                            if (code == "zh-cn")
                            {
                                code = "zh-CN";
                            }
                            else if (code == "zh-tw")
                            {
                                code = "zh-TW";
                            }
                            else if (code == "pt-br")
                            {
                                code = "pt-BR";
                            }
                        }
                        Session["Language"] = code;
                    }
                }
                else
                {
                    /// Normal login so select from the list
                    Session["Language"] = LanguageList.SelectedValue;
                    code = Session["Language"] as string;
                }
                Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(code);
                log.Info(Context, "Current culture :{0}", Thread.CurrentThread.CurrentUICulture.Name);
                // user and system
                iFolderUser user = null;
                try
                {
                    user = web.GetAuthenticatedUser();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                string multibyteserver = web.GetServerStatus();

                iFolderSystem system = web.GetSystem();
                Session["System"] = system.Name;
                iFolderServer server = web.GetHomeServer();
                Session["Version"] = server.Version;

                if (multibyteserver == "no")
                {
                    web.PreAuthenticate = true;
                    web.Credentials     = new NetworkCredential(username, password);
                }
                // cookies
                web.CookieContainer   = new CookieContainer();
                encodedCredsByteArray = utf8Name.GetBytes(user.UserName);
                iFolderUserBase64     = Convert.ToBase64String(encodedCredsByteArray);

                // new username cookie for 30 days
                Response.Cookies["username"].Value   = multibyteserver == "no" ? user.UserName : iFolderUserBase64;
                Response.Cookies["username"].Expires = expires;
                Response.Cookies["username"].Path    = "/admin/";

                // session
                Session["Connection"] = web;
                Session["Name"]       = user.FullName;
                Session["UserID"]     = user.ID;


                // add server information to the session.
                Session["HostName"]    = server.HostName;
                Session["MachineName"] = server.MachineName;
                Session["OSVersion"]   = server.OSVersion;
                Session["ClrVersion"]  = server.ClrVersion;

                // new language cookie for 30 days
                Response.Cookies["language"].Value   = code;
                Response.Cookies["language"].Expires = expires;
                Response.Cookies["language"].Path    = "/admin/";

                // log access
                log.Info(Context, "Login Successful");

                // redirect
                FormsAuthentication.RedirectFromLoginPage(user.UserName, false);
            }
            catch (WebException ex)
            {
                // log access
                log.Info(Context, ex, "Login Failed");

                if (!HandleException(ex))
                {
                    throw;
                }
            }
            catch (Exception ex)
            {
                // log access
                log.Info(Context, ex, "Login Failed");
                throw ex;
            }
        }
Esempio n. 23
0
      /// <summary>
      /// Main to start the execution
      /// </summary>
      /// <param name="args"></param>
      public static void Main(string[] args)
      {
          if (args.Length == 0)
          {
              Console.WriteLine("A command line utility to manage users in a Simias Server domain.");
              Console.WriteLine("UserCmd.exe action <options>");
              return;
          }

          ParseCommandLine(args);

          if (action == "help")
          {
              ShowUseage();
              return;
          }

          if (action == null || url == null)
          {
              Console.WriteLine("missing mandatory command line arguments");
              return;
          }

          if (adminName == null)
          {
              Console.Write("Please enter simias admin: ");
              adminName = Console.ReadLine();

              Console.Write("password: "******"/\:";

          admin.Url  = url.TrimEnd(notEndingWith.ToCharArray());
          admin.Url += "/simias10/iFolderAdmin.asmx";

          if (action == "create")
          {
              if (username == null || password == null)
              {
                  Console.WriteLine("missing mandatory command line arguments");
                  return;
              }

              // Make the web service call to register/create the user
              iFolderUser user = null;

              try
              {
                  user = admin.CreateUser(
                      username,
                      password,
                      null,
                      first,
                      last,
                      full,
                      null,
                      email);

                  if (user != null)
                  {
                      Console.WriteLine("Successful");
                  }
              }
              catch (WebException we)
              {
                  if (we.Message.LastIndexOf("401") != 0)
                  {
                      Console.WriteLine("Failed - Invalid admin credentials");
                  }
                  else
                  {
                      Console.Write("Failed - ");
                      Console.WriteLine(we.Message);
                  }
              }
              catch (Exception ex)
              {
                  Console.WriteLine("Failed creating {0}'s account", username);
              }
          }
          else
          if (action == "delete")
          {
              try
              {
                  bool status = admin.DeleteUser(username);
                  if (verbose == true)
                  {
                      Console.WriteLine("Deleting user {0}  Status {1)", username, status.ToString());
                  }
              }
              catch (WebException we)
              {
                  if (we.Message.LastIndexOf("401") != 0)
                  {
                      Console.WriteLine("Failed - Invalid admin credentials");
                  }
                  else
                  {
                      Console.Write("Failed - ");
                      Console.WriteLine(we.Message);
                  }
              }
              catch (Exception ex)
              {
                  Console.WriteLine("Failed deleting {0}'s account", username);
              }
          }
          else
          if (action == "modify")
          {
              iFolderUser user      = null;
              bool        exception = false;
              try
              {
                  user = admin.GetUser(username);
              }
              catch (WebException we)
              {
                  if (we.Message.LastIndexOf("401") != 0)
                  {
                      Console.WriteLine("Failed - Invalid admin credentials");
                  }
                  else
                  {
                      Console.Write("Failed - ");
                      Console.WriteLine(we.Message);
                  }
                  exception = true;
              }
              catch (Exception ex)
              {
                  Console.WriteLine("Failed deleting {0}'s account", username);
                  exception = true;
              }

              if (user != null)
              {
                  if (quota != null)
                  {
                      bool       changed    = false;
                      UserPolicy userPolicy = admin.GetUserPolicy(user.ID, null);
                      if (quota != null)
                      {
                          if (verbose == true)
                          {
                              Console.WriteLine("Changing quota from {0} to {1}", userPolicy.SpaceLimit, Convert.ToInt64(quota));
                          }
                          userPolicy.SpaceLimit = Convert.ToInt64(quota);
                          changed = true;
                      }

                      if (changed == true)
                      {
                          admin.SetUserPolicy(userPolicy);
                      }
                  }

                  if (email != null || first != null || last != null || full != null)
                  {
                      if (first != null)
                      {
                          user.FirstName = first;
                      }

                      if (last != null)
                      {
                          user.LastName = last;
                      }

                      if (full != null)
                      {
                          user.FullName = full;
                      }

                      if (email != null)
                      {
                          user.Email = email;
                      }

                      // Write the changes
                      admin.SetUser(user.ID, user);
                  }

                  if (password != null)
                  {
                      bool status = admin.SetPassword(username, password);
                      if (verbose == true)
                      {
                          Console.WriteLine("SetPassord for {0} - {1}", username, status.ToString());
                      }
                  }
              }
              else if (exception == false)
              {
                  Console.WriteLine("Failed - user {0} does not exist", username);
              }
          }
          else
          if (action == "list")
          {
              try
              {
                  iFolderUserSet userSet = admin.GetUsers(0, 0);
                  //admin.GetUsersBySearch( SearchProperty.UserName, SearchOperation.BeginsWith, "*", 0, 0 );

                  foreach (iFolderUser user in userSet.Items)
                  {
                      Console.Write("ID: {0}  ", user.ID);
                      Console.Write("User: {0}  ", user.UserName);
                      if (user.FullName != null && user.FullName != "")
                      {
                          Console.Write("Fullname: {0}  ", user.FullName);
                      }

                      Console.Write("Enabled: {0}  ", user.Enabled.ToString());
                      Console.WriteLine();
                  }
              }
              catch (WebException we)
              {
                  if (we.Message.LastIndexOf("401") != 0)
                  {
                      Console.WriteLine("Failed - Invalid admin credentials");
                  }
                  else
                  {
                      Console.Write("Failed - ");
                      Console.WriteLine(we.Message);
                  }
              }
              catch (Exception ex)
              {
                  Console.WriteLine("Failed getting a list of users");
              }
          }
          else
          if (action == "setpwd")
          {
              if (username == null || username == String.Empty || password == null)
              {
                  Console.WriteLine("missing mandatory command line arguments");
                  return;
              }

              try
              {
                  bool status = admin.SetPassword(username, password);
                  Console.WriteLine("SetPassord for {0} - {1}", username, status.ToString());
              }
              catch (WebException we)
              {
                  if (we.Message.LastIndexOf("401") != 0)
                  {
                      Console.WriteLine("Failed - Invalid admin credentials");
                  }
                  else
                  {
                      Console.Write("Failed - ");
                      Console.WriteLine(we.Message);
                  }
              }
              catch (Exception ex)
              {
                  Console.WriteLine("Failed setting {0}'s password", username);
              }
          }
          else
          {
              Console.WriteLine("Error: invalid action");
          }

          return;
      }
Esempio n. 24
0
        public void OnUserTreeViewButtonPressed(object obj,
                                                ButtonPressEventArgs args)
        {
            switch (args.Event.Button)
            {
            case 1:                     // first mouse button
                break;

            case 2:                     // second mouse button
                break;

            case 3:                     // third mouse button
            {
                TreePath       tPath   = null;
                TreeViewColumn tColumn = null;

                if (UserTreeView.GetPathAtPos((int)args.Event.X,
                                              (int)args.Event.Y,
                                              out tPath,
                                              out tColumn) == true)
                {
                    TreeSelection tSelect = UserTreeView.Selection;

                    if (tSelect.CountSelectedRows() > 0)
                    {
                        Menu rightsMenu = new Menu();

                        RadioMenuItem adminItem =
                            new RadioMenuItem(Util.GS("Full Control"));
                        rightsMenu.Append(adminItem);

                        RadioMenuItem rwItem =
                            new RadioMenuItem(adminItem.Group,
                                              Util.GS("Read/Write"));
                        rightsMenu.Append(rwItem);

                        RadioMenuItem roItem =
                            new RadioMenuItem(adminItem.Group,
                                              Util.GS("Read Only"));
                        rightsMenu.Append(roItem);

                        if (ifolder.CurrentUserRights != "Admin" ||
                            SelectionHasOwnerOrCurrent())
                        {
                            adminItem.Sensitive = false;
                            rwItem.Sensitive    = false;
                            roItem.Sensitive    = false;
                        }

                        // Get the Value of the actual user selected
                        TreeIter iter;

                        if (UserTreeStore.GetIter(out iter, tPath))
                        {
                            iFolderUser user = (iFolderUser)
                                               UserTreeStore.GetValue(iter, 0);
                            if (user.Rights == "ReadWrite")
                            {
                                rwItem.Active = true;
                            }
                            else if (user.Rights == "Admin")
                            {
                                adminItem.Active = true;
                            }
                            else
                            {
                                roItem.Active = true;
                            }
                        }

                        adminItem.Activated += new EventHandler(
                            OnAdminRightsMenu);
                        rwItem.Activated += new EventHandler(
                            OnRWRightsMenu);
                        roItem.Activated += new EventHandler(
                            OnRORightsMenu);

                        rightsMenu.ShowAll();

                        rightsMenu.Popup(null, null, null,
                                         3,
                                         Gtk.Global.CurrentEventTime);
                    }
                }
                break;
            }
            }
        }
Esempio n. 25
0
        /// <summary>
        /// Event handler for Access Clicked
        /// </summary>
        private void OnAccessClicked(object o, EventArgs args)
        {
            TreeModel           tModel;
            iFolderAccessDialog accDialog = null;
            string defaultRights          = "ReadWrite";
            string userName   = null;
            bool   allowOwner = false;

            TreeSelection tSelect = UserTreeView.Selection;

            // only allow the changing of the owner if the current
            // user is the owner and if the selected users are members
            if (tSelect.CountSelectedRows() == 1)
            {
                Array treePaths = tSelect.GetSelectedRows(out tModel);

                foreach (TreePath tPath in treePaths)
                {
                    TreeIter iter;

                    if (UserTreeStore.GetIter(out iter, tPath))
                    {
                        iFolderUser user =
                            (iFolderUser)tModel.GetValue(iter, 0);
                        if (user.FN != null)
                        {
                            userName = user.FN;
                        }
                        else
                        {
                            userName = user.Name;
                        }
                        defaultRights = user.Rights;

                        if ((ifolder.CurrentUserID == ifolder.OwnerID) &&
                            (user.State == "Member"))
                        {
                            allowOwner = true;
                        }
                    }
                    break;
                }
            }

            accDialog = new iFolderAccessDialog(
                topLevelWindow, userName, defaultRights, allowOwner);

            int rc = accDialog.Run();

            accDialog.Hide();
            if (rc == -5)
            {
                string newrights = accDialog.Rights;
                string oldOwnerID;

                Array treePaths = tSelect.GetSelectedRows(out tModel);

                foreach (TreePath tPath in treePaths)
                {
                    TreeIter iter;

                    if (UserTreeStore.GetIter(out iter, tPath))
                    {
                        iFolderUser user =
                            (iFolderUser)tModel.GetValue(iter, 0);

                        try
                        {
                            ifws.SetUserRights(ifolder.ID,
                                               user.UserID,
                                               newrights);
                            user.Rights = newrights;

                            // if the user selected to make this
                            // use the owner set that right now
                            if (accDialog.IsOwner)
                            {
                                if (ifws.CanOwnerBeChanged(user.UserID, ifolder.DomainID))
                                {
                                    ifws.ChangeOwner(ifolder.ID,
                                                     user.UserID,
                                                     "Admin");

                                    // update the objects here instead of
                                    // re-reading them, that's expensive!
                                    oldOwnerID      = ifolder.OwnerID;
                                    user.Rights     = "Admin";
                                    ifolder.Owner   = user.Name;
                                    ifolder.OwnerID = user.UserID;

                                    // now loop through the users, find
                                    // the current owner, and set him to
                                    // not be the owner any more
                                    TreeIter ownIter;
                                    if (UserTreeStore.GetIterFirst(out ownIter))
                                    {
                                        do
                                        {
                                            iFolderUser ownUser = (iFolderUser)
                                                                  UserTreeStore.GetValue(ownIter, 0);
                                            if (oldOwnerID == ownUser.UserID)
                                            {
                                                ownUser.Rights = "Admin";
                                                tModel.SetValue(ownIter,
                                                                0, ownUser);
                                                break;
                                            }
                                        }while(UserTreeStore.IterNext(ref ownIter));
                                    }
                                }
                                else
                                {
                                    iFolderMsgDialog messdialog = new iFolderMsgDialog(
                                        null,
                                        iFolderMsgDialog.DialogType.Error,
                                        iFolderMsgDialog.ButtonSet.Ok,
                                        Util.GS("Policy Violation"),
                                        String.Format(Util.GS("Ownership of the iFolder {0} could not be transferred to {1} as it is violating the limit of iFolders set by the Administrator."), ifolder.Name, user.Name), Util.GS(" "));
                                    messdialog.Run();
                                    messdialog.Hide();
                                    messdialog.Destroy();
                                }
                            }

                            tModel.SetValue(iter, 0, user);
                        }
                        catch (Exception e)
                        {
                            iFolderExceptionDialog ied =
                                new iFolderExceptionDialog(
                                    topLevelWindow, e);
                            ied.Run();
                            ied.Hide();
                            ied.Destroy();
                            ied = null;
                        }
                    }
                }
            }
            accDialog.Destroy();
            accDialog = null;
        }
Esempio n. 26
0
        private void OnUserSelectorResponse(object o, ResponseArgs args)
        {
            if (UserSelector != null)
            {
                switch (args.ResponseId)
                {
                case Gtk.ResponseType.Ok:
                {
                    foreach (MemberInfo member in UserSelector.SelectedUsers)
                    {
                        if (!curUsers.ContainsKey(member.UserID))
                        {
                            try
                            {
                                /*
                                 * try
                                 * {
                                 *      // Add the member to the domain.  If the member is
                                 *      // already a member of the domain, the call will do
                                 *      // nothing.  This call will facilitate the local
                                 *      // workstation not adding every possible domain user
                                 *      // to the local workstatin until they've actually
                                 *      // been added as an iFolder member.
                                 *      simws.AddMemberToDomain(ifolder.DomainID,
                                 *                                                      member.Name,
                                 *                                                      member.UserID,
                                 *                                                      null,	// FIXME: Where should I get the PublicKey?
                                 *                                                      member.GivenName,
                                 *                                                      member.FamilyName);
                                 * }
                                 * catch {}
                                 */

                                iFolderUser newUser =
                                    ifws.AddAndInviteUser(
                                        ifolder.ID,
                                        member.Name,
                                        member.GivenName,
                                        member.FamilyName,
                                        member.UserID,
                                        null,
                                        "ReadOnly");

                                TreeIter iter =
                                    UserTreeStore.AppendValues(newUser);

                                if (memberFullNames.Contains(newUser.FN))
                                {
                                    // This is a duplicate
                                    duplicateMembers[newUser.FN] = 0;
                                }
                                else
                                {
                                    memberFullNames[newUser.FN] = 0;
                                }

                                curUsers.Add(newUser.UserID, iter);
                            }
                            catch (Exception e)
                            {
                                iFolderExceptionDialog ied =
                                    new iFolderExceptionDialog(
                                        topLevelWindow, e);
                                ied.Run();
                                ied.Hide();
                                ied.Destroy();
                                ied = null;
                                break;
                            }
                        }
                    }
                    UserSelector.Hide();
                    UserSelector.Destroy();
                    UserSelector = null;
                    break;
                }

                case Gtk.ResponseType.Help:
                {
                    Util.ShowHelp("sharewith.html", topLevelWindow);
                    break;
                }

                case Gtk.ResponseType.Cancel:
                {
                    UserSelector.Hide();
                    UserSelector.Destroy();
                    UserSelector = null;
                    break;
                }
                }
            }
        }
Esempio n. 27
0
 private void refreshData()
 {
     newOwnerLvi = null;
        Cursor = Cursors.WaitCursor;
        updateDiskQuotaDisplay();
        lastSync.Text = currentiFolder.LastSyncTime;
        syncInterval.Value = (decimal)currentiFolder.SyncInterval;
        autoSync.Checked = currentiFolder.SyncInterval != Timeout.Infinite;
        switch (currentiFolder.Role)
        {
     case "Master":
      syncUnits.Visible = autoSync.Visible = syncInterval.Visible = true;
      syncNow.Enabled = false;
      syncLabel.Text = resourceManager.GetString("syncLabel.Text");
      break;
     case "Slave":
      syncUnits.Visible = autoSync.Visible = syncInterval.Visible = false;
      syncNow.Enabled = true;
      string units;
      decimal syncValue = ConvertSecondsToTimeUnit(currentiFolder.EffectiveSyncInterval, out units);
      syncLabel.Text = string.Format(resourceManager.GetString("slaveSyncInterval"), syncValue, resourceManager.GetString(units));
      break;
        }
        showConflictMessage(currentiFolder.HasConflicts);
        try
        {
     SyncSize syncSize = ifWebService.CalculateSyncSize(currentiFolder.ID);
     objectCount.Text = syncSize.SyncNodeCount.ToString();
        }
        catch
        {
     if (currentiFolder.Role.Equals("Master"))
     {
      objectCount.Text = "0";
     }
     else
     {
      objectCount.Text = resourceManager.GetString("unknown");
     }
        }
        shareWith.Items.Clear();
        shareWith.BeginUpdate();
        try
        {
     lock (subscrHT)
     {
      subscrHT.Clear();
     }
     lock (userIDHT)
     {
      userIDHT.Clear();
     }
     connectToWebService();
     iFolderUser[] ifolderUsers = ifWebService.GetiFolderUsers(currentiFolder.ID);
     foreach (iFolderUser ifolderUser in ifolderUsers)
     {
      if (ifolderUser.UserID.Equals(currentiFolder.CurrentUserID))
      {
       currentUser = ifolderUser;
      }
      ListViewItem lvitem = addiFolderUserToListView(ifolderUser);
      if (ifolderUser.UserID.Equals(currentiFolder.OwnerID))
      {
       ownerLvi = lvitem;
      }
     }
     shareWith.Items[0].Selected = true;
        }
        catch (WebException ex)
        {
     MyMessageBox mmb = new MyMessageBox(resourceManager.GetString("memberReadError"), resourceManager.GetString("errorTitle"), ex.Message, MyMessageBoxButtons.OK, MyMessageBoxIcon.Error);
     mmb.ShowDialog();
     if (ex.Status == WebExceptionStatus.ConnectFailure)
     {
      ifWebService = null;
     }
        }
        catch (Exception ex)
        {
     MyMessageBox mmb = new MyMessageBox(resourceManager.GetString("memberReadError"), resourceManager.GetString("errorTitle"), ex.Message, MyMessageBoxButtons.OK, MyMessageBoxIcon.Error);
     mmb.ShowDialog();
        }
        shareWith.EndUpdate();
        add.Enabled = currentUser != null ? currentUser.Rights.Equals("Admin") : false;
        setLimit.Visible = limitEdit.Visible = currentUser != null ? currentUser.UserID.Equals(currentiFolder.OwnerID) : false;
        limitLabel.Visible = limit.Visible = !setLimit.Visible;
        Cursor = Cursors.Default;
 }
Esempio n. 28
0
 public MemberInfo(iFolderUser user) : this(user, true)
 {
 }
Esempio n. 29
0
 private void updateListViewItem(ListViewItem lvi)
 {
     ShareListMember slMember = (ShareListMember)lvi.Tag;
        lvi.SubItems[0].Text = slMember.Name;
        lvi.SubItems[1].Text = stateToString(slMember.iFolderUser.State, slMember.iFolderUser.IsOwner);
        lvi.SubItems[2].Text = rightsToString(slMember.iFolderUser.Rights);
        if (slMember.iFolderUser.UserID.Equals(currentUser.UserID))
        {
     currentUser = slMember.iFolderUser;
     lvi.ImageIndex = 0;
     add.Enabled = currentUser.Rights.Equals("Admin");
     access.Enabled = access.Enabled ? add.Enabled : false;
     remove.Enabled = remove.Enabled ? add.Enabled : false;
     menuFullControl.Enabled = menuReadWrite.Enabled = menuReadOnly.Enabled =
      menuFullControl.Enabled ? add.Enabled : false;
     if (slMember.iFolderUser.IsOwner && !ownerLvi.Equals(lvi))
     {
      setLimit.Visible = limitEdit.Visible = true;
      limitLabel.Visible = limit.Visible = false;
      ownerLvi.SubItems[1].Text = resourceManager.GetString("user");
      ownerLvi = lvi;
     }
        }
        else
        {
     lvi.ImageIndex = slMember.iFolderUser.State.Equals(member) ? 1 : 2;
        }
 }
Esempio n. 30
0
    public SimiasEvent(string iFolderID, iFolderUser ifldrUser,
 string UserID, SimiasEventType type)
    {
        this.ifUser = ifldrUser;
           this.ifolderID = iFolderID;
           this.userID = UserID;
           this.domainID = null;
           this.type = type;
    }
Esempio n. 31
0
 private void nodeEvent(iFolderWeb ifolder, iFolderUser ifolderUser, string eventData)
 {
     try
        {
     if (ifolder != null)
     {
      currentiFolder = ifolder;
      showConflictMessage(ifolder.HasConflicts);
     }
     else if (ifolderUser != null)
     {
      ListViewItem lvi;
      lock (subscrHT)
      {
       lvi = (ListViewItem)subscrHT[ifolderUser.ID];
      }
      if (lvi != null)
      {
       ShareListMember slMember = (ShareListMember)lvi.Tag;
       slMember.iFolderUser = ifolderUser;
       lvi.Tag = slMember;
       updateListViewItem(lvi);
      }
      else if (eventData.Equals("NodeCreated"))
      {
       addiFolderUserToListView(ifolderUser);
      }
     }
     else
     {
      lock (subscrHT)
      {
       ListViewItem lvi = (ListViewItem)subscrHT[eventData];
       if (lvi != null)
       {
        lvi.Remove();
        subscrHT.Remove(eventData);
        lock (userIDHT)
        {
     ListViewItem lvitem = (ListViewItem)userIDHT[((ShareListMember)lvi.Tag).iFolderUser.UserID];
     if ((lvitem != null) && (subscrHT[((ShareListMember)lvitem.Tag).iFolderUser.ID] == null))
     {
      userIDHT.Remove(((ShareListMember)lvi.Tag).iFolderUser.UserID);
     }
        }
       }
      }
     }
        }
        catch
        {
        }
 }
Esempio n. 32
0
 public SimiasEvent(string domainID, SimiasEventType type)
 {
     this.ifUser = null;
        this.ifolderID = null;
        this.userID = null;
        this.domainID = domainID;
        this.type = type;
 }
Esempio n. 33
0
        /// <summary>
        /// Event handler that gets called when the delete admin button is clicked.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        protected void OnDeleteButton_Click(object source, EventArgs e)
        {
            switch (ActiveAdminTab)
            {
            case ListDisplayType.GroupAdmins:

                string op = "deletesecondaryadmin";
                foreach (string memberID in CheckedMembers.Keys)
                {
                    Response.Redirect(
                        String.Format(
                            "MemberSelect.aspx?op={0}&secondaryadminid={1}",
                            op, memberID));

                    // delete secondary admin can be done only for one at a time
                    //return;
                    return;
                }
                break;

            case ListDisplayType.PrimaryAdmins:
            default:
                foreach (string memberID in CheckedMembers.Keys)
                {
                    try
                    {
                        iFolderUser user = web.GetUser(memberID);
                        if (user.MemberRights == Rights.Admin)
                        {
                            web.RemoveAdministrator(memberID);
                        }
                    }
                    catch (Exception ex)
                    {
                        string name = CheckedMembers[memberID] as String;
                        TopNav.ShowError(String.Format(GetString("ERRORCANNOTREMOVEADMIN"), name), ex);
                        return;
                    }
                }
                // Clear the checked members.
                CheckedMembers.Clear();
                AllAdminsCheckBox.Checked = false;

                // Disable the action buttons.
                DeleteButton.Enabled = false;

                // Rebind the data source with the new data.
                GetiFolderAdminList();
                break;
            }

            // Clear the checked members.
            //CheckedMembers.Clear();
            //AllAdminsCheckBox.Checked = false;

            // Disable the action buttons.
            //DeleteButton.Enabled = false;

            // Rebind the data source with the new data.
            //GetiFolderAdminList();
        }
Esempio n. 34
0
 public iFolderUserChangedEventArgs(iFolderUser ifUser, string iFolderID)
 {
     this.user      = ifUser;
     this.ifolderID = iFolderID;
 }
Esempio n. 35
0
        /// <summary>
        /// Initializes the time of day values in the dropdown list.
        /// </summary>
        public void InitializeGroupList()
        {
            string Operation = op;

            //string [] GroupListStr ;//= null;
            GroupHashTable = new Hashtable();

            // Call web-service to get the groups for which this user is secondary admin

            if (Operation == "ADD")
            {
                // This will search only groups from whole domain
                iFolderUserSet userList = web.GetUsersBySearch(
                    SearchProperty.GroupOnly,
                    SearchOperation.BeginsWith,
                    "*",
                    0,
                    0);
                //string [] GroupStr = new string[ userList.Total ];
                string [] MonitoredGroupsIDs = web.GetMonitoredGroups(SecondaryAdmin);

                GroupList.Items.Add(GetString("NONE"));
                foreach (iFolderUser user in userList.Items)
                {
                    if ((MonitoredGroupsIDs == null || MonitoredGroupsIDs.Length == 0) || Array.IndexOf(MonitoredGroupsIDs, user.ID) < 0)
                    {
                        // Add only those groups which are not monitored currently by this secondary admin
                        GroupHashTable[user.FullName] = user.ID;
                        GroupList.Items.Add(user.FullName);
                    }
                }
                GroupList.SelectedIndex = 0;
            }
            else if (Operation == "EDIT")
            {
                // get all groups for which this member is an admin

                iFolderUser user = web.GetUser(GroupID);
                if (GroupID != "")
                {
                    GroupHashTable[user.FullName] = user.ID;
                    GroupList.Items.Add(user.FullName);
                    GroupList.SelectedIndex = 0;
                    GroupList.Enabled       = false;

                    long limit = web.GetAggregateDiskQuota(GroupID);
                    if (limit == -1)
                    {
                        AggregateDiskQuotaText.Text = "";
                    }
                    else
                    {
                        AggregateDiskQuotaText.Text = Utils.ConvertToMBString(limit, false, rm);
                    }
                    ShowSecondaryAdminRights(GroupID);
                }


                //AggregateDiskQuotaText.Text = "100";
                SaveAdminRights.Enabled = true;
            }
        }
Esempio n. 36
0
 private void createChangeEvent(iFolderWeb ifolder, iFolderUser ifolderUser, string eventData)
 {
     try
        {
     if (ifolder.HasConflicts)
     {
      if (preferences.NotifyCollisionEnabled)
      {
       ifolderFromNotify = ifolder;
       string message = string.Format(resourceManager.GetString("collisionMessage"), ifolder.Name);
       notifyType = NotifyType.Collision;
       shellNotifyIcon.DisplayBalloonTooltip(resourceManager.GetString("actionRequiredTitle"), message, BalloonType.Info);
      }
     }
     else if (ifolder.State.Equals("Available") && eventData.Equals("NodeCreated"))
     {
      if (preferences.NotifyShareEnabled)
      {
       ifolderFromNotify = ifolder;
       string title = string.Format(resourceManager.GetString("subscriptionTitle"), ifolder.Name);
       string message = string.Format(resourceManager.GetString("subscriptionMessage"), ifolder.Owner);
       notifyType = NotifyType.Subscription;
       shellNotifyIcon.DisplayBalloonTooltip(title, message, BalloonType.Info);
      }
     }
     else if (ifolderUser != null)
     {
      if (preferences.NotifyJoinEnabled)
      {
       ifolderFromNotify = ifolder;
       string message = string.Format(resourceManager.GetString("newMemberMessage"),
        (ifolderUser.FN != null) && !ifolderUser.FN.Equals(string.Empty) ? ifolderUser.FN : ifolderUser.Name,
        ifolder.Name);
       notifyType = NotifyType.NewMember;
       shellNotifyIcon.DisplayBalloonTooltip(resourceManager.GetString("newMemberTitle"), message, BalloonType.Info);
      }
     }
        }
        catch {}
 }
Esempio n. 37
0
        /// <summary>
        /// Page Load
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Page_Load(object sender, System.EventArgs e)
        {
            // localization
            rm = (ResourceManager)Application["RM"];

            // strings
            ErrorMessage.Text = GetString("ERROR.MESSAGE");
            LoginButton.Text  = GetString("LOGIN");

            // details
            StringWriter details = new StringWriter();

            // message from query string
            string message = Request.QueryString.Get("Exception");

            if ((message != null) && (message.Length != 0))
            {
                details.WriteLine("Message: {0}", message);
                details.WriteLine();
            }

            // session additions
            if (Session != null)
            {
                // exception
                Exception ex = (Exception)Session["Exception"];
                if (ex != null)
                {
                    details.WriteLine("Exception Message: {0}", ex.Message);
                    details.WriteLine("Exception Type: {0}", ex.GetType());
                    details.WriteLine("Exception Site: {0}", ex.TargetSite);
                    details.WriteLine("Exception Source: {0}", ex.Source);
                    details.WriteLine();
                    details.WriteLine("Exception Stack:");
                    details.WriteLine();
                    details.WriteLine(ex);
                    details.WriteLine();
                }

                // user
                iFolderUser user = (iFolderUser)Session["User"];
                if (user != null)
                {
                    details.WriteLine("Username: {0}", user.UserName);
                    details.WriteLine("User Full Name: {0}", user.FullName);
                    details.WriteLine();
                }

                // system
                iFolderSystem system = (iFolderSystem)Session["System"];
                if (system != null)
                {
                    details.WriteLine("System iFolder Name: {0}", system.Name);
                    details.WriteLine("System iFolder Version: {0}", system.Version);
                    details.WriteLine();
                }

                // server
                iFolderServer server = (iFolderServer)Session["Server"];
                if (server != null)
                {
                    details.WriteLine("Server iFolder Version: {0}", server.Version);
                    details.WriteLine("Server CLR Version: {0}", server.ClrVersion);
                    details.WriteLine("Server Host: {0}", server.HostName);
                    details.WriteLine("Server Machine: {0}", server.MachineName);
                    details.WriteLine("Server Operating System: {0}", server.OSVersion);
                    details.WriteLine("Server Username: {0}", server.UserName);
                    details.WriteLine();
                }
            }

            // details
            ErrorDetails.Text = details.ToString();
        }
Esempio n. 38
0
        /// <summary>
        /// Event Handler for Remove User
        /// </summary>
        private void OnRemoveUser(object o, EventArgs args)
        {
            TreeModel tModel;

            TreeSelection tSelect = UserTreeView.Selection;

            if (tSelect.CountSelectedRows() > 0)
            {
                iFolderMsgDialog dialog = new iFolderMsgDialog(
                    topLevelWindow,
                    iFolderMsgDialog.DialogType.Question,
                    iFolderMsgDialog.ButtonSet.YesNo,
                    "",
                    Util.GS("Remove the selected users?"),
                    Util.GS("This will remove the selected users from this iFolder.  They will no longer be able to synchronize files with this iFolder."));
                int rc = dialog.Run();
                dialog.Hide();
                dialog.Destroy();
                if (rc == -8)
                {
                    Queue iterQueue;
                    Array treePaths = tSelect.GetSelectedRows(out tModel);

                    iterQueue = new Queue();

                    foreach (TreePath tPath in treePaths)
                    {
                        TreeIter iter;

                        if (UserTreeStore.GetIter(out iter, tPath))
                        {
                            iterQueue.Enqueue(iter);
                        }
                    }
                    // Now that we have all of the TreeIters, loop and
                    // remove them all
                    while (iterQueue.Count > 0)
                    {
                        TreeIter iter = (TreeIter)iterQueue.Dequeue();

                        iFolderUser user =
                            (iFolderUser)tModel.GetValue(iter, 0);

                        try
                        {
                            ifws.RemoveiFolderUser(ifolder.ID,
                                                   user.UserID);
                            UserTreeStore.Remove(ref iter);
                            curUsers.Remove(user.UserID);
                        }
                        catch (Exception e)
                        {
                            iFolderExceptionDialog ied =
                                new iFolderExceptionDialog(
                                    topLevelWindow, e);
                            ied.Run();
                            ied.Hide();
                            ied.Destroy();
                            ied = null;
                        }
                    }
                }
            }
        }
Esempio n. 39
0
 private int removedListContains(iFolderUser ifolderUser)
 {
     int index = -1;
        lock (removedList)
        {
     for (int i=0; i < removedList.Count; i++)
     {
      if (((iFolderUser)removedList[i]).UserID.Equals(ifolderUser.UserID))
      {
       index = i;
       break;
      }
     }
        }
        return index;
 }