Пример #1
0
    protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        DataRowView row = (DataRowView)e.Item.DataItem;
        CheckBox    cb  = (CheckBox)e.Item.FindControl("ItemSelect");

        EUser obj = new EUser();

        db.toObject(((DataRowView)e.Item.DataItem).Row, obj);

        EUser user = WebUtils.GetCurUser(Session);

        if (obj.UserID.Equals(1))
        {
            cb.Visible = false;
        }
        else if (user != null)
        {
            if (obj.UserID.Equals(user.UserID))
            {
                cb.Visible = false;
            }
            else if (user.UsersCannotCreateUsersWithMorePermission)
            {
                if (!obj.UsersCannotCreateUsersWithMorePermission)
                {
                    cb.Visible = false;
                }
                else if (!obj.IsAllowSubmitPermission(dbConn, user.UserID))
                {
                    cb.Visible = false;
                }
            }
        }
        WebFormUtils.LoadKeys(db, row, cb);
    }
Пример #2
0
    protected void Delete_Click(object sender, EventArgs e)
    {
        EUser activeUser = WebUtils.GetCurUser(Session);

        EUser c = new EUser();

        c.UserID = CurID;
        if (EUser.db.select(dbConn, c))
        {
            bool isAllowDelete = true;
            if (activeUser.UsersCannotCreateUsersWithMorePermission)
            {
                if (!c.UsersCannotCreateUsersWithMorePermission)
                {
                    isAllowDelete = false;
                }
                else if (!c.IsAllowSubmitPermission(dbConn, activeUser.UserID))
                {
                    isAllowDelete = false;
                }
            }

            if (isAllowDelete)
            {
                WebUtils.StartFunction(Session, FUNCTION_CODE);
                c.UserAccountStatus = "D";
                db.update(dbConn, c);
                WebUtils.EndFunction(dbConn);
                EInbox.DeleteAllByUserID(dbConn, c.UserID);
            }
            else
            {
                PageErrors errors = PageErrors.getErrors(db, Page.Master);
                errors.clear();

                errors.addError(PageErrorMessage.ERROR_INVALID_PERMISSION);
                return;
            }
        }
        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "User_List.aspx");
    }
Пример #3
0
    // End 0000069, KuangWei, 2014-08-26
    protected bool loadObject()
    {
        obj = new EUser();
        bool isNew = WebFormWorkers.loadKeys(db, obj, DecryptedRequest);

        if (!db.select(dbConn, obj))
        {
            return(false);
        }

        Hashtable values = new Hashtable();

        db.populate(obj, values);
        binding.toControl(values);


        DBFilter filter = new DBFilter();

        filter.add(new Match("UserID", this.CurID));
        ArrayList list;

        list = EUserGroupAccess.db.select(dbConn, filter);


        foreach (EUserGroupAccess o in list)
        {
            CurUserGroups.Add(o.UserGroupID, o);
        }
        list = EUserCompany.db.select(dbConn, filter);
        foreach (EUserCompany o in list)
        {
            CurCompanies.Add(o.CompanyID, o);
        }
        list = EUserRank.db.select(dbConn, filter);
        foreach (EUserRank o in list)
        {
            CurRanks.Add(o.RankID, o);
        }
        // Start 0000069, KuangWei, 2014-08-26
        list = EPayrollGroupUsers.db.select(dbConn, filter);
        foreach (EPayrollGroupUsers o in list)
        {
            CurPayGroups.Add(o.PayGroupID, o);
        }
        // End 0000069, KuangWei, 2014-08-26

        if (WebUtils.GetCurUser(Session).UsersCannotCreateUsersWithMorePermission == false)
        {
            toolBar.EditButton_Visible   = WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite);
            toolBar.DeleteButton_Visible = WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite);
        }
        else if (obj.UsersCannotCreateUsersWithMorePermission == false)
        {
            toolBar.EditButton_Visible   = false;
            toolBar.DeleteButton_Visible = false;
        }
        // Start 0000069, KuangWei, 2014-08-26
        else if (EUser.IsAllowSubmitPermission(dbConn, WebUtils.GetCurUser(Session).UserID, CurCompanies.Keys, CurUserGroups.Keys, CurRanks.Keys, CurPayGroups.Keys))
        // End 0000069, KuangWei, 2014-08-26
        {
            toolBar.EditButton_Visible   = WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite);
            toolBar.DeleteButton_Visible = WebUtils.CheckPermission(Session, FUNCTION_CODE, WebUtils.AccessLevel.ReadWrite);
        }
        else
        {
            toolBar.EditButton_Visible   = false;
            toolBar.DeleteButton_Visible = false;
        }
        return(true);
    }
Пример #4
0
    protected void Save_Click(object sender, EventArgs e)
    {
        EUser c = new EUser();

        Hashtable values = new Hashtable();

        binding.toValues(values);

        PageErrors errors = PageErrors.getErrors(db, Page.Master);

        errors.clear();


        db.validate(errors, values);

        if (!errors.isEmpty())
        {
            return;
        }

        db.parse(values, c);

        if (Password.Text.Equals(""))
        {
            errors.addError("Password", HROne.Translation.PageErrorMessage.ERROR_FIELD_REQUIRED);
            return;
        }
        if (!Password2.Text.Equals(Password.Text))
        {
            errors.addError("Password", HROne.Translation.PageErrorMessage.ERROR_PASSWORD_NOT_MATCH);
            return;
        }
        if (!Password.Text.Equals(NO_CHANGE_PASSWORD))
        {
            c.UserPassword = HROne.CommonLib.Hash.PasswordHash(Password.Text);
        }
        else
        if (CurID < 0)
        {
            c.UserPassword = HROne.CommonLib.Hash.PasswordHash(string.Empty);
        }

        if (c.UserAccountStatus.Equals("A"))
        {
            if (WebUtils.TotalActiveUser(dbConn, c.UserID) >= WebUtils.productLicense(Session).NumOfUsers)
            {
                errors.addError(string.Format(PageErrorMessage.ERROR_MAX_LICENSE_LIMITCH_REACH, new string[] { WebUtils.productLicense(Session).NumOfUsers + " " + HROne.Common.WebUtility.GetLocalizedString("User") }));
                return;
            }
        }

        ArrayList newCompanyList   = WebUtils.SelectedRepeaterItemToBaseObjectList(ECompany.db, Companies, "ItemSelect");
        ArrayList newUserGroupList = WebUtils.SelectedRepeaterItemToBaseObjectList(EUserGroup.db, UserGroups, "ItemSelect");
        ArrayList newRankList      = WebUtils.SelectedRepeaterItemToBaseObjectList(ERank.db, Ranks, "ItemSelect");
        // Start 0000069, KuangWei, 2014-08-26
        ArrayList newPayGroupList = WebUtils.SelectedRepeaterItemToBaseObjectList(EPayrollGroup.db, PayGroups, "ItemSelect");

        // End 0000069, KuangWei, 2014-08-26

        if (WebUtils.GetCurUser(Session).UsersCannotCreateUsersWithMorePermission)
        {
            if (c.UsersCannotCreateUsersWithMorePermission == false)
            {
                errors.addError(PageErrorMessage.ERROR_INVALID_PERMISSION);
                return;
            }
            // Start 0000069, KuangWei, 2014-08-26
            else if (!c.IsAllowSubmitPermission(dbConn, WebUtils.GetCurUser(Session).UserID) ||
                     !EUser.IsAllowSubmitPermission(dbConn, WebUtils.GetCurUser(Session).UserID, newCompanyList, newUserGroupList, newRankList, newPayGroupList)
                     // End 0000069, KuangWei, 2014-08-26
                     )
            {
                errors.addError(PageErrorMessage.ERROR_INVALID_PERMISSION);
                return;
            }
            //  do nothing
        }


        WebUtils.StartFunction(Session, FUNCTION_CODE);
        if (CurID < 0)
        {
            //            Utils.MarkCreate(Session, c);
            c.UserChangePasswordDate = AppUtils.ServerDateTime();
            db.insert(dbConn, c);
            CurID = c.UserID;
            //            url = Utils.BuildURL(-1, CurID);
        }
        else
        {
            //            Utils.Mark(Session, c);
            db.update(dbConn, c);
        }
        {
            DBFilter notUserGroupAccess = new DBFilter();
            notUserGroupAccess.add(new Match("UserID", c.UserID));
            foreach (EUserGroup userGroup in newUserGroupList)
            {
                DBFilter filter = new DBFilter();
                filter.add(new Match("UserID", c.UserID));
                filter.add(new Match("UserGroupID", userGroup.UserGroupID));
                if (EUserGroupAccess.db.count(dbConn, filter) <= 0)
                {
                    EUserGroupAccess o = new EUserGroupAccess();
                    o.UserID      = c.UserID;
                    o.UserGroupID = userGroup.UserGroupID;
                    EUserGroupAccess.db.insert(dbConn, o);
                }
                notUserGroupAccess.add(new Match("UserGroupID", "<>", userGroup.UserGroupID));
            }
            ArrayList unselectedUserGroupAccessList = EUserGroupAccess.db.select(dbConn, notUserGroupAccess);
            foreach (EUserGroupAccess userGroupAccess in unselectedUserGroupAccessList)
            {
                EUserGroupAccess.db.delete(dbConn, userGroupAccess);
            }
        }
        {
            DBFilter notUserCompany = new DBFilter();
            notUserCompany.add(new Match("UserID", c.UserID));
            foreach (ECompany company in newCompanyList)
            {
                DBFilter filter = new DBFilter();
                filter.add(new Match("UserID", c.UserID));
                filter.add(new Match("CompanyID", company.CompanyID));
                if (EUserCompany.db.count(dbConn, filter) <= 0)
                {
                    EUserCompany o = new EUserCompany();
                    o.UserID    = c.UserID;
                    o.CompanyID = company.CompanyID;
                    EUserCompany.db.insert(dbConn, o);
                }
                notUserCompany.add(new Match("CompanyID", "<>", company.CompanyID));
            }
            ArrayList unselectedUserCompanyList = EUserCompany.db.select(dbConn, notUserCompany);
            foreach (EUserCompany userCompany in unselectedUserCompanyList)
            {
                EUserCompany.db.delete(dbConn, userCompany);
            }
        }
        {
            DBFilter notUserRank = new DBFilter();
            notUserRank.add(new Match("UserID", c.UserID));
            foreach (ERank rank in newRankList)
            {
                DBFilter filter = new DBFilter();
                filter.add(new Match("UserID", c.UserID));
                filter.add(new Match("RankID", rank.RankID));
                if (EUserRank.db.count(dbConn, filter) <= 0)
                {
                    EUserRank o = new EUserRank();
                    o.UserID = c.UserID;
                    o.RankID = rank.RankID;
                    EUserRank.db.insert(dbConn, o);
                }
                notUserRank.add(new Match("RankID", "<>", rank.RankID));
            }
            ArrayList unselectedUserRankList = EUserRank.db.select(dbConn, notUserRank);
            foreach (EUserRank userRank in unselectedUserRankList)
            {
                EUserRank.db.delete(dbConn, userRank);
            }
        }
        // Start 0000069, KuangWei, 2014-08-26
        {
            DBFilter notPayrollGroupUser = new DBFilter();
            notPayrollGroupUser.add(new Match("UserID", c.UserID));
            foreach (EPayrollGroup payrollGroup in newPayGroupList)
            {
                DBFilter filter = new DBFilter();
                filter.add(new Match("UserID", c.UserID));
                filter.add(new Match("PayGroupID", payrollGroup.PayGroupID));
                if (EPayrollGroupUsers.db.count(dbConn, filter) <= 0)
                {
                    EPayrollGroupUsers o = new EPayrollGroupUsers();
                    o.UserID     = c.UserID;
                    o.PayGroupID = payrollGroup.PayGroupID;
                    EPayrollGroupUsers.db.insert(dbConn, o);
                }
                notPayrollGroupUser.add(new Match("PayGroupID", "<>", payrollGroup.PayGroupID));
            }
            ArrayList unselectedPayGroupUserList = EPayrollGroupUsers.db.select(dbConn, notPayrollGroupUser);
            foreach (EPayrollGroupUsers payrollGroupUsers in unselectedPayGroupUserList)
            {
                EPayrollGroupUsers.db.delete(dbConn, payrollGroupUsers);
            }
        }

        // update paygroup isPublic flag
        foreach (EPayrollGroup payrollGroup in EPayrollGroup.db.select(dbConn, new DBFilter()))
        {
            DBFilter m_countFilter = new DBFilter();
            m_countFilter.add(new Match("PayGroupID", payrollGroup.PayGroupID));

            payrollGroup.PayGroupIsPublic = (EPayrollGroupUsers.db.count(dbConn, m_countFilter) <= 0);

            EPayrollGroup.db.update(dbConn, payrollGroup);
        }

        // End 0000069, KuangWei, 2014-08-26
        WebUtils.EndFunction(dbConn);

        HROne.Common.WebUtility.RedirectURLwithEncryptedQueryString(Response, Session, "~/User_View.aspx?UserID=" + CurID);
    }