Example #1
0
        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);
        }
Example #3
0
        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);
        }