コード例 #1
0
        public int Update(RoleFeaturePermission permission)
        {
            var dbCommand = _dbHelper.GetStoredProcCommand(SP_Create);

            _dbHelper.AddInParameter(dbCommand, "@RoleId", System.Data.DbType.Int32, permission.RoleId);
            _dbHelper.AddInParameter(dbCommand, "@FeatureId", System.Data.DbType.Int32, permission.FeatureId);
            _dbHelper.AddInParameter(dbCommand, "@Permission", System.Data.DbType.Int32, permission.Permission);

            return(_dbHelper.ExecuteNonQuery(dbCommand));
        }
コード例 #2
0
        public ActionResult SavePermissions(string nodeIds, string roleId)
        {
            var result = false;

            string[] featureIds        = nodeIds.Split(',').Distinct().ToArray();
            var      existingFeatures  = _db.ScreenFeatures.Include(r => r.Roles).Where(r => r.Roles.Any(ro => ro.RoleId == roleId)).ToList();
            var      allScreenFeatures = _db.ScreenFeatures.ToList();
            RoleFeaturePermission rfp  = new RoleFeaturePermission();

            rfp.RoleId = roleId;
            try
            {
                foreach (var item in allScreenFeatures)
                {
                    var feature = existingFeatures.FirstOrDefault(f => f.Id == item.Id);
                    if (featureIds.FirstOrDefault(s => s == item.Id.ToString()) != null)
                    {
                        if (feature == null)
                        {
                            rfp.FeatureId = item.Id;
                            if (item.Roles == null)
                            {
                                item.Roles = new List <RoleFeaturePermission>();
                            }
                            item.Roles.Add(rfp);
                            _db.SaveChanges();
                        }
                    }
                    else if (feature != null)
                    {
                        rfp = _db.RolesPermissions.FirstOrDefault(rp => rp.FeatureId == feature.Id && rp.RoleId == roleId);
                        // rfp.FeatureId = feature.Id;
                        _db.RolesPermissions.Remove(rfp);
                        _db.SaveChanges();
                    }
                    rfp = new RoleFeaturePermission {
                        RoleId = roleId
                    };
                }
                result = true;
            }
            catch
            {
                result = false;
            }

            HttpContext.Session["AccessFeatures"] = null;

            return(Json(new { Success = result }));
        }
コード例 #3
0
        public RoleFeaturePermission Get(int roleId, int featureId)
        {
            var items      = GetInternal(roleId, featureId);
            var matchItems = items.Where(p => p.RoleId == roleId && p.FeatureId == featureId).ToList();

            RoleFeaturePermission item = null;

            if (matchItems.Count > 0)
            {
                item = matchItems[0];
            }
            else
            {
                item = new RoleFeaturePermission();
            }

            return(item);
        }
コード例 #4
0
        public int Create(RoleFeaturePermission permission)
        {
            var dbCommand = _dbHelper.GetStoredProcCommand(SP_Create);

            _dbHelper.AddInParameter(dbCommand, "@RoleId", System.Data.DbType.Int32, permission.RoleId);
            _dbHelper.AddInParameter(dbCommand, "@FeatureId", System.Data.DbType.Int32, permission.FeatureId);
            _dbHelper.AddInParameter(dbCommand, "@Permission", System.Data.DbType.Int32, permission.Permission);

            _dbHelper.AddReturnParameter(dbCommand, "@return", System.Data.DbType.Int32);

            int ret = _dbHelper.ExecuteNonQuery(dbCommand);

            int id = -1;

            if (ret > 0)
            {
                id = (int)dbCommand.Parameters["@return"].Value;
            }

            return(id);
        }
コード例 #5
0
        private List <RoleFeaturePermission> GetInternal(int roleId, int featureId)
        {
            var dbCommand = _dbHelper.GetStoredProcCommand(SP_Select);

            if (roleId > 0)
            {
                _dbHelper.AddInParameter(dbCommand, "@RoleId", System.Data.DbType.Int32, roleId);
            }

            if (featureId > 0)
            {
                _dbHelper.AddInParameter(dbCommand, "@FeatureId", System.Data.DbType.Int32, featureId);
            }

            List <RoleFeaturePermission> items = new List <RoleFeaturePermission>();
            var reader = _dbHelper.ExecuteReader(dbCommand);

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    RoleFeaturePermission item = new RoleFeaturePermission();
                    item.Id         = (int)reader["Id"];
                    item.RoleId     = (int)reader["RoleId"];
                    item.FeatureId  = (int)reader["FeatureId"];
                    item.Permission = (int)reader["Permission"];

                    items.Add(item);
                }
            }

            reader.Close();
            _dbHelper.Close(dbCommand);

            return(items);
        }
コード例 #6
0
 public int Update(RoleFeaturePermission rfPermission)
 {
     return(_rfpdao.Update(rfPermission));
 }