コード例 #1
0
        private ForumPost setTopicView(int id)
        {
            ForumPost  post  = postService.GetPostByTopic(id);
            ForumTopic topic = topicService.GetById(post.TopicId, ctx.owner.obj);

            ForumBoard board = getTree().GetById(post.ForumBoardId);

            if (!PermissionUtil.Check(this, board))
            {
                return(null);
            }

            List <ForumBoard> pathboards = getTree().GetPath(board.Id);

            set("location", ForumLocationUtil.GetReply(pathboards, topic, ctx));

            set("post.ReplyTitle", "re:" + post.Title);
            set("post.ForumBoardId", post.ForumBoardId);
            set("post.TopicId", post.TopicId);
            set("post.ParentId", post.Id);

            set("post.ReplyActionUrl", to(Create));

            return(post);
        }
コード例 #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         SessionUtil.SavaModuleTag("ChangeMyPwd");
         if (SessionUtil.GetStaffSession().IsInnerUser == 0)
         {
             PermissionUtil.SaveGrantPermissionsToSession();
             if (!PermissionUtil.HasGrantPermission("rights_browse"))
             {
                 throw new ModuleSecurityException("无权限访问此模块。");
             }
         }
     }
     catch (MissSessionException)
     {
         ClientScript.RegisterClientScriptBlock(this.GetType(), "reload",
                                                "<script type=\"text/javascript\">parent.location='../../Default.aspx';</script>");
     }
     catch (ModuleSecurityException)
     {
         Response.Redirect("../../Frameset/Welcome.aspx");
     }
     catch (Exception ex)
     {
         log.Error(null, ex);
         throw;
     }
 }
コード例 #3
0
        public void Edit(int id)
        {
            ForumPost post = postService.GetById(id, ctx.owner.obj);

            if (post == null)
            {
                echo(alang("exPostNotFound"));
                return;
            }

            ForumBoard board = getTree().GetById(post.ForumBoardId);

            if (PermissionUtil.IsSelfEdit(ctx, post) == false)
            {
                if (!PermissionUtil.Check(this, board))
                {
                    return;
                }
            }

            target(Update, post.Id);

            List <ForumBoard> pathboards = getTree().GetPath(board.Id);

            set("location", ForumLocationUtil.GetPostEdit(pathboards, post, ctx));

            set("post.Title", post.Title);
            editor("Content", post.Content, "280px");
        }
コード例 #4
0
        public void Update(int id)
        {
            ForumPost post = postService.GetById(id, ctx.owner.obj);

            if (post == null)
            {
                echo(alang("exPostNotFound"));
                return;
            }

            ForumBoard board = boardService.GetById(post.ForumBoardId, ctx.owner.obj);

            if (PermissionUtil.IsSelfEdit(ctx, post) == false)
            {
                if (!PermissionUtil.Check(this, board))
                {
                    return;
                }
            }

            post = ForumValidator.ValidatePostEdit(post, ctx);
            if (errors.HasErrors)
            {
                run(Edit, id);
            }
            else
            {
                postService.Update(post, (User)ctx.viewer.obj);

                new ForumCacheRemove(boardService, topicService, this).UpdatePost(post);

                echoToParent(lang("opok"));
            }
        }
コード例 #5
0
ファイル: Button.cs プロジェクト: ugt-software/LMIS
        protected override void OnPreRender(EventArgs e)
        {
            TranslationUtil.ApplyTranslation(this);
            PermissionUtil.ApplyPermission(this);

            base.OnPreRender(e);
        }
コード例 #6
0
        public ActionResult Edit([Bind(Include = "ProjectID, Name, SuperiorID, Start, Finish")] Projects project)
        {
            if (Session["EmployeeID"] == null)
            {
                Session["PleaseLogin"] = true;
                return(RedirectToAction("", "Home"));
            }
            var permutil = new PermissionUtil();

            if (permutil.IsAdministrator((int)Session["JobPosition"]))
            {
                var projToEdit = ctx.Projects.Find(project.ProjectID);
                if (projToEdit == null)
                {
                    return(HttpNotFound("Projekt o podanym ID nie istnieje!"));
                }

                projToEdit.Name       = project.Name;
                projToEdit.SuperiorID = project.SuperiorID;
                projToEdit.Start      = project.Start;
                projToEdit.Finish     = project.Finish;

                if (project.Finish != null && project.Start > project.Finish)
                {
                    ModelState.AddModelError("Start", "Data rozpoczęcia jest późniejsza niż data zakończenia projektu.");
                    PopulateSuperiorsList();
                    return(View(projToEdit));
                }

                ctx.Entry(projToEdit).State = EntityState.Modified;
                ctx.SaveChanges();
                return(RedirectToAction("Overview", "Project"));
            }
            return(RedirectToAction("Overview", "Project"));
        }
コード例 #7
0
        public ActionResult SetState(int id, int ProjectStateID)
        {
            if (Session["EmployeeID"] == null)
            {
                Session["PleaseLogin"] = true;
                return(RedirectToAction("", "Home"));
            }
            var permutil = new PermissionUtil();

            if (permutil.IsAdministrator((int)Session["JobPosition"]))
            {
                var projToEdit = ctx.Projects.Find(id);
                if (projToEdit == null)
                {
                    return(HttpNotFound("Projekt o podanym ID nie istnieje!"));
                }

                projToEdit.LastEditDate   = DateTime.Now;
                projToEdit.LastEditedBy   = (int)Session["EmployeeID"];
                projToEdit.ProjectStateID = ProjectStateID;

                if (ProjectStateID == 3)
                {
                    projToEdit.Finish = DateTime.Now;
                }

                ctx.Entry(projToEdit).State = EntityState.Modified;
                ctx.SaveChanges();

                return(RedirectToAction("Overview", "Project"));
            }
            return(RedirectToAction("Overview", "Project"));
        }
コード例 #8
0
        protected override void OnPreRender(EventArgs e)
        {
            if (Items != null && Items.Count > 0 && DataSource == null)
            {
                foreach (ListEditItem item in Items)
                {
                    var listItemTrn = new DefaultTranslatable(item.Text);
                    item.Text = listItemTrn.Text;
                }
            }

            if (Columns != null && Columns.Count > 0)
            {
                foreach (ListBoxColumn column in Columns)
                {
                    var caption = column.Caption;

                    if (String.IsNullOrWhiteSpace(caption))
                    {
                        caption = column.FieldName;
                    }

                    var captionTrn = new DefaultTranslatable(caption);
                    column.Caption = captionTrn.Text;
                }
            }

            PermissionUtil.ApplyPermission(this);

            base.OnPreRender(e);
        }
コード例 #9
0
        public void Update(int id)
        {
            ForumTopic topic = topicService.GetById(id, ctx.owner.obj);

            if (topic == null)
            {
                echoRedirect(alang("exTopicNotFound"));
                return;
            }

            ForumBoard board = boardService.GetById(topic.ForumBoard.Id, ctx.owner.obj);

            if (PermissionUtil.IsSelfEdit(ctx, topic) == false)
            {
                if (!PermissionUtil.Check(this, board))
                {
                    return;
                }
            }

            topic = ForumValidator.ValidateTopicEdit(topic, ctx);
            if (ctx.HasErrors)
            {
                run(Edit, id);
            }
            else
            {
                topicService.Update(topic, (User)ctx.viewer.obj, ctx.owner.obj);
                new ForumCacheRemove(boardService, topicService, this).UpdateTopic(topic);
                echoRedirect(lang("opok"), alink.ToAppData(topic));
            }
        }
コード例 #10
0
        //public void TripLockDisplay()
        //{
        //    var haveEditTripAfterPermission = PermissionUtil.UserCheckPermission(CurrentUser.Id, (int)PermissionEnum.EDIT_TRIP_AFTER);

        //    if (!haveEditTripAfterPermission)
        //    {
        //        if (Booking.StartDate.AddHours(12) < DateTime.Now)
        //        {
        //            plhTripReadonly.Visible = true;
        //            try
        //            {
        //                litTrip.Text = Booking.Trip.Name;
        //            }
        //            catch { }
        //            ddlTrips.Visible = false;
        //        }
        //    }
        //}

        public void TotalLockedDisplay()
        {
            var isLocked = Booking.LockIncome;
            var haveEditAfterLockPermission = PermissionUtil.UserCheckPermission(CurrentUser.Id, (int)PermissionEnum.EDIT_AFTER_LOCK);
            var haveLockIncomePermission    = PermissionUtil.UserCheckPermission(CurrentUser.Id, (int)PermissionEnum.LOCK_INCOME);

            if (isLocked)
            {
                if (!haveEditAfterLockPermission)
                {
                    txtTotal.ReadOnly     = true;
                    txtTotal.CssClass     = txtTotal.CssClass + " total-locked ";
                    ddlCurrencies.Enabled = false;
                }
            }

            if (haveLockIncomePermission)
            {
                btnLockIncome.Visible   = true;
                btnUnlockIncome.Visible = false;
                if (isLocked)
                {
                    btnLockIncome.Visible   = false;
                    btnUnlockIncome.Visible = true;
                }
            }
        }
コード例 #11
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            this.actionUrl = PermissionUtil.CurrentPermissionUrl(filterContext);
            this.rawUrl    = PermissionUtil.CurrentUrl(filterContext);

            base.OnAuthorization(filterContext);
        }
コード例 #12
0
        public void SaveGlobalStickySort()
        {
            int    topicId = ctx.PostInt("id");
            String cmd     = ctx.Post("cmd");

            ForumApp app = ctx.app.obj as ForumApp;

            PermissionUtil.Check(this, app);

            if (cmd == "up")
            {
                forumService.StickyMoveUp(app, topicId);
                echoRedirect("ok");
            }
            else if (cmd == "down")
            {
                forumService.StickyMoveDown(app, topicId);
                echoRedirect("ok");
            }
            else
            {
                errors.Add(lang("exUnknowCmd"));
                echoError();
            }
        }
コード例 #13
0
ファイル: User.cs プロジェクト: iSudocat/SudoDrive
        /// <summary>
        /// 判断这个用户是否有某个权限
        /// </summary>
        /// <param name="permission"></param>
        /// <returns></returns>
        public bool?HasPermission(string[] permission)
        {
            bool?ret = null;

            var permissions = this.UserToPermission;

            if (permissions != null)
            {
                var hold = permissions.Select(s => s.Permission).ToList();
                ret = PermissionUtil.HasPermissionIn(hold, permission);
            }

            if (ret != null)
            {
                return(ret);
            }

            var groupToUser = this.GroupToUser;

            foreach (var group in groupToUser)
            {
                var result = group.Group.HasPermission(permission);
                if (result == false)
                {
                    return(false);
                }
                if (result == true)
                {
                    ret = true;
                }
            }

            return(ret);
        }
コード例 #14
0
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            //Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            if (requestCode == REQUEST_SENDSMS)
            {
                if (PermissionUtil.VerifyPermissions(grantResults))
                {
                    // All required permissions have been granted, display contacts fragment.
                    Snackbar.Make(layout, " Permissions have been granted. ", Snackbar.LengthShort).Show();
                    var phone       = phoneNum.Text;
                    var message     = sms.Text;
                    var piSent      = PendingIntent.GetBroadcast(this, 0, new Intent("SMS_SENT"), 0);
                    var piDelivered = PendingIntent.GetBroadcast(this, 0, new Intent("SMS_DELIVERED"), 0);
                    _smsManager.SendTextMessage(phone, null, message, piSent, piDelivered);
                }
                else
                {
                    Log.Info(TAG, " permissions were NOT granted.");
                    Snackbar.Make(layout, "Permissions were not granted.", Snackbar.LengthShort).Show();
                }
            }

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
コード例 #15
0
        //------------------------------------ 版主管理:帖子评分 -----------------------------------------



        public void SaveCredit(int id)
        {
            ForumPost post = postService.GetById(id, ctx.owner.obj);

            if (post == null)
            {
                echoRedirect(alang("exPostNotFound"));
                return;
            }

            ForumBoard board = boardService.GetById(post.ForumBoardId, ctx.owner.obj);

            if (!PermissionUtil.Check(this, board))
            {
                return;
            }

            int rateMaxValue = ((ForumApp)ctx.app.obj).MaxRateValue;

            int currencyValue = ctx.PostInt("CurrencyValue");

            if (((currencyValue != 0) && (currencyValue >= -rateMaxValue)) && (currencyValue <= rateMaxValue))
            {
                postService.SetPostCredit(post, ctx.PostInt("CurrencyId"), currencyValue, ctx.Post("Reason"), (User)ctx.viewer.obj);
                userIncomeService.AddIncome(post.Creator, ctx.PostInt("CurrencyId"), currencyValue);
                echoRedirect(lang("opok"));
            }
            else
            {
                errors.Add(alang("exCreditNotValid"));
                run(AddCredit, id);
            }
        }
コード例 #16
0
        protected void Page_Unload(object sender, EventArgs e)
        {
            if (sailsMasterBLL != null)
            {
                sailsMasterBLL.Dispose();
                sailsMasterBLL = null;
            }

            if (permissionUtil != null)
            {
                permissionUtil.Dispose();
                permissionUtil = null;
            }

            if (userUtil != null)
            {
                userUtil.Dispose();
                userUtil = null;
            }

            if (!IsPostBack)
            {
                ClearMessage();
            }
        }
コード例 #17
0
ファイル: ViewFilter.cs プロジェクト: zszqwe/Gecko.Ace
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //获取当前的Action
            //后台添加模块的标示  需要跟 action 一致
            string currentAction = filterContext.RouteData.Values["action"].ToString();

            //var staff = Gecko.Security.Service.StaffSrv.GetStaffByLoginId(SessionUtil.GetStaffSession().LoginId);
            ////判断用户是否有 当前 action 浏览的权限 暂时不用缓存
            //var m = Gecko.Security.Service.ModuleSrv.GetModuleByTag(currentAction);

            //if (m != null)
            //{
            //    var m_rights = staff.GetGrantPermissions(m);
            //    if (!m_rights.Contains("rights_browse"))
            //    {
            //        var contentResult = new ContentResult();
            //        contentResult.Content = "无权限访问";
            //        filterContext.Result = contentResult;
            //    }
            //}

            //配合 permissionUtil 进行访问
            var isHave = PermissionUtil.HasGrantPermission("rights_browse");

            //如果当前用户没有浏览权限
            if (!isHave)
            {
                var contentResult = new ContentResult();
                contentResult.Content = "无权限访问";
                filterContext.Result  = contentResult;
            }

            base.OnActionExecuting(filterContext);
        }
コード例 #18
0
ファイル: Button.cs プロジェクト: ugt-software/LMIS
        protected override void RenderContents(HtmlTextWriter writer)
        {
            TranslationUtil.ApplyTranslation(this);
            PermissionUtil.ApplyPermission(this);

            base.RenderContents(writer);
        }
コード例 #19
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            if (command.Length == 0)
            {
                this.SendUsage(caller);
                return;
            }

            var name   = command.GetStringParameter(0);
            var region = RegionsPlugin.Instance.GetRegion(name);

            if (region == null)
            {
                UnturnedChat.Say(caller, "Region \"" + name + "\" not found", Color.red);
                return;
            }

            if (!region.IsOwner(caller) && !PermissionUtil.HasPermission(caller, "remove.override"))
            {
                UnturnedChat.Say(caller, "You're not the owner of this region!", Color.red);
                return;
            }

            RegionsPlugin.Instance.Regions.Remove(region);
            RegionsPlugin.Instance.Configuration.Save();
            RegionsPlugin.Instance.OnRegionRemoved(region);

            UnturnedChat.Say(caller, "Successfully removed region: " + name, Color.green);
        }
コード例 #20
0
ファイル: TagAdminController.cs プロジェクト: zuhuizou/wojilu
        private Boolean hasAdminPermission(ForumPost post)
        {
            ForumBoard board = boardService.GetById(post.ForumBoardId, ctx.owner.obj);

            IList adminCmds = PermissionUtil.GetTopicAdminCmds((User)ctx.viewer.obj, board, ctx);

            return(adminCmds.Count > 0);
        }
コード例 #21
0
        public void TotalDisplay()
        {
            var canViewTotal = PermissionUtil.UserCheckPermission(CurrentUser.Id, (int)PermissionEnum.VIEW_TOTAL_BY_DATE);

            if (!canViewTotal)
            {
                HideTotal();
            }
        }
コード例 #22
0
        private void CheckUserPermission()
        {
            PermissionUtil perm = new PermissionUtil();

            if (!perm.IsAdministrator((int)Session["JobPosition"]))
            {
                throw new UnauthorizedAccessException("Nie masz wystarczających uprawnień do oglądania tej witryny.");
            }
        }
コード例 #23
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!PermissionUtil.UserCheckPermission(UserIdentity.Id, (int)PermissionEnum.FORM_ADDBOOKING))
            {
                ShowErrors("You don't have permission to perform this action");
                return;
            }
            // Lấy tất cả các hành trình để lọc ra các hành trình có nhiều option, phục vụ cho việc ẩn/hiện hộp chọn option

            var trips = Module.TripGetAll(true);

            _trips = new List <SailsTrip>();
            if (!string.IsNullOrWhiteSpace(Request["d"]) && Request["d"] == "3")
            {
                foreach (SailsTrip trip in trips)
                {
                    if (trip.NumberOfDay == 3)
                    {
                        if (ActiveCruise.Trips.Contains(trip))
                        {
                            _trips.Add(trip);
                        }
                    }
                }
            }
            else
            {
                foreach (SailsTrip trip in trips)
                {
                    if (trip.NumberOfDay != 3)
                    {
                        if (ActiveCruise.Trips.Contains(trip))
                        {
                            _trips.Add(trip);
                        }
                    }
                }
            }
            string visibleIds = string.Empty;

            foreach (SailsTrip trip in _trips)
            {
                if (trip.NumberOfOptions == 2)
                {
                    visibleIds += "#" + trip.Id + "#";
                }
            }
            if (!IsPostBack)
            {
                ddlStatusType.DataSource = Enum.GetNames(typeof(StatusType));
                ddlStatusType.DataBind();
                ddlStatusType.Items.RemoveAt(2);
                ddlStatusType.SelectedIndex = 1;
                BindTrips();
                LoadInfo();
            }
        }
コード例 #24
0
ファイル: AdminController.cs プロジェクト: zuhuizou/wojilu
        public void Move(int id)
        {
            ForumApp app = ctx.app.obj as ForumApp;

            PermissionUtil.Check(this, app);

            set("ActionLink", to(new AdminSaveController().Move, id) + "?ids=" + ids);
            set("ActionName", getActionName());
            set("dropForums", getTree().DropList("targetForum", 0));
        }
コード例 #25
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);

        try
        {
            SessionUtil.SavaModuleTag("StaffMgr");
            if (SessionUtil.GetStaffSession().IsInnerUser == 0)
            {
                PermissionUtil.SaveGrantPermissionsToSession();
                if (!PermissionUtil.HasGrantPermission("rights_browse"))
                {
                    throw new ModuleSecurityException("无权限访问此模块。");
                }
                if (!PermissionUtil.HasGrantPermission("rights_add"))
                {
                    btnNew.Style.Add("display", "none");
                }
                if (!PermissionUtil.HasGrantPermission("rights_edit"))
                {
                    btnEdit.Style.Add("display", "none");
                    btnEditPassword.Style.Add("display", "none");
                }
                if (!PermissionUtil.HasGrantPermission("rights_move"))
                {
                    btnMove.Style.Add("display", "none");
                }
                if (!PermissionUtil.HasGrantPermission("rights_accredit"))
                {
                    btnRole.Style.Add("display", "none");
                    btnPermission.Style.Add("display", "none");
                }
                if (!PermissionUtil.HasGrantPermission("rights_delete"))
                {
                    btnDelete.Style.Add("display", "none");
                }
            }

            LoadDepartmentTree(tvDepartments.Nodes[0], null);
        }
        catch (MissSessionException)
        {
            ClientScript.RegisterClientScriptBlock(this.GetType(), "reload",
                                                   "<script type=\"text/javascript\">parent.location='../../Default.aspx';</script>");
        }
        catch (ModuleSecurityException)
        {
            Response.Redirect("../../Frameset/Welcome.aspx");
        }
        catch (Exception ex)
        {
            log.Error(null, ex);
            throw;
        }
    }
コード例 #26
0
 /// <summary>
 /// 检查当前已登录职员是否对当前模块的某项权限有肯定的授权。
 /// </summary>
 /// <remarks>
 /// 在模块的每一项操作(ashx)执行前被调用,用于确认职员的授权,防止用户对ashx的恶意调用。
 /// </remarks>
 /// <param name="moduleTag">模块标示。</param>
 /// <param name="rightTag">权限标示。</param>
 public static void CheckSecurity(string moduleTag, string rightTag)
 {
     if (!SessionUtil.CompareModuleTag(moduleTag))
     {
         throw new ModuleSecurityException("模块标示不匹配。");
     }
     if (!PermissionUtil.HasGrantPermission(rightTag))
     {
         throw new ModuleSecurityException("无权执行此项操作。");
     }
 }
コード例 #27
0
 protected void btnUnlockIncome_Click(object sender, EventArgs e)
 {
     if (!PermissionUtil.UserCheckPermission(CurrentUser.Id, (int)PermissionEnum.LOCK_INCOME))
     {
         ShowErrors("You don't have permission to perform this action");
         return;
     }
     Booking.LockDate = null;
     Booking.LockBy   = null;
     BookingViewBLL.BookingSaveOrUpdate(Booking);
     Response.Redirect(Request.RawUrl);
 }
コード例 #28
0
ファイル: AdminController.cs プロジェクト: zuhuizou/wojilu
        public void GlobalSticky(int id)
        {
            ForumApp app = ctx.app.obj as ForumApp;

            if (PermissionUtil.Check(this, app) == false)
            {
                return;
            }

            adminPrivate(id);
            set("ActionLink", to(new AdminSaveController().GlobalSticky, id) + "?ids=" + ids);
        }
コード例 #29
0
ファイル: ImageLinkButton.cs プロジェクト: ugt-software/LMIS
        protected override void OnPreRender(EventArgs e)
        {
            TranslationUtil.ApplyTranslation(this);
            PermissionUtil.ApplyPermission(this);

            if (!Enabled)
            {
                OnClientClick = String.Empty;
            }

            base.OnPreRender(e);
        }
コード例 #30
0
        protected void btnExportRevenueBySale_Click(object sender, EventArgs e)
        {
            if (!PermissionUtil.UserCheckPermission(CurrentUser.Id, (int)PermissionEnum.ACTION_EXPORTREVENUEBYSALE) &&
                !PermissionUtil.UserCheckRole(CurrentUser.Id, (int)Roles.Administrator))
            {
                ShowError("You do not have permission to use this function!");
                return;
            }

            var bookings = Bookings;

            RevenueExportBySales(bookings);
        }