Exemple #1
0
 public void DdlPredefinedRole_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (EPredefinedRoleUtils.Equals(EPredefinedRole.ConsoleAdministrator, DdlPredefinedRole.SelectedValue))
     {
         PhRoles.Visible = PhSiteId.Visible = false;
     }
     else if (EPredefinedRoleUtils.Equals(EPredefinedRole.SystemAdministrator, DdlPredefinedRole.SelectedValue))
     {
         PhRoles.Visible  = false;
         PhSiteId.Visible = true;
     }
     else
     {
         PhRoles.Visible  = true;
         PhSiteId.Visible = false;
     }
 }
        public void InsertRole(RoleInfo roleInfo)
        {
            if (EPredefinedRoleUtils.IsPredefinedRole(roleInfo.RoleName))
            {
                return;
            }

            const string sqlString = "INSERT INTO siteserver_Role (RoleName, CreatorUserName, Description) VALUES (@RoleName, @CreatorUserName, @Description)";

            var parameters = new IDataParameter[]
            {
                GetParameter(ParamRoleName, DataType.VarChar, 255, roleInfo.RoleName),
                GetParameter(ParamCreatorUsername, DataType.VarChar, 255, roleInfo.CreatorUserName),
                GetParameter(ParamDescription, DataType.VarChar, 255, roleInfo.Description)
            };

            ExecuteNonQuery(sqlString, parameters);
        }
Exemple #3
0
        public static string GetRolesHtml(string userName)
        {
            var isConsoleAdministrator = false;
            var isSystemAdministrator  = false;
            var arraylist = new ArrayList();
            var roles     = DataProvider.AdministratorsInRolesDao.GetRolesForUser(userName);

            foreach (var role in roles)
            {
                if (!EPredefinedRoleUtils.IsPredefinedRole(role))
                {
                    arraylist.Add(role);
                }
                else
                {
                    if (EPredefinedRoleUtils.Equals(EPredefinedRole.ConsoleAdministrator, role))
                    {
                        isConsoleAdministrator = true;
                        break;
                    }
                    if (EPredefinedRoleUtils.Equals(EPredefinedRole.SystemAdministrator, role))
                    {
                        isSystemAdministrator = true;
                        break;
                    }
                }
            }

            var retval = string.Empty;

            if (isConsoleAdministrator)
            {
                retval += EPredefinedRoleUtils.GetText(EPredefinedRole.ConsoleAdministrator);
            }
            else if (isSystemAdministrator)
            {
                retval += EPredefinedRoleUtils.GetText(EPredefinedRole.SystemAdministrator);
            }
            else
            {
                retval += TranslateUtils.ObjectCollectionToString(arraylist);
            }
            return(retval);
        }
Exemple #4
0
        public static void InstallDatabase(string adminName, string adminPassword)
        {
            SyncDatabase();

            if (!string.IsNullOrEmpty(adminName) && !string.IsNullOrEmpty(adminPassword))
            {
                RoleManager.CreatePredefinedRolesIfNotExists();

                var administratorInfo = new AdministratorInfo
                {
                    UserName = adminName,
                    Password = adminPassword
                };

                string errorMessage;
                AdminManager.CreateAdministrator(administratorInfo, out errorMessage);
                DataProvider.AdministratorsInRolesDao.AddUserToRole(adminName, EPredefinedRoleUtils.GetValue(EPredefinedRole.ConsoleAdministrator));
            }
        }
Exemple #5
0
        private static void RptContents_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem)
            {
                return;
            }

            var roleName = (string)e.Item.DataItem;

            e.Item.Visible = !EPredefinedRoleUtils.IsPredefinedRole(roleName);

            var ltlRoleName    = (Literal)e.Item.FindControl("ltlRoleName");
            var ltlDescription = (Literal)e.Item.FindControl("ltlDescription");
            var ltlEdit        = (Literal)e.Item.FindControl("ltlEdit");
            var ltlDelete      = (Literal)e.Item.FindControl("ltlDelete");

            ltlRoleName.Text    = roleName;
            ltlDescription.Text = DataProvider.RoleDao.GetRoleDescription(roleName);
            ltlEdit.Text        = $@"<a href=""{PageAdminRoleAdd.GetRedirectUrl(roleName)}"">修改</a>";
            ltlDelete.Text      = $@"<a href=""javascript:;"" onClick=""{AlertUtils.ConfirmDelete("删除角色", $"此操作将会删除角色“{roleName}”,确认吗?", $"{GetRedirectUrl()}?Delete={true}&RoleName={roleName}")}"">删除</a>";
        }
Exemple #6
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            var isChanged = false;

            try
            {
                var allRoles = EPredefinedRoleUtils.GetAllPredefinedRoleName();
                foreach (var roleName in allRoles)
                {
                    DataProvider.AdministratorsInRolesDao.RemoveUserFromRole(_userName, roleName);
                }
                DataProvider.AdministratorsInRolesDao.AddUserToRole(_userName, DdlPredefinedRole.SelectedValue);

                var adminInfo = AdminManager.GetAdminInfoByUserName(_userName);

                DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo,
                                                                     EPredefinedRoleUtils.Equals(EPredefinedRole.SystemAdministrator, DdlPredefinedRole.SelectedValue)
                        ? ControlUtils.SelectedItemsValueToStringCollection(CblSiteId.Items)
                        : string.Empty);

                PermissionsImpl.ClearAllCache();

                AuthRequest.AddAdminLog("设置管理员权限", $"管理员:{_userName}");

                SuccessMessage("权限设置成功!");
                isChanged = true;
            }
            catch (Exception ex)
            {
                FailMessage(ex, "权限设置失败!");
            }

            if (isChanged)
            {
                var redirectUrl = PageAdministrator.GetRedirectUrl();
                LayerUtils.CloseAndRedirect(Page, redirectUrl);
            }
        }
Exemple #7
0
        private void ListBoxDataBind()
        {
            LbAvailableRoles.Items.Clear();
            LbAssignedRoles.Items.Clear();
            var allRoles              = AuthRequest.AdminPermissionsImpl.IsConsoleAdministrator ? DataProvider.RoleDao.GetRoleNameList() : DataProvider.RoleDao.GetRoleNameListByCreatorUserName(AuthRequest.AdminName);
            var userRoles             = DataProvider.AdministratorsInRolesDao.GetRolesForUser(_userName);
            var userRoleNameArrayList = new ArrayList(userRoles);

            foreach (var roleName in allRoles)
            {
                if (!EPredefinedRoleUtils.IsPredefinedRole(roleName) && !userRoleNameArrayList.Contains(roleName))
                {
                    LbAvailableRoles.Items.Add(new ListItem(roleName, roleName));
                }
            }
            foreach (var roleName in userRoles)
            {
                if (!EPredefinedRoleUtils.IsPredefinedRole(roleName))
                {
                    LbAssignedRoles.Items.Add(new ListItem(roleName, roleName));
                }
            }
        }
        private void ListBoxDataBind()
        {
            LbAvailableRoles.Items.Clear();
            LbAssignedRoles.Items.Clear();
            var allRoles              = _permissions.IsConsoleAdministrator ? BaiRongDataProvider.RoleDao.GetAllRoles() : BaiRongDataProvider.RoleDao.GetAllRolesByCreatorUserName(Body.AdministratorName);
            var userRoles             = BaiRongDataProvider.RoleDao.GetRolesForUser(_userName);
            var userRoleNameArrayList = new ArrayList(userRoles);

            foreach (var roleName in allRoles)
            {
                if (!EPredefinedRoleUtils.IsPredefinedRole(roleName) && !userRoleNameArrayList.Contains(roleName))
                {
                    LbAvailableRoles.Items.Add(new ListItem(roleName, roleName));
                }
            }
            foreach (var roleName in userRoles)
            {
                if (!EPredefinedRoleUtils.IsPredefinedRole(roleName))
                {
                    LbAssignedRoles.Items.Add(new ListItem(roleName, roleName));
                }
            }
        }
Exemple #9
0
        public List <int> GetSiteIdList()
        {
            var siteIdList = new List <int>();

            if (EPredefinedRoleUtils.IsConsoleAdministrator(Roles))
            {
                siteIdList = SiteManager.GetSiteIdList();
            }
            else if (EPredefinedRoleUtils.IsSystemAdministrator(Roles))
            {
                var adminInfo = AdminManager.GetAdminInfoByUserName(UserName);
                if (adminInfo != null)
                {
                    foreach (var siteId in TranslateUtils.StringCollectionToIntList(adminInfo.SiteIdCollection))
                    {
                        if (!siteIdList.Contains(siteId))
                        {
                            siteIdList.Add(siteId);
                        }
                    }
                }
            }
            else
            {
                var dict = WebsitePermissionDict;

                foreach (var siteId in dict.Keys)
                {
                    if (!siteIdList.Contains(siteId))
                    {
                        siteIdList.Add(siteId);
                    }
                }
            }

            return(siteIdList);
        }
Exemple #10
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            _userName = AuthRequest.GetQueryString("UserName");

            if (IsPostBack)
            {
                return;
            }

            var roles = DataProvider.AdministratorsInRolesDao.GetRolesForUser(_userName);

            if (AuthRequest.AdminPermissionsImpl.IsConsoleAdministrator)
            {
                DdlPredefinedRole.Items.Add(EPredefinedRoleUtils.GetListItem(EPredefinedRole.ConsoleAdministrator, false));
                DdlPredefinedRole.Items.Add(EPredefinedRoleUtils.GetListItem(EPredefinedRole.SystemAdministrator, false));
            }
            DdlPredefinedRole.Items.Add(EPredefinedRoleUtils.GetListItem(EPredefinedRole.Administrator, false));

            var type = EPredefinedRoleUtils.GetEnumTypeByRoles(roles);

            ControlUtils.SelectSingleItem(DdlPredefinedRole, EPredefinedRoleUtils.GetValue(type));

            var adminInfo  = AdminManager.GetAdminInfoByUserName(_userName);
            var siteIdList = TranslateUtils.StringCollectionToIntList(adminInfo.SiteIdCollection);

            SiteManager.AddListItems(CblSiteId);
            ControlUtils.SelectMultiItems(CblSiteId, siteIdList);

            ListBoxDataBind();

            DdlPredefinedRole_SelectedIndexChanged(null, EventArgs.Empty);
        }
Exemple #11
0
        public static bool CreateAdministrator(AdministratorInfo administratorInfo, out string errorMessage)
        {
            try
            {
                administratorInfo.LastActivityDate = DateUtils.SqlMinValue;
                administratorInfo.CreationDate     = DateTime.Now;
                administratorInfo.PasswordFormat   = EPasswordFormat.Encrypted;
                var isCreated = DataProvider.AdministratorDao.Insert(administratorInfo, out errorMessage);
                if (isCreated == false)
                {
                    return(false);
                }

                var roles = new[] { EPredefinedRoleUtils.GetValue(EPredefinedRole.Administrator) };
                DataProvider.AdministratorsInRolesDao.AddUserToRoles(administratorInfo.UserName, roles);

                return(true);
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
                return(false);
            }
        }
Exemple #12
0
        public IHttpActionResult UpdateRole(int roleId)
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin))
                {
                    return(Unauthorized());
                }

                var roleName                       = request.GetPostString("roleName");
                var description                    = request.GetPostString("description");
                var generalPermissionList          = request.GetPostObject <List <string> >("generalPermissions");
                var sitePermissionsInRolesInfoList =
                    request.GetPostObject <List <SitePermissionsInfo> >("sitePermissions");

                var roleInfo = DataProvider.RoleDao.GetRoleInfo(roleId);
                if (roleInfo.RoleName != roleName)
                {
                    if (EPredefinedRoleUtils.IsPredefinedRole(roleName))
                    {
                        return(BadRequest($"角色添加失败,{roleName}为系统角色!"));
                    }
                    if (DataProvider.RoleDao.IsRoleExists(roleName))
                    {
                        return(BadRequest("角色名称已存在,请更换角色名称!"));
                    }
                }

                DataProvider.PermissionsInRolesDao.Delete(roleInfo.RoleName);
                DataProvider.SitePermissionsDao.Delete(roleInfo.RoleName);

                if (generalPermissionList != null && generalPermissionList.Count > 0)
                {
                    var permissionsInRolesInfo = new PermissionsInRolesInfo(0, roleName,
                                                                            TranslateUtils.ObjectCollectionToString(generalPermissionList));
                    DataProvider.PermissionsInRolesDao.Insert(permissionsInRolesInfo);
                }

                if (sitePermissionsInRolesInfoList != null && sitePermissionsInRolesInfoList.Count > 0)
                {
                    foreach (var sitePermissionsInfo in sitePermissionsInRolesInfoList)
                    {
                        sitePermissionsInfo.RoleName = roleName;
                        DataProvider.SitePermissionsDao.Insert(sitePermissionsInfo);
                    }
                }

                roleInfo.RoleName    = roleName;
                roleInfo.Description = description;

                DataProvider.RoleDao.UpdateRole(roleInfo);

                PermissionsImpl.ClearAllCache();

                request.AddAdminLog("修改管理员角色", $"角色名称:{roleName}");

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Exemple #13
0
        public static bool HasChannelPermissionIsSystemAdministrator(string userName)
        {
            var roles = BaiRongDataProvider.RoleDao.GetRolesForUser(userName);

            return(EPredefinedRoleUtils.IsSystemAdministrator(roles));
        }
Exemple #14
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            var permissioins = PermissionsManager.GetPermissions(Body.AdministratorName);

            _departmentId = Body.GetQueryInt("departmentID");
            var areaId = Body.GetQueryInt("areaID");

            if (_departmentId > 0)
            {
                _departmentInfo = DepartmentManager.GetDepartmentInfo(_departmentId);
            }

            if (Body.IsQueryExists("Delete"))
            {
                var userNameCollection = Body.GetQueryString("UserNameCollection");
                try
                {
                    var userNameArrayList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    foreach (var userName in userNameArrayList)
                    {
                        BaiRongDataProvider.AdministratorDao.Delete(userName);
                    }

                    Body.AddAdminLog("删除管理员", $"管理员:{userNameCollection}");

                    SuccessDeleteMessage();
                }
                catch (Exception ex)
                {
                    FailDeleteMessage(ex);
                }
            }
            else if (Body.IsQueryExists("Lock"))
            {
                var userNameCollection = Body.GetQueryString("UserNameCollection");
                try
                {
                    var userNameList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    BaiRongDataProvider.AdministratorDao.Lock(userNameList);

                    Body.AddAdminLog("锁定管理员", $"管理员:{userNameCollection}");

                    SuccessMessage("成功锁定所选管理员!");
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "锁定所选管理员失败!");
                }
            }
            else if (Body.IsQueryExists("UnLock"))
            {
                var userNameCollection = Body.GetQueryString("UserNameCollection");
                try
                {
                    var userNameList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    BaiRongDataProvider.AdministratorDao.UnLock(userNameList);

                    Body.AddAdminLog("解除锁定管理员", $"管理员:{userNameCollection}");

                    SuccessMessage("成功解除锁定所选管理员!");
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "解除锁定所选管理员失败!");
                }
            }

            spContents.ControlToPaginate = rptContents;
            spContents.ItemsPerPage      = StringUtils.Constants.PageSize;

            if (string.IsNullOrEmpty(Body.GetQueryString("PageNum")))
            {
                spContents.ItemsPerPage = TranslateUtils.ToInt(PageNum.SelectedValue) == 0 ? StringUtils.Constants.PageSize : TranslateUtils.ToInt(PageNum.SelectedValue);

                spContents.SelectCommand = BaiRongDataProvider.AdministratorDao.GetSelectCommandSite(permissioins.IsConsoleAdministrator, Body.AdministratorName, _departmentId, Body.AdministratorInfo.PublishmentSystemId);
                spContents.SortField     = BaiRongDataProvider.AdministratorDao.GetSortFieldName();
                spContents.SortMode      = SortMode.ASC;
            }
            else
            {
                spContents.ItemsPerPage  = Body.GetQueryInt("PageNum") == 0 ? StringUtils.Constants.PageSize : Body.GetQueryInt("PageNum");
                spContents.SelectCommand = BaiRongDataProvider.AdministratorDao.GetSelectCommand(Body.GetQueryString("Keyword"), Body.GetQueryString("RoleName"), Body.GetQueryInt("LastActivityDate"), permissioins.IsConsoleAdministrator, Body.AdministratorName, _departmentId, Body.GetQueryInt("AreaID"));
                spContents.SortField     = Body.GetQueryString("Order");
                spContents.SortMode      = StringUtils.EqualsIgnoreCase(spContents.SortField, "UserName") ? SortMode.ASC : SortMode.DESC;
            }

            rptContents.ItemDataBound += rptContents_ItemDataBound;

            _lockType = EUserLockTypeUtils.GetEnumType(ConfigManager.SystemConfigInfo.LoginLockingType);

            if (IsPostBack)
            {
                return;
            }

            BreadCrumbAdmin(AppManager.Admin.LeftMenu.AdminManagement, "管理员管理", AppManager.Admin.Permission.AdminManagement);

            var theListItem = new ListItem("全部", string.Empty)
            {
                Selected = true
            };

            var allRoles = permissioins.IsConsoleAdministrator ? BaiRongDataProvider.RoleDao.GetAllRoles() : BaiRongDataProvider.RoleDao.GetAllRolesByCreatorUserName(Body.AdministratorName);

            var allPredefinedRoles = EPredefinedRoleUtils.GetAllPredefinedRoleName();


            ddlAreaID.Items.Add(new ListItem("<全部区域>", "0"));
            var areaIdList = AreaManager.GetAreaIdList();
            var count      = areaIdList.Count;

            _isLastNodeArrayOfArea = new bool[count];
            foreach (var theAreaId in areaIdList)
            {
                var areaInfo = AreaManager.GetAreaInfo(theAreaId);
                var listitem = new ListItem(GetArea(areaInfo.AreaId, areaInfo.AreaName, areaInfo.ParentsCount, areaInfo.IsLastNode), theAreaId.ToString());
                if (areaId == theAreaId)
                {
                    listitem.Selected = true;
                }
                ddlAreaID.Items.Add(listitem);
            }

            if (Body.IsQueryExists("PageNum"))
            {
                ControlUtils.SelectListItems(PageNum, Body.GetQueryString("PageNum"));
                Keyword.Text = Body.GetQueryString("Keyword");
                ControlUtils.SelectListItems(ddlAreaID, Body.GetQueryString("AreaID"));
                ControlUtils.SelectListItems(LastActivityDate, Body.GetQueryString("LastActivityDate"));
                ControlUtils.SelectListItems(Order, Body.GetQueryString("Order"));
            }

            var urlAdd = PageAdministratorAdd.GetRedirectUrlToAdd(_departmentId);

            AddButton.Attributes.Add("onclick", $@"location.href='{urlAdd}';return false;");

            var urlAdministrator = GetRedirectUrl(_departmentId);

            Lock.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "&Lock=True", "UserNameCollection", "UserNameCollection", "请选择需要锁定的管理员!", "此操作将锁定所选管理员,确认吗?"));

            UnLock.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "&UnLock=True", "UserNameCollection", "UserNameCollection", "请选择需要解除锁定的管理员!", "此操作将解除锁定所选管理员,确认吗?"));

            Delete.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "&Delete=True", "UserNameCollection", "UserNameCollection", "请选择需要删除的管理员!", "此操作将删除所选管理员,确认吗?"));

            spContents.DataBind();
        }
Exemple #15
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            if (!Page.IsPostBack || !Page.IsValid)
            {
                return;
            }

            if (!string.IsNullOrEmpty(_theRoleName))
            {
                try
                {
                    var sitePermissionsInRolesInfoList = Session[SystemPermissionsInfoListKey] as List <SitePermissionsInfo>;

                    var generalPermissionList = ControlUtils.GetSelectedListControlValueStringList(CblPermissions);
                    DataProvider.PermissionsInRolesDao.UpdateRoleAndGeneralPermissions(_theRoleName, TbDescription.Text, generalPermissionList);

                    DataProvider.SitePermissionsDao.UpdateSitePermissions(_theRoleName, sitePermissionsInRolesInfoList);

                    PermissionManager.ClearAllCache();

                    AuthRequest.AddAdminLog("修改管理员角色", $"角色名称:{_theRoleName}");
                    SuccessMessage("角色修改成功!");
                    AddWaitAndRedirectScript(PageAdminRole.GetRedirectUrl());
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "角色修改失败!");
                }
            }
            else
            {
                if (EPredefinedRoleUtils.IsPredefinedRole(TbRoleName.Text))
                {
                    FailMessage($"角色添加失败,{TbRoleName.Text}为系统角色!");
                }
                else if (DataProvider.RoleDao.IsRoleExists(TbRoleName.Text))
                {
                    FailMessage("角色添加失败,角色标识已存在!");
                }
                else
                {
                    var sitePermissionsInRolesInfoList = Session[SystemPermissionsInfoListKey] as List <SitePermissionsInfo>;
                    var generalPermissionList          = ControlUtils.GetSelectedListControlValueStringList(CblPermissions);

                    try
                    {
                        DataProvider.SitePermissionsDao.InsertRoleAndPermissions(TbRoleName.Text, AuthRequest.AdminName, TbDescription.Text, generalPermissionList, sitePermissionsInRolesInfoList);

                        PermissionManager.ClearAllCache();

                        AuthRequest.AddAdminLog("新增管理员角色",
                                                $"角色名称:{TbRoleName.Text}");

                        SuccessMessage("角色添加成功!");
                        AddWaitAndRedirectScript(PageAdminRole.GetRedirectUrl());
                    }
                    catch (Exception ex)
                    {
                        FailMessage(ex, $"角色添加失败,{ex.Message}");
                    }
                }
            }
        }
Exemple #16
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            var permissioins = PermissionsManager.GetPermissions(Body.AdminName);

            var departmentId = Body.GetQueryInt("departmentId");
            var areaId       = Body.GetQueryInt("areaId");

            if (Body.IsQueryExists("Delete"))
            {
                var userNameCollection = Body.GetQueryString("UserNameCollection");
                try
                {
                    var userNameArrayList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    foreach (var userName in userNameArrayList)
                    {
                        DataProvider.AdministratorDao.Delete(userName);
                    }

                    Body.AddAdminLog("删除管理员", $"管理员:{userNameCollection}");

                    SuccessDeleteMessage();
                }
                catch (Exception ex)
                {
                    FailDeleteMessage(ex);
                }
            }
            else if (Body.IsQueryExists("Lock"))
            {
                var userNameCollection = Body.GetQueryString("UserNameCollection");
                try
                {
                    var userNameList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    DataProvider.AdministratorDao.Lock(userNameList);

                    Body.AddAdminLog("锁定管理员", $"管理员:{userNameCollection}");

                    SuccessMessage("成功锁定所选管理员!");
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "锁定所选管理员失败!");
                }
            }
            else if (Body.IsQueryExists("UnLock"))
            {
                var userNameCollection = Body.GetQueryString("UserNameCollection");
                try
                {
                    var userNameList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    DataProvider.AdministratorDao.UnLock(userNameList);

                    Body.AddAdminLog("解除锁定管理员", $"管理员:{userNameCollection}");

                    SuccessMessage("成功解除锁定所选管理员!");
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "解除锁定所选管理员失败!");
                }
            }

            SpContents.ControlToPaginate = RptContents;
            SpContents.ItemsPerPage      = StringUtils.Constants.PageSize;

            if (string.IsNullOrEmpty(Body.GetQueryString("pageNum")))
            {
                SpContents.ItemsPerPage = TranslateUtils.ToInt(DdlPageNum.SelectedValue) == 0 ? StringUtils.Constants.PageSize : TranslateUtils.ToInt(DdlPageNum.SelectedValue);

                SpContents.SelectCommand = DataProvider.AdministratorDao.GetSelectCommand(permissioins.IsConsoleAdministrator, Body.AdminName);
                SpContents.SortField     = DataProvider.AdministratorDao.GetSortFieldName();
                SpContents.SortMode      = SortMode.ASC;
            }
            else
            {
                SpContents.ItemsPerPage  = Body.GetQueryInt("pageNum") == 0 ? StringUtils.Constants.PageSize : Body.GetQueryInt("pageNum");
                SpContents.SelectCommand = DataProvider.AdministratorDao.GetSelectCommand(Body.GetQueryString("keyword"), Body.GetQueryString("roleName"), Body.GetQueryInt("lastActivityDate"), permissioins.IsConsoleAdministrator, Body.AdminName, Body.GetQueryInt("departmentId"), Body.GetQueryInt("areaId"));
                SpContents.SortField     = Body.GetQueryString("order");
                SpContents.SortMode      = StringUtils.EqualsIgnoreCase(SpContents.SortField, nameof(AdministratorInfo.UserName)) ? SortMode.ASC : SortMode.DESC;
            }

            RptContents.ItemDataBound += RptContents_ItemDataBound;

            _lockType = EUserLockTypeUtils.GetEnumType(ConfigManager.SystemConfigInfo.AdminLockLoginType);

            if (IsPostBack)
            {
                return;
            }

            VerifyAdministratorPermissions(ConfigManager.Permissions.Settings.Admin);

            var theListItem = new ListItem("全部", string.Empty)
            {
                Selected = true
            };

            DdlRoleName.Items.Add(theListItem);

            var allRoles = permissioins.IsConsoleAdministrator ? DataProvider.RoleDao.GetAllRoles() : DataProvider.RoleDao.GetAllRolesByCreatorUserName(Body.AdminName);

            var allPredefinedRoles = EPredefinedRoleUtils.GetAllPredefinedRoleName();

            foreach (var roleName in allRoles)
            {
                if (allPredefinedRoles.Contains(roleName))
                {
                    var listitem = new ListItem(EPredefinedRoleUtils.GetText(EPredefinedRoleUtils.GetEnumType(roleName)), roleName);
                    DdlRoleName.Items.Add(listitem);
                }
            }
            foreach (var roleName in allRoles)
            {
                if (!allPredefinedRoles.Contains(roleName))
                {
                    var listitem = new ListItem(roleName, roleName);
                    DdlRoleName.Items.Add(listitem);
                }
            }

            DdlDepartmentId.Items.Add(new ListItem("<所有部门>", "0"));
            var departmentIdList = DepartmentManager.GetDepartmentIdList();
            var count            = departmentIdList.Count;

            _isLastNodeArrayOfDepartment = new bool[count];
            foreach (var theDepartmentId in departmentIdList)
            {
                var departmentInfo = DepartmentManager.GetDepartmentInfo(theDepartmentId);
                DdlDepartmentId.Items.Add(new ListItem(GetTreeItem(departmentInfo.Id, departmentInfo.DepartmentName, departmentInfo.ParentsCount, departmentInfo.IsLastNode, _isLastNodeArrayOfDepartment), theDepartmentId.ToString()));
            }
            ControlUtils.SelectSingleItem(DdlDepartmentId, departmentId.ToString());

            DdlAreaId.Items.Add(new ListItem("<全部区域>", "0"));
            var areaIdList = AreaManager.GetAreaIdList();

            count = areaIdList.Count;
            _isLastNodeArrayOfArea = new bool[count];
            foreach (var theAreaId in areaIdList)
            {
                var areaInfo = AreaManager.GetAreaInfo(theAreaId);
                DdlAreaId.Items.Add(new ListItem(GetTreeItem(areaInfo.Id, areaInfo.AreaName, areaInfo.ParentsCount, areaInfo.IsLastNode, _isLastNodeArrayOfArea), theAreaId.ToString()));
            }
            ControlUtils.SelectSingleItem(DdlAreaId, areaId.ToString());

            if (Body.IsQueryExists("pageNum"))
            {
                ControlUtils.SelectSingleItem(DdlRoleName, Body.GetQueryString("roleName"));
                ControlUtils.SelectSingleItem(DdlPageNum, Body.GetQueryString("pageNum"));
                TbKeyword.Text = Body.GetQueryString("keyword");
                ControlUtils.SelectSingleItem(DdlDepartmentId, Body.GetQueryString("departmentId"));
                ControlUtils.SelectSingleItem(DdlAreaId, Body.GetQueryString("areaId"));
                ControlUtils.SelectSingleItem(DdlLastActivityDate, Body.GetQueryString("lastActivityDate"));
                ControlUtils.SelectSingleItem(DdlOrder, Body.GetQueryString("order"));
            }

            BtnAdd.Attributes.Add("onclick", $@"location.href='{PageAdministratorAdd.GetRedirectUrlToAdd(departmentId)}';return false;");

            var urlAdministrator = GetRedirectUrl();

            BtnLock.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "?Lock=True", "UserNameCollection", "UserNameCollection", "请选择需要锁定的管理员!", "此操作将锁定所选管理员,确认吗?"));

            BtnUnLock.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "?UnLock=True", "UserNameCollection", "UserNameCollection", "请选择需要解除锁定的管理员!", "此操作将解除锁定所选管理员,确认吗?"));

            BtnDelete.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "?Delete=True", "UserNameCollection", "UserNameCollection", "请选择需要删除的管理员!", "此操作将删除所选管理员,确认吗?"));

            SpContents.DataBind();
        }
Exemple #17
0
        public override void Submit_OnClick(object sender, EventArgs e)
        {
            var isChanged = false;

            try
            {
                var allRoles = EPredefinedRoleUtils.GetAllPredefinedRoleName();
                foreach (var roleName in allRoles)
                {
                    BaiRongDataProvider.RoleDao.RemoveUserFromRole(_userName, roleName);
                }
                BaiRongDataProvider.RoleDao.AddUserToRole(_userName, DdlPredefinedRole.SelectedValue);

                BaiRongDataProvider.AdministratorDao.UpdatePublishmentSystemIdCollection(_userName,
                                                                                         EPredefinedRoleUtils.Equals(EPredefinedRole.SystemAdministrator, DdlPredefinedRole.SelectedValue)
                        ? ControlUtils.SelectedItemsValueToStringCollection(CblPublishmentSystemId.Items)
                        : string.Empty);

                Body.AddAdminLog("设置管理员权限", $"管理员:{_userName}");

                SuccessMessage("权限设置成功!");
                isChanged = true;
            }
            catch (Exception ex)
            {
                FailMessage(ex, "权限设置失败!");
            }

            if (isChanged)
            {
                var redirectUrl = PageAdministrator.GetRedirectUrl(0);
                PageUtils.CloseModalPageAndRedirect(Page, redirectUrl);
            }
        }
Exemple #18
0
        public static bool HasChannelPermissionIsConsoleAdministrator(string userName)
        {
            var roles = DataProvider.AdministratorsInRolesDao.GetRolesForUser(userName);

            return(EPredefinedRoleUtils.IsConsoleAdministrator(roles));
        }
Exemple #19
0
        public void Page_Load(object sender, EventArgs e)
        {
            if (IsForbidden)
            {
                return;
            }

            var pageNum                = AuthRequest.GetQueryInt("pageNum") == 0 ? 30 : AuthRequest.GetQueryInt("pageNum");
            var keyword                = AuthRequest.GetQueryString("keyword");
            var roleName               = AuthRequest.GetQueryString("roleName");
            var lastActivityDate       = AuthRequest.GetQueryInt("lastActivityDate");
            var isConsoleAdministrator = AuthRequest.AdminPermissions.IsConsoleAdministrator;
            var adminName              = AuthRequest.AdminName;
            var order        = AuthRequest.IsQueryExists("order") ? AuthRequest.GetQueryString("order") : nameof(AdministratorInfo.UserName);
            var departmentId = AuthRequest.GetQueryInt("departmentId");
            var areaId       = AuthRequest.GetQueryInt("areaId");

            if (AuthRequest.IsQueryExists("Delete"))
            {
                var userNameCollection = AuthRequest.GetQueryString("UserNameCollection");
                try
                {
                    var userNameArrayList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    foreach (var userName in userNameArrayList)
                    {
                        DataProvider.AdministratorDao.Delete(userName);
                    }

                    AuthRequest.AddAdminLog("删除管理员", $"管理员:{userNameCollection}");

                    SuccessDeleteMessage();
                }
                catch (Exception ex)
                {
                    FailDeleteMessage(ex);
                }
            }
            else if (AuthRequest.IsQueryExists("Lock"))
            {
                var userNameCollection = AuthRequest.GetQueryString("UserNameCollection");
                try
                {
                    var userNameList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    DataProvider.AdministratorDao.Lock(userNameList);

                    AuthRequest.AddAdminLog("锁定管理员", $"管理员:{userNameCollection}");

                    SuccessMessage("成功锁定所选管理员!");
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "锁定所选管理员失败!");
                }
            }
            else if (AuthRequest.IsQueryExists("UnLock"))
            {
                var userNameCollection = AuthRequest.GetQueryString("UserNameCollection");
                try
                {
                    var userNameList = TranslateUtils.StringCollectionToStringList(userNameCollection);
                    DataProvider.AdministratorDao.UnLock(userNameList);

                    AuthRequest.AddAdminLog("解除锁定管理员", $"管理员:{userNameCollection}");

                    SuccessMessage("成功解除锁定所选管理员!");
                }
                catch (Exception ex)
                {
                    FailMessage(ex, "解除锁定所选管理员失败!");
                }
            }

            PgContents.Param = new PagerParam
            {
                ControlToPaginate = RptContents,
                TableName         = DataProvider.AdministratorDao.TableName,
                PageSize          = pageNum,
                Page              = AuthRequest.GetQueryInt(Pager.QueryNamePage, 1),
                OrderSqlString    = DataProvider.AdministratorDao.GetOrderSqlString(order),
                ReturnColumnNames = SqlUtils.Asterisk,
                WhereSqlString    = DataProvider.AdministratorDao.GetWhereSqlString(isConsoleAdministrator, adminName, keyword, roleName, lastActivityDate, departmentId, areaId)
            };

            PgContents.Param.TotalCount =
                DataProvider.DatabaseDao.GetPageTotalCount(DataProvider.AdministratorDao.TableName, PgContents.Param.WhereSqlString);

            RptContents.ItemDataBound += RptContents_ItemDataBound;

            _lockType = EUserLockTypeUtils.GetEnumType(ConfigManager.SystemConfigInfo.AdminLockLoginType);

            if (IsPostBack)
            {
                return;
            }

            VerifySystemPermissions(ConfigManager.SettingsPermissions.Admin);

            var theListItem = new ListItem("全部", string.Empty)
            {
                Selected = true
            };

            DdlRoleName.Items.Add(theListItem);

            var allRoles = AuthRequest.AdminPermissions.IsConsoleAdministrator ? DataProvider.RoleDao.GetRoleNameList() : DataProvider.RoleDao.GetRoleNameListByCreatorUserName(AuthRequest.AdminName);

            var allPredefinedRoles = EPredefinedRoleUtils.GetAllPredefinedRoleName();

            foreach (var theRoleName in allRoles)
            {
                if (allPredefinedRoles.Contains(theRoleName))
                {
                    var listitem = new ListItem(EPredefinedRoleUtils.GetText(EPredefinedRoleUtils.GetEnumType(theRoleName)), theRoleName);
                    DdlRoleName.Items.Add(listitem);
                }
                else
                {
                    var listitem = new ListItem(theRoleName, theRoleName);
                    DdlRoleName.Items.Add(listitem);
                }
            }

            DdlDepartmentId.Items.Add(new ListItem("<所有部门>", "0"));
            var departmentIdList = DepartmentManager.GetDepartmentIdList();

            foreach (var theDepartmentId in departmentIdList)
            {
                var departmentInfo = DepartmentManager.GetDepartmentInfo(theDepartmentId);
                DdlDepartmentId.Items.Add(new ListItem(GetTreeItem(departmentInfo.DepartmentName, departmentInfo.ParentsCount, departmentInfo.IsLastNode, _parentsCountDictOfDepartment), theDepartmentId.ToString()));
            }
            ControlUtils.SelectSingleItem(DdlDepartmentId, departmentId.ToString());

            DdlAreaId.Items.Add(new ListItem("<全部区域>", "0"));
            var areaIdList = AreaManager.GetAreaIdList();

            foreach (var theAreaId in areaIdList)
            {
                var areaInfo = AreaManager.GetAreaInfo(theAreaId);
                DdlAreaId.Items.Add(new ListItem(GetTreeItem(areaInfo.AreaName, areaInfo.ParentsCount, areaInfo.IsLastNode, _parentsCountDictOfArea), theAreaId.ToString()));
            }
            ControlUtils.SelectSingleItem(DdlAreaId, areaId.ToString());

            ControlUtils.SelectSingleItem(DdlRoleName, roleName);
            ControlUtils.SelectSingleItem(DdlPageNum, pageNum.ToString());
            TbKeyword.Text = keyword;
            ControlUtils.SelectSingleItem(DdlDepartmentId, departmentId.ToString());
            ControlUtils.SelectSingleItem(DdlAreaId, areaId.ToString());
            ControlUtils.SelectSingleItem(DdlLastActivityDate, lastActivityDate.ToString());
            ControlUtils.SelectSingleItem(DdlOrder, order);

            PgContents.DataBind();

            BtnAdd.Attributes.Add("onclick", $@"location.href='{PageAdministratorAdd.GetRedirectUrlToAdd(departmentId)}';return false;");

            var urlAdministrator = GetRedirectUrl();

            BtnLock.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "?Lock=True", "UserNameCollection", "UserNameCollection", "请选择需要锁定的管理员!", "此操作将锁定所选管理员,确认吗?"));

            BtnUnLock.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "?UnLock=True", "UserNameCollection", "UserNameCollection", "请选择需要解除锁定的管理员!", "此操作将解除锁定所选管理员,确认吗?"));

            BtnDelete.Attributes.Add("onclick", PageUtils.GetRedirectStringWithCheckBoxValueAndAlert(urlAdministrator + "?Delete=True", "UserNameCollection", "UserNameCollection", "请选择需要删除的管理员!", "此操作将删除所选管理员,确认吗?"));
        }
Exemple #20
0
        public IHttpActionResult GetConfig()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin))
                {
                    return(Unauthorized());
                }

                var roles = new List <KeyValuePair <string, string> >();

                var roleNameList = request.AdminPermissionsImpl.IsConsoleAdministrator ? DataProvider.RoleDao.GetRoleNameList() : DataProvider.RoleDao.GetRoleNameListByCreatorUserName(request.AdminName);

                var predefinedRoles = EPredefinedRoleUtils.GetAllPredefinedRoleName();
                foreach (var predefinedRole in predefinedRoles)
                {
                    roles.Add(new KeyValuePair <string, string>(predefinedRole, EPredefinedRoleUtils.GetText(EPredefinedRoleUtils.GetEnumType(predefinedRole))));
                }
                foreach (var roleName in roleNameList)
                {
                    if (!predefinedRoles.Contains(roleName))
                    {
                        roles.Add(new KeyValuePair <string, string>(roleName, roleName));
                    }
                }

                var role             = request.GetQueryString("role");
                var order            = request.GetQueryString("order");
                var lastActivityDate = request.GetQueryInt("lastActivityDate");
                var keyword          = request.GetQueryString("keyword");
                var offset           = request.GetQueryInt("offset");
                var limit            = request.GetQueryInt("limit");

                var isSuperAdmin    = request.AdminPermissions.IsSuperAdmin();
                var creatorUserName = isSuperAdmin ? string.Empty : request.AdminName;
                var count           = DataProvider.AdministratorDao.GetCount(creatorUserName, role, order, lastActivityDate,
                                                                             keyword);
                var administratorInfoList = DataProvider.AdministratorDao.GetAdministrators(creatorUserName, role, order, lastActivityDate, keyword, offset, limit);
                var administrators        = new List <object>();
                foreach (var administratorInfo in administratorInfoList)
                {
                    administrators.Add(new
                    {
                        administratorInfo.Id,
                        administratorInfo.AvatarUrl,
                        administratorInfo.UserName,
                        DisplayName = string.IsNullOrEmpty(administratorInfo.DisplayName)
                            ? administratorInfo.UserName
                            : administratorInfo.DisplayName,
                        administratorInfo.Mobile,
                        administratorInfo.LastActivityDate,
                        administratorInfo.CountOfLogin,
                        administratorInfo.Locked,
                        Roles = AdminManager.GetRoles(administratorInfo.UserName)
                    });
                }

                return(Ok(new
                {
                    Value = administrators,
                    Count = count,
                    Roles = roles,
                    IsSuperAdmin = request.AdminPermissions.IsSuperAdmin(),
                    request.AdminId
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Exemple #21
0
        public static void CreatePredefinedRoles()
        {
            var allPredefinedRoles = EPredefinedRoleUtils.GetAllPredefinedRole();

            foreach (EPredefinedRole enumRole in allPredefinedRoles)
            {
                BaiRongDataProvider.RoleDao.InsertRole(EPredefinedRoleUtils.GetValue(enumRole), string.Empty, EPredefinedRoleUtils.GetText(enumRole));
            }
        }
Exemple #22
0
        public IHttpActionResult SavePermissions(int adminId)
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin))
                {
                    return(Unauthorized());
                }

                if (!request.AdminPermissions.IsSuperAdmin())
                {
                    return(Unauthorized());
                }

                var adminLevel   = request.GetPostString("adminLevel");
                var checkedSites = request.GetPostObject <List <int> >("checkedSites");
                var checkedRoles = request.GetPostObject <List <string> >("checkedRoles");

                var adminInfo = AdminManager.GetAdminInfoByUserId(adminId);

                DataProvider.AdministratorsInRolesDao.RemoveUser(adminInfo.UserName);
                if (adminLevel == "SuperAdmin")
                {
                    DataProvider.AdministratorsInRolesDao.AddUserToRole(adminInfo.UserName, EPredefinedRoleUtils.GetValue(EPredefinedRole.ConsoleAdministrator));
                }
                else if (adminLevel == "SiteAdmin")
                {
                    DataProvider.AdministratorsInRolesDao.AddUserToRole(adminInfo.UserName, EPredefinedRoleUtils.GetValue(EPredefinedRole.SystemAdministrator));
                }
                else
                {
                    DataProvider.AdministratorsInRolesDao.AddUserToRole(adminInfo.UserName, EPredefinedRoleUtils.GetValue(EPredefinedRole.Administrator));
                    DataProvider.AdministratorsInRolesDao.AddUserToRoles(adminInfo.UserName, checkedRoles.ToArray());
                }

                DataProvider.AdministratorDao.UpdateSiteIdCollection(adminInfo,
                                                                     adminLevel == "SiteAdmin"
                        ? TranslateUtils.ObjectCollectionToString(checkedSites)
                        : string.Empty);

                PermissionsImpl.ClearAllCache();

                request.AddAdminLog("设置管理员权限", $"管理员:{adminInfo.UserName}");

                return(Ok(new
                {
                    Value = true,
                    Roles = AdminManager.GetRoles(adminInfo.UserName)
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Exemple #23
0
        public static void CreatePredefinedRolesIfNotExists()
        {
            var allPredefinedRoles = EPredefinedRoleUtils.GetAllPredefinedRole();

            foreach (var enumRole in allPredefinedRoles)
            {
                if (!DataProvider.RoleDao.IsRoleExists(EPredefinedRoleUtils.GetValue(enumRole)))
                {
                    DataProvider.RoleDao.InsertRole(EPredefinedRoleUtils.GetValue(enumRole), string.Empty, EPredefinedRoleUtils.GetText(enumRole));
                }
            }
        }