public UserAccessItem CheckAccess(CcData ccData, bool strict = true) { var user = _userService.CurrentUser; var access = new UserAccessItem { AccessAuthor = ccData.UserOrGroupUsers.Any(i => i == user.Id), AccessAdmin = user.IsCurrentlyRoot }; Console.WriteLine($"{ccData.ObjectId}: AccessAuthor={access.AccessAuthor}, AccessAdmin={access.AccessAdmin}"); if (!access.HaveAccess && strict) { throw new PermissionDeniedException(); } return(access.HaveAccess ? access : null); }
public static async Task <IEnumerable <UserAccessItem> > GetUserAccessAsync(int userid) { List <UserAccessItem> items = new List <UserAccessItem>(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "[dbo].[spGetUserAccessMatrix]"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@UserId", userid); var result = await DatabaseHelper.ExecGetDataAsync(cmd, Properties.Settings.Default.UserConnectionString); if (result != null) { foreach (DataRow dr in result.Rows) { var item = new UserAccessItem { UserId = int.Parse(dr["UserId"].ToString()), Username = dr["Username"].ToString(), FirstName = dr["FirstName"].ToString(), LastName = dr["LastName"].ToString(), RoleId = int.Parse(dr["RoleId"].ToString()), RoleCode = dr["RoleCode"].ToString(), RoleDescription = dr["RoleDescription"].ToString(), ModuleId = int.Parse(dr["ModuleId"].ToString()), ModuleCode = dr["ModuleCode"].ToString(), ModuleDescription = dr["ModuleDescription"].ToString(), TypeId = int.Parse(dr["TypeId"].ToString()), Type = dr["Type"].ToString(), CanAdd = ValueConverter.ConvertToBoolean(dr["CanAdd"].ToString()), CanEdit = ValueConverter.ConvertToBoolean(dr["CanEdit"].ToString()), CanSave = ValueConverter.ConvertToBoolean(dr["CanSave"].ToString()), CanDelete = ValueConverter.ConvertToBoolean(dr["CanDelete"].ToString()), CanSearch = ValueConverter.ConvertToBoolean(dr["CanSearch"].ToString()), CanPrint = ValueConverter.ConvertToBoolean(dr["CanPrint"].ToString()), CanExport = ValueConverter.ConvertToBoolean(dr["CanExport"].ToString()), CanAccess = ValueConverter.ConvertToBoolean(dr["CanAccess"].ToString()), }; items.Add(item); } } return(items); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //for testing purposes. var access = new UserAccessItem { CanAccess = true, CanAdd = true, CanDelete = true, CanEdit = true, CanExport = true, CanPrint = true, CanSave = true, CanSearch = true, }; var main = new MainFormNew(); //Change to main when deployment var form = new Sales(); //Testing of form form.UserAccess = access; Application.Run(main); }