Beispiel #1
0
        public ActionResult RoleAdd(SuncereRole model)
        {
            AjaxResult result;

            try
            {
                int[]                       permissionIds        = Request.Params["SuncerePermissions"].Split(',').Select(o => int.Parse(o)).ToArray();
                FluentModel                 db                   = Session.GetFluentModel();
                SuncereRoleRepository       repository           = new SuncereRoleRepository(db);
                SuncerePermissionRepository permissionRepository = new SuncerePermissionRepository(db);
                if (repository.IsExist(model.Name))
                {
                    throw new Exception("名称已存在。");
                }
                model.Status        = true;
                model.CreatorUserId = Session.GetCurrentUser().Id;
                foreach (int permissionId in permissionIds)
                {
                    SuncerePermission permission = permissionRepository.FirstOrDefault(permissionId);
                    model.SuncerePermissions.Add(permission);
                    permission.SuncereRoles.Add(model);
                }
                db.Add(model);
                db.SaveChanges();
                result = AjaxResult.GetAddAjaxResult(true);
            }
            catch (Exception e)
            {
                result = AjaxResult.GetAddAjaxResult(false);
            }
            return(Json(result, JsonRequestBehavior.DenyGet));
        }
Beispiel #2
0
        public ActionResult PermissionAdd(SuncerePermission model)
        {
            AjaxResult result;

            try
            {
                FluentModel db = Session.GetFluentModel();
                SuncerePermissionRepository repository = new SuncerePermissionRepository(db);
                if (repository.IsExist(model.Controller, model.Action))
                {
                    throw new Exception("权限已存在。");
                }
                if (model.Type == (int)PermissionType.Module)
                {
                    model.ParentId = 0;
                    model.Action   = null;
                }
                model.Status        = true;
                model.CreatorUserId = Session.GetCurrentUser().Id;
                SuncereRole role = db.SuncereRoles.First();
                role.SuncerePermissions.Add(model);
                model.SuncereRoles.Add(role);
                db.Add(model);
                db.SaveChanges();
                result = AjaxResult.GetAddAjaxResult(true);
            }
            catch (Exception e)
            {
                result = AjaxResult.GetAddAjaxResult(false);
            }
            return(Json(result, JsonRequestBehavior.DenyGet));
        }
Beispiel #3
0
        public ActionResult UserAdd(SuncereUser model)
        {
            AjaxResult result;

            try
            {
                int[]                 roleIds    = Request.Params["SuncereRoles"].Split(',').Select(o => int.Parse(o)).ToArray();
                FluentModel           db         = Session.GetFluentModel();
                SuncereUserRepository repository = new SuncereUserRepository(db);
                if (repository.IsExist(model.UserName))
                {
                    throw new Exception("用户名已存在。");
                }
                model.Password      = AsymmetricEncryption.Default.Encrypt(model.Password);
                model.Status        = true;
                model.CreatorUserId = Session.GetCurrentUser().Id;
                SuncereRoleRepository roleRepository = new SuncereRoleRepository(db);
                foreach (int roleId in roleIds)
                {
                    SuncereRole role = roleRepository.FirstOrDefault(roleId);
                    role.SuncereUsers.Add(model);
                    model.SuncereRoles.Add(role);
                }
                db.Add(model);
                db.SaveChanges();
                result = AjaxResult.GetAddAjaxResult(true);
            }
            catch (Exception e)
            {
                result = AjaxResult.GetAddAjaxResult(false);
            }
            return(Json(result, JsonRequestBehavior.DenyGet));
        }
        /// <summary>
        /// Imports data from JSON file
        /// </summary>
        /// <param name="path">gets a path of type string</param>
        public void ImportDbDataFromJson(string path)
        {
            var ctx = new FluentModel();

            using (ctx)
            {
                var files = Directory.GetFiles(path);

                var teams = ctx.GetAll<TeamReportDto>().ToList();

                foreach (var file in files)
                {
                    var fileText = File.ReadAllText(file);
                    var teamReport = JsonConvert.DeserializeObject<TeamReportDto>(fileText);

                    var teamReportDb = ctx.TeamReports.FirstOrDefault(t => t.Name == teamReport.Name);
                    if (teamReportDb != null)
                    {
                        teamReportDb.Name = teamReport.Name;
                        teamReportDb.NumberOfPlayers = teamReport.NumberOfPlayers;
                        teamReportDb.NumbersOfMatches = teamReport.NumbersOfMatches;
                        teamReportDb.Coach = teamReport.Coach;
                        teamReportDb.Owner = teamReport.Owner;
                    }
                    else
                    {
                        ctx.Add(teamReport);
                        ctx.SaveChanges();
                    }
                }
            }
        }
        // This method must be thread-safe since it is called by the thread-safe OnCacheAuthorization() method.
        protected virtual bool AuthorizeCore(HttpContextBase httpContext)
        {
            bool result;

            if (httpContext == null)
            {
                throw new ArgumentNullException("httpContext");
            }
            HttpRequestBase request = httpContext.Request;

            if (IsDefault)
            {
                string[] texts = request.Path.Split('/');
                Controller = texts[0];
                Action     = texts[1];
            }
            FluentModel db = httpContext.Session.GetFluentModel();

            db.Add(new SuncereAuditLog()
            {
                UserName    = httpContext.Session.GetCurrentUser().UserName,
                Url         = request.Url.PathAndQuery,
                Referrer    = request.UrlReferrer == null ? string.Empty : request.UrlReferrer.PathAndQuery,
                HostName    = request.UserHostName,
                HostAddress = request.UserHostAddress
            });
            db.SaveChanges();
            if (string.IsNullOrEmpty(Controller) || string.IsNullOrEmpty(Action))
            {
                result = true;
            }
            else
            {
                List <SuncerePermission> userPermissions = httpContext.Session.GetUserPermissions();
                if (userPermissions == null)
                {
                    result = false;
                }
                else
                {
                    result = userPermissions.Any(o => o.Controller == Controller && o.Action == Action);
                }
            }
            return(result);
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            UpdateDatabase();

            using (var ctx = new FluentModel())
            {
                var pesho = new Stefan()
                {
                    Name = "stefannnn"
                };
                ctx.Add(pesho);
                ctx.Delete(pesho);
                ctx.SaveChanges();
            }

            Console.Write("Database update complete! Press any key to close.");
            Console.ReadKey();
        }